web-dev-qa-db-fra.com

Impossible de modifier la tâche "Redémarrage" dans win10

J'ai Windows 10 à la maison et je suis connecté en tant qu'utilisateur disposant des privilèges d'administrateur. Je vais dans le "Planificateur de tâches", sous "Task Scheduler Library > Microsoft > Windows > UpdateOrchestrator", il y a une tâche nommée "Redémarrer". Je clique avec le bouton droit sur les propriétés, puis sur "Conditions" et désactive "Wake the computer to run this task". Lorsque je clique sur "OK" pour enregistrer la modification, il me demande un utilisateur + mot de passe. (La fenêtre dit "Enter user account information for running this task").

Le champ "Nom d'utilisateur" vient déjà par défaut avec la valeur "S-1-5-18", qui est apparemment l'un des utilisateurs internes de Windows. J'ai essayé d'utiliser mon mot de passe sans succès. J'ai changé l'utilisateur à mon utilisateur et essayez mon mot de passe, également sans succès. J'ai activé l'utilisateur "Administrateur" et essayé la même chose avec cet utilisateur, également sans succès.

Le message que cela me donne est: "An error has occurred for task Reboot. Error message: The following error was reported: 2147943004". Je ne connais pas d'utilisateur/mot de passe correct pour modifier le paramètre, et je ne sais pas comment en prendre possession ni modifier les autorisations pour qu'il ne demande pas d'utilisateur/mot de passe.

Je suis vraiment contrarié par certains paramètres que je ne peux pas modifier sur mon propre ordinateur. Je veux donc savoir pourquoi et comment obtenir les autorisations appropriées. Je semble avoir le même problème que ce gars , mais il n'a jamais eu de réponse sur la façon de changer ce paramètre. Il a réussi à le désactiver, je l’ai fait aussi, mais je veux tout de même savoir ce que je devais faire pour modifier les paramètres, que la tâche soit désactivée ou non. En outre, il est dans win10pro et je suis dans win10home, donc je n'ai pas accès à lusrmgr.msc ou gpedit.msc.

8
msb

fenêtres 10 maison [...]

contrarié par certains réglages que je ne peux pas modifier dans mon propre ordinateur ... Je veux savoir pourquoi

Vous répondez à votre propre question. Home est destiné aux utilisateurs qui n’ont pas nécessairement la capacité de gérer ou d’entretenir leurs systèmes. En obligeant les utilisateurs à domicile à ne pas utiliser certains paramètres tels que celui-ci, Microsoft s'efforce d'éviter les horreurs de l'ère XP des systèmes non corrigés dans lesquels les utilisateurs ont désactivé les mises à jour car ils ne comprennent pas pourquoi ils en ont besoin et les implications de ne pas les obtenir.

Passons aux tripes de votre question. S-1-5-18 est l’utilisateur LocalSystem, c’est un compte hautement privilégié que les utilisateurs normaux, même les administrateurs, ne sont pas censés être en mesure d’interférer au quotidien.

L'idée est que nous contrôlons les fenêtres via les outils utilisateur et que le système d'exploitation apporte les modifications nécessaires aux processus sous-jacents exécutés en tant que système. D'où votre incapacité à prendre le contrôle de la tâche que vous mentionnez. La théorie est que vous ne changez pas les choses ici, vous devriez les changer dans l'interface graphique à laquelle vous accédez via la fenêtre de paramètres habituelle.

Cependant, il existe des astuces que vous pouvez utiliser pour contourner ces protections.

Pour exécuter avec les privilèges de SYSTEM, vous pouvez effectuer les opérations suivantes:

  • Obtenir une copie de PSEXEC auprès de sysinternals
  • Exécutez ce qui suit dans une fenêtre CMD administrative
    • PSEXEC /S CMD.EXE

Cela vous donnera une commande Shell exécutée en tant que SYSTÈME dans la session 0. À partir de là, vous pouvez exécuter des commandes en tant qu'utilisateur, ce qui signifie que vous pourrez modifier la fonction de ces tâches planifiées.

SCHTASKS /Change est votre option la plus probable, à partir de là, vous pouvez prendre le contrôle des tâches, arrêter, démarrer, supprimer

8
Patrick

Succès. Après beaucoup d’essais, c’est ce qui fonctionne pour moi sous Windows 10 Home. Téléchargez PSExec.

PSEXEC/S CMD.EXE
SCHTASKS/Modifier/tn "\ Microsoft\Windows\UpdateOrchestrator\Reboot"/DISABLE
Vous devriez obtenir: SUCCESS: Les paramètres de la tâche planifiée "\ Microsoft\Windows\UpdateOrchestrator\Reboot" ont été modifiés.

