У меня были проблемы с этим и в прошлом.То, что я нашел, - это использование BAT File
для вызова файла ps1.Надеемся, что это поможет с вашим сценарием.
Файл BAT изменит политику выполнения и затем запустит файл ps1.Файлы BAT и ps1 должны иметь одинаковые имена, за исключением расширения файла
REG ADD "HKLM\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" /T REG_SZ /V ExecutionPolicy /D Unrestricted /F
Start PowerShell.exe -Command "& '%~dpn0.ps1'"
. Вот код, который я использовал для создания новой задачи для запуска дополнительного файла ps1.
$Task_Action = New-ScheduledTaskAction -Execute 'PowerShell.exe' -Argument '-File C:\File.ps1'
$Task_Principal = New-ScheduledTaskPrincipal -UserId SYSTEM -RunLevel Highest
$Task_Settings = New-ScheduledTaskSettingsSet -Hidden
$Task_Trigger = New-ScheduledTaskTrigger -AtStartup
Register-ScheduledTask `
-TaskName "Your Task Name" `
-Action $Task_Action `
-Principal $Task_Principal `
-Trigger $Task_Trigger `
-Settings $Task_Settings `
-Force
В последнем сценарии я установил обратно политику выполнения с помощью Set-ExecutionPolicy Restricted -Scope LocalMachine