I upgraded a Windows Server 2012 to 2019, but kept the SQL Server (110)
My sql agent jobs stopped working, the ones using PowerShell commands.
I get the error message
A job step received an error at line 1 in a PowerShell script.
The corresponding line is 'import-module SQLPS -DisableNameChecking'.
Correct the script and reschedule the job.
The error information returned by PowerShell is:
'File C:\Program Files (x86)\Microsoft SQL Server\110\Tools\PowerShell\Modules\SQLPS\Sqlps.ps1
cannot be loaded because the execution of scripts is disabled on this system.
Please see "get-help about_signing" for more details.
The Sqlps.ps1 IS signed with a valid signature, and I even temporarily tried to Set-ExecutionPolicy Unrestricted , but that didn't help either. (All suggested by chatgpt ;-) )
My script should download a file from an url and place it in c:\tmp
EDIT: Solved, I set the script execution policy to "Allow local scripts and remote signed scripts" in group policy for computer; it was pereviously "Not Configured"
If the effective execution policy is
Restricted, even signed scripts won't help you.What matters is what the effective execution policy is for the user identity that your services / scheduled tasks run as, which you can control as follows:
Ad hoc, in a given PowerShell CLI call (
powershell.exe [-Command] .../powershell.exe -File ...), precede the (possibly implied)-Command/-Fileparameter with an-ExecutionPolicyargument, e.g. - if you fully trust the script (eventually) getting invoked --ExecutionPolicy BypassPersistently, via a machine-wide execution policy (requires elevation (administrative privileges)):
Set-ExecutionPolicy-Scope AllUsersSet-ExecutionPolicyconfigurations).See this answer for additional information.