Nie można zmodyfikować zadania „Uruchom ponownie” w domu win10

6

Mam domową wersję systemu Windows 10 i jestem zalogowany jako mój użytkownik, który ma uprawnienia administratora. Wchodzę w „Harmonogram zadań”, pod "Task Scheduler Library > Microsoft > Windows > UpdateOrchestrator", istnieje zadanie o nazwie „Reboot”. Kliknij prawym przyciskiem myszy na właściwości, przejdź do „Warunki” i wyłącz "Wake the computer to run this task". Kiedy klikam „OK”, aby zapisać modyfikację, pyta mnie o użytkownika + hasło. (Okno mówi "Enter user account information for running this task" ).

Pole „Nazwa użytkownika” już domyślnie ma wartość „S-1-5-18”, która najwyraźniej jest jednym z wewnętrznych użytkowników okien. Próbowałem użyć mojego hasła, aby nie odnieść sukcesu. Zmieniłem użytkownika na mojego użytkownika i spróbowałem hasła, również bez powodzenia. Włączyłem użytkownika „Administrator” i spróbowałem tego samego z tym użytkownikiem, również bez powodzenia.

Wiadomość, którą mi daje to: "An error has occurred for task Reboot. Error message: The following error was reported: 2147943004". Nie znam poprawnego użytkownika / hasła do zmiany ustawienia i nie wiem, jak przejąć własność lub zmienić uprawnienia, aby nie pytał o użytkownika / hasło.

Jestem naprawdę zdenerwowany, że nie mogę zmienić ustawień na moim komputerze, więc chcę wiedzieć, dlaczego i jak uzyskać odpowiednie uprawnienia. Wydaje mi się, że mam ten sam problem, co ten facet , ale nigdy nie otrzymał odpowiedzi na pytanie, jak zmienić to ustawienie. Udało mu się to wyłączyć, ja też to zrobiłem, ale wciąż chcę wiedzieć, co miałem zrobić, aby zmienić ustawienie, niezależnie od wyłączenia zadania. Ponadto jest w win10pro i jestem w win10home, więc nie mam dostępu lusrmgr.msc lub gpedit.msc.

msb
źródło

Odpowiedzi:

5

Windows 10 Home [...]

zdenerwowany, że nie mogę zmienić ustawień na moim komputerze ... Chcę wiedzieć dlaczego

Odpowiadasz na własne pytanie. Dom jest przeznaczony dla użytkowników domowych, którzy niekoniecznie mają możliwość zarządzania lub utrzymania swoich systemów. Blokując użytkownikom domowym niektóre z takich ustawień, Microsoft podejmuje próbę zapobieżenia okropnościom epoki XP niezałatanych systemów, w których ludzie wyłączyli aktualizacje, ponieważ nie rozumieją, dlaczego ich potrzebują, oraz implikacji ich nieotrzymania.

Do wnętrzności twojego pytania. S-1-5-18 jest użytkownikiem LocalSystem, jest to bardzo uprzywilejowane konto, którego zwykli użytkownicy, nawet administratorzy, nie powinni być w stanie ingerować na co dzień.

Chodzi o to, że kontrolujemy okna za pomocą narzędzi przestrzeni użytkownika, a system operacyjny dokona niezbędnych zmian w podstawowych procesach wykonywanych jako system. Stąd twoja niezdolność do przejęcia kontroli nad wymienionym zadaniem. Teoria jest taka, że ​​nie zmienia się tutaj rzeczy, należy je zmienić w interfejsie graficznym, do którego uzyskuje się dostęp za pomocą zwykłego okna ustawień.

Istnieją jednak sztuczki, których można użyć, aby ominąć te zabezpieczenia.

Aby uruchomić z uprawnieniami SYSTEM, możesz wykonać następujące czynności:

  • Pobierz kopię PSEXEC z sysinternals
  • Uruchom następujące okno w administracyjnym oknie CMD
    • PSEXEC /S CMD.EXE

To da ci powłokę poleceń działającą jako SYSTEM w sesji 0. Stąd możesz wykonywać polecenia jako ten użytkownik, co oznacza, że ​​będziesz mógł zmienić funkcję tych zaplanowanych zadań

SCHTASKS /Change jest twoją najbardziej prawdopodobną opcją, stąd możesz przejąć kontrolę nad zadaniami, zatrzymać, uruchomić, usunąć

