Jestem inżynierem bezpieczeństwa z doświadczeniem w administrowaniu Linuksem, który próbuje nauczyć się o obiektach GPO na kopiach testowych systemu Windows Server 2016 Preview 5 i Windows 10 Enterprise. Utworzyłem natychmiastowe zadanie uruchomienia skryptu PowerShell.
Gdy zadanie próbuje wykonać, pojawia się to ostrzeżenie w Podglądzie zdarzeń:
Usługa Harmonogram zadań wykryła błędną konfigurację w definicji NT TASK \ EMET 5.51. Dodatkowe dane: Wartość błędu: powershell.exe.
Wszystko, co przeczytałem, sugeruje, że to powinno działać. Co ja robię źle?
Oto zadanie w XML:
<?xml version="1.0" encoding="utf-8"?>
<ScheduledTasks clsid="{CC63F200-7309-4ba0-B154-A71CD118DBCC}">
<ImmediateTaskV2 clsid="{9756B581-76EC-4169-9AFC-0CA8D43ADB5F}" name="EMET 5.51" image="0" userContext="0" removePolicy="0" changed="2016-08-14 19:45:32" uid="{1CA5AB58-B38C-4F73-944F-9CDCBBF57037}">
<Properties action="C" name="EMET 5.51" runAs="BYTHEBIT\Administrator" logonType="InteractiveToken">
<Task version="1.2">
<RegistrationInfo>
<Author>BYTHEBIT\Administrator</Author>
<Description></Description>
</RegistrationInfo>
<Principals>
<Principal id="Author">
<UserId>BYTHEBIT\Administrator</UserId>
<LogonType>InteractiveToken</LogonType>
<RunLevel>HighestPrivilege</RunLevel>
</Principal>
</Principals>
<Settings>
<IdleSettings>
<Duration>PT5M</Duration>
<WaitTimeout>PT1H</WaitTimeout>
<StopOnIdleEnd>false</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>
<AllowHardTerminate>false</AllowHardTerminate>
<StartWhenAvailable>true</StartWhenAvailable>
<AllowStartOnDemand>false</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<WakeToRun>true</WakeToRun>
<ExecutionTimeLimit>PT0S</ExecutionTimeLimit>
<Priority>7</Priority>
<DeleteExpiredTaskAfter>PT0S</DeleteExpiredTaskAfter>
</Settings>
<Actions Context="Author">
<Exec>
<Command>powershell.exe</Command>
<Arguments>-NoProfile -NoLogo -NonInteractive -ExecutionPolicy Bypass -File \\DC\Shared\Deployment\deployment.ps1</Arguments>
</Exec>
</Actions>
<Triggers>
<TimeTrigger>
<StartBoundary>%LocalTimeXmlEx%</StartBoundary>
<EndBoundary>%LocalTimeXmlEx%</EndBoundary>
<Enabled>true</Enabled>
</TimeTrigger>
</Triggers>
</Task>
</Properties>
<Filters><FilterRunOnce hidden="1" not="0" bool="AND" id="{C58ADBD5-837B-46E8-98E4-80703D52F20E}"/>
</Filters>
</ImmediateTaskV2>
</ScheduledTasks>
<Command>C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe</Command>
część wartościowa pliku XML, a nie tylko wartośćpowershell.exe
Pozwól mi wiedzieć, czy to ci pomoże.\\uncpath
do skryptu PowerShell może nie być dostępny z konta lokalnego, na którym działa to zadanie, ponieważ spróbuj wskazać go na ścieżkę litery serwera lokalnego / dysku PC i upewnij się, że skrypt jest tam zapisany. Lub uruchom jako konto domeny z dostępem do ścieżki UNC, w której zapisany jest skrypt PS, zamiast uruchamiania go jako konta lokalnego.-NoProfile -NoLogo -NonInteractive -ExecutionPolicy Bypass -File \\DC\Shared\Deployment\deployment.ps1
jako argument do swojego zadania, po prostu usuń wszystko z argumentu, a następnie wstawpowershell.exe -NoProfile -NoLogo -NonInteractive -ExecutionPolicy Bypass -File "\\DC\Shared\Deployment\deployment.ps1"
jako polecenie i sprawdź, czy otrzymasz inny wynik, aby wszystko było w poleceniu i podwójnych cudzysłowach wokół ścieżki unc pliku PS1 i brak argumentów w Harmonogramie zadań.