Sono un ingegnere della sicurezza con un background nell'amministrazione Linux che sta cercando di insegnare me stesso sugli oggetti Criteri di gruppo sulle copie di valutazione di Windows Server 2016 Preview 5 e Windows 10 Enterprise. Ho creato un'attività immediata per eseguire uno script di PowerShell.
Quando l'attività tenta di eseguire, visualizzo questo avviso nel Visualizzatore eventi:
Il servizio Utilità di pianificazione ha rilevato una configurazione errata nella definizione NT TASK \ EMET 5.51. Dati aggiuntivi: valore di errore: powershell.exe.
Tutto ciò che ho letto suggerisce che dovrebbe funzionare. Che cosa sto facendo di sbagliato?
Ecco l'attività in 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>
\\uncpath
script PowerShell potrebbe non essere accessibile dall'account locale in cui è in esecuzione questo lavoro, provare a indicarlo su un percorso di lettera dell'unità server / PC locale e assicurarsi che lo script sia salvato lì. Oppure esegui come account di dominio con esegui l'accesso al percorso UNC in cui viene salvato lo script PS anziché eseguendolo come account locale.
-NoProfile -NoLogo -NonInteractive -ExecutionPolicy Bypass -File \\DC\Shared\Deployment\deployment.ps1
argomento come nell'attività, basta eliminare tutto ciò dall'argomento e quindi inserire powershell.exe -NoProfile -NoLogo -NonInteractive -ExecutionPolicy Bypass -File "\\DC\Shared\Deployment\deployment.ps1"
come comando e vedere se si ottengono risultati diversi, quindi tutto sarà nel comando e doppie virgolette attorno al percorso unc del file PS1 e nessun argomento in Utilità di pianificazione.
<Command>C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe</Command>
parte del valore del file XML piuttosto che solo il valore dipowershell.exe
Fammi sapere se questo ti aiuta.