10
user873252

windows_update_reboot_toggle.bat
Désactive les tâches de redémarrage et de réveil protégées. Aucun outil externe nécessaire. Intégré annuler.

@echo off &title Windows Update Reboot Toggle
reg query "HKEY_USERS\S-1-5-20\Environment" /v TEMP >nul 2>nul || goto need_admin_rights

set "updatetasks=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\Microsoft\Windows\UpdateOrchestrator"
call :check_status "%updatetasks%\Reboot"
echo.
echo      ---------------------------------------------------------------------
echo     :                  Windows Update Reboot Toggle v4.6                  :
echo     :---------------------------------------------------------------------:
echo     : Prevent protected reboot and wake to run tasks without disabling WU :
echo     :           Just run this script again to toggle tasks on/off         :
echo     :                                                                     :
echo     :                          Currently: %STATUS%%_%                     :
echo     :                                                                     :
echo     : Press Alt+F4 to cancel                    Always run latest version :
echo      ---------------------------------------------------------------------
echo       All-around Windows Update Toggle available at https://git.io/vx2et
echo.
timeout /t 10 &echo.

:: Use Reg_TakeOwnership snippet to unprotect UpdateOrchestrator task cache registry keys
reg add "%updatetasks%\Reboot" /v checkrights /d 1 /f >nul 2>nul || call :reg_takeownership "%updatetasks%" Administrators recursive
reg delete "%updatetasks%\Reboot" /v checkrights /f >nul 2>nul
:: Toggle Reboot task
call :toggle_task "%updatetasks%\Reboot"
:: Toggle Schedule Retry Scan task
call :toggle_task "%updatetasks%\Schedule Retry Scan"
:: Update status
call :check_status "%updatetasks%\Reboot"
echo.

:: Done!
echo -------------------------------------
echo  Windows Update Reboot Tasks now: %STATUS%
echo -------------------------------------
echo.
pause
exit

::----------------------------------------------------------------------------------------------------------------------------------
:: Utility functions
::----------------------------------------------------------------------------------------------------------------------------------
:check_status %1:TaskCache entry in registry
reg query "%~1" /v "Id_OFF" >nul 2>nul && set "STATUS=OFF" || set "STATUS=ON!"
set "_=        " &if "%STATUS%"=="OFF" ( color 0c ) else color 0b
exit/b

:toggle_task %1:TaskCache entry in registry
reg query "%~1" /v "Id_OFF" >nul 2>nul && set "isOFF=1" || set "isOFF="
reg query "%~1" /v "Id" >nul 2>nul && set "isOFF=" || set "isOFF=1"
if defined isOFF ( call :reg_query "%~1" "Id_OFF" ID_BACKUP ) else call :reg_query "%~1" "Id" ID_BACKUP
if defined isOFF ( reg delete "%~1" /v "Id_OFF" /f &reg add "%~1" /v "Id" /d %ID_BACKUP% /f )
if not defined isOFF ( reg delete "%~1" /v "Id" /f &reg add "%~1" /v "Id_OFF" /d %ID_BACKUP% /f )
exit/b

:reg_takeownership %1:regkey[ex:"HKCU\Console"] %2:_user[optional, default:"Administrators"] %3:_recursive[optional, default:""]
set "s10=$dll0='[DllImport(''ntdll.dll'')]public static extern int RtlAdjustPrivilege(ulong a,bool b,bool c,ref bool d);'; $ntdll="
set "s11=Add-Type -Member $dll0 -Name NtDll -PassThru; foreach($i in @(9,17,18)){$null=$ntdll::RtlAdjustPrivilege($i,1,0,[ref]0)};"
set "s12=function Reg_TakeOwnership { param($Hive, $key, $own, $inherit=$false);"
set "s13= $reg=[Microsoft.Win32.Registry]::$Hive.OpenSubKey($key,'ReadWriteSubTree','TakeOwnership');"
set "s14= $acl=New-Object System.Security.AccessControl.RegistrySecurity; $acl.SetOwner($own); $reg.SetAccessControl($acl);"
set "s15= $acl.SetAccessRuleProtection($false,$false);$reg.SetAccessControl($acl);"
set "s16= $reg=$reg.OpenSubKey('','ReadWriteSubTree','ChangePermissions'); if($inherit){"
set "s17= $rule=New-Object System.Security.AccessControl.RegistryAccessRule($own,'FullControl','ContainerInherit','None','Allow');"
set "s18= $acl.ResetAccessRule($rule);$reg.SetAccessControl($acl);} }; $rk=$regkey -split '\\\\',2; $key=$rk[1];"
set "s19=switch -regex ($rk[0]) { '[mM]'{$HK='LocalMachine'};'[uU]'{$HK='CurrentUser'}; default {$HK='ClassesRoot'}; }; $HK; $key;"
set "s20=if($user -eq ''){$user='Administrators'}; [System.Security.Principal.NTAccount]$owner=$user; $rcsv=($recursive -ne '');"
set "s21=Reg_TakeOwnership $HK $key $owner $true; if($rcsv){$r=[Microsoft.Win32.Registry]::$HK.OpenSubKey($key);"
set "s22=foreach($sk in $r.GetSubKeyNames()){$sk; try{ Reg_TakeOwnership $HK $($key+'\\'+$sk) $owner }catch{} }} "
setlocal & for /l %%# in (10,1,22) do call set "ps_RegTakeOwnership=%%ps_RegTakeOwnership%%%%s%%#:'=\"%%"
powershell.exe -c " $regkey='%~1';$user='%~2';$recursive='%~3'; %ps_RegTakeOwnership%;"
endlocal & exit/b                                         AveYo: call :reg_takeownership "HKLM\MyKey" "NT Service\TrustedInstaller"