Patrick
źródło
1
Próbowałem tego i nie mogę go uruchomić po wykonaniu PSExec: C:\WINDOWS\system32>SCHTASKS /Change /tn "\Microsoft\Windows\UpdateOrchestrator\Reboot" /DISABLE ERROR: Access is denied. Bez względu na to, co robię, nie mogę wyłączyć ani zmienić użytkownika ani zmienić ustawienia timera budzenia tego zaplanowanego zadania.
mkmurray
1
„powinieneś je zmieniać w interfejsie graficznym”… cóż, właśnie to próbowałem: - Myślę, że jeszcze gorzej, że widzę opcję GUI, ale nie mogę się zmienić! Byłbym mniej zdenerwowany, gdybym tego nie widział. :( W każdym razie psexec zadziałał i mogę wyłączyć usługę, dzięki. ^ _ ^ To nie to samo, co zmiana ustawień, ale działa. Mimo to moje okna uruchomiły się ponownie w celu aktualizacji nawet przy wyłączonej usłudze i usłudze „Aktualizacje Windows” ustaw na „manual”. Chłopak czasami nienawidzę microsoft .... & gt; :( (Powrót w dochodzeniach ...: - / PS: intryguje mnie przypadek @ mkmurray, chciałbym, żeby opublikował pytanie. : $
msb
9

Powodzenie. Po wielu próbach to właśnie działa na mnie w systemie Windows 10 Home. Pobierz PSExec.

PSEXEC / S CMD.EXE
SCHTASKS / Change / tn "Microsoft Windows UpdateOrchestrator Uruchom ponownie" / DISABLE
Powinieneś wziąć:   SUKCES: Zmieniono parametry zaplanowanego zadania „Microsoft Windows UpdateOrchestrator Reboot”.

user873252
źródło
Mój jest już wyłączony, a komputer ponownie uruchomiony ponownie. Chłopiec, którego nienawidzę M $. & gt;: - /
msb
1

Używam systemu Windows 10 Pro i miałem podobny problem. Nie byłem w stanie zmienić ustawienia „Obudź komputer, aby wykonać to zadanie” w zadaniu ponownego uruchomienia przy użyciu interfejsu użytkownika harmonogramu zadań, ale w końcu udało mi się użyć tej metody:

Używając psexecu, jak sugerował Patrick:

  1. Uruchom wiersz polecenia jako administrator.
  2. Przejdź do miejsca psexec plik wykonywalny.
  3. Biegać .\psexec -s -i cmd.exe aby otworzyć nowe okno cmd.
  4. W nowym oknie cmd uruchom taskschd.msc (lub %windir%\system32\taskschd.msc ).
  5. Edytuj swoje zadanie jak wcześniej. Nie powinieneś być monitowany o poświadczenia.

Zacząłem szukać rozwiązania tego problemu, gdy system Windows obudziłby mój komputer ze stanu uśpienia, aby wymusić ponowne uruchomienie. Problemem jest to, że mój bootloader przypina procesor w 100%, gdy czeka na moje wejście. Mój laptop jest często zamknięty, gdy tak się dzieje i staje się gorący w dotyku. Martwię się również o mój pulpit, który nie zachowywał się normalnie, odkąd zacząłem go rano siedzieć przy bootloaderze z włączonymi wszystkimi fanami.

jkiv
źródło
2
Minęło już około miesiąca i mogę potwierdzić, że nie zrobiło to nic, by komputer się nie budził i nie uruchamiał aktualizacji.
jkiv
Wypróbuj moje rozwiązanie.
AveYo
1

windows_update_reboot_toggle.bat
Wyłącz chronione restartowanie i budzenie zadań. Nie potrzeba żadnych zewnętrznych narzędzi. Wbudowane cofanie.

@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
AveYo
źródło
0

Kiedy mówisz „dom”, masz na myśli Win 10 Home vs Win 10 Pro? Pytam, ponieważ mam kilka komputerów, wszystkie systemy Windows 10 Home, a większość pozwala mi modyfikować zadania bez tego hasła administratora, ale kilka nie. Wersja domowa nie ma znaczenia, coś innego zapobiega zmianom.

Zaryzykowałbym zgadnięcie, że możesz modyfikować zadania z czystej instalacji Win 10 PRZED wykonaniem jakichkolwiek aktualizacji ... jednak po przejściu aktualizacji tracisz kontrolę nad wieloma funkcjami systemu, takimi jak zadania. Usuwanie zadań nie działa, musisz usunąć wyzwalacze wewnątrz zadań, a następnie spróbować je wyłączyć po czystej instalacji.

Johnny
źródło
0

Udało mi się go wyłączyć, przechodząc do następującej ścieżki, tworząc kopię zapasową starego zadania i tworząc nową pustą.

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

Jeśli to nie działa w twojej wersji systemu operacyjnego, spróbuj .bat albo zmiana rejestru w tym łączu ale nie wiem, czy może to spowodować problemy dla ciebie.

David
źródło