:reg_query %1:KeyName %2:ValueName %3:OutputVariable %4:other_options[example: "/t REG_DWORD"]
setlocal & for /f "skip=2 delims=" %%s in ('reg query "%~1" /v "%~2" /z 2^>nul') do set "rq=%%s" & call set "rv=%%rq:*)    =%%"
endlocal & set "%~3=%rv%" & exit/b                                              AveYo: call :reg_query "HKCU\MyKey" "MyValue" MyVar

:need_admin_rights
color 0c&echo. &echo  PERMISSION DENIED! Right-click %~nx0 ^& Run as administrator &timeout /t 60 &color 0f&title %COMSPEC% &exit/b
::end
1
AveYo

J'utilise Windows 10 Pro et avait un problème similaire. Je n'ai pas été en mesure de modifier le paramètre "Réveillez l'ordinateur pour effectuer cette tâche" sur la tâche de redémarrage à l'aide de l'interface utilisateur du planificateur de tâches, mais j'ai finalement pu utiliser cette méthode:

En utilisant psexec comme Patrick a suggéré:

  1. Exécutez une invite de commande en tant qu'administrateur.
  2. Accédez à l'emplacement où se trouve l'exécutable psexec.
  3. Exécutez .\psexec -s -i cmd.exe pour ouvrir une nouvelle fenêtre cmd.
  4. Dans la nouvelle fenêtre cmd, exécutez taskschd.msc (ou %windir%\system32\taskschd.msc).
  5. Editez votre tâche comme avant. Vous ne devriez pas être invité pour les informations d'identification.

J'ai commencé à chercher une solution à ce problème lorsque Windows sortait mon ordinateur du mode veille pour forcer le redémarrage. Le problème est que mon chargeur de démarrage épingle le processeur à 100% pendant qu'il attend mon entrée. Mon ordinateur portable est souvent fermé lorsque cela se produit et il devient chaud au toucher. Je suis également inquiet pour mon ordinateur, qui n’agit pas normalement depuis que je le trouve assis devant le chargeur de démarrage le matin, avec tous les fans.

1
jkiv

J'ai pu la désactiver en allant dans le chemin suivant, en sauvegardant l'ancienne tâche et en en créant une nouvelle.

%windir%\System32\Tasks\Microsoft\Windows\UpdateOrchestrator

Si cela ne fonctionne pas dans votre version de système d'exploitation, essayez le .bat ou le changement de registre dans ce lien mais je ne sais pas si cela pourrait causer des problèmes pour vous.

0
David

Quand vous dites "à la maison", vous voulez bien sûr dire Win 10 Home vs Win 10 Pro? Je pose la question parce que j'ai plusieurs ordinateurs, tous Windows 10 Home, et la plupart me permettent de modifier les tâches sans que ce mot de passe administrateur n'apparaisse, mais quelques-uns ne le font pas. La version Home ne fait pas de différence, autre chose empêche les changements.

J'ose supposer que vous pouvez modifier les tâches à partir d'une nouvelle installation de Win 10 AVANT de faire des mises à jour ... Cependant, une fois mises à jour, vous perdez le contrôle de nombreuses fonctionnalités du système, telles que les tâches. Supprimer des tâches ne sert à rien, vous devez supprimer les déclencheurs à l'intérieur des tâches, puis essayer de tous les désactiver après une nouvelle installation.

0
Johnny