To fix “running scripts is disabled on this system” in PowerShell, set the execution policy to RemoteSigned for your account. It doesn’t need admin rights:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
The error means the effective policy is Restricted, which is the default on Windows client PCs. Below I reproduce it, check every policy scope, and show fixes from a single run to a permanent change, tested in PowerShell 7.6 and 5.1.
What the error looks like
I started a window with the Restricted policy and ran a simple script. PowerShell refused to load it:
$shell = (Get-Process -Id $PID).Path
$output = & $shell -NoProfile -ExecutionPolicy Restricted -File C:\psfaqs\Scripts\Get-Greeting.ps1 2>&1 |
ForEach-Object { $_.ToString() } | Out-String
$text = ($output -replace "$([char]27)\[[0-9;]*m", '' -replace '\s+', ' ')
'Result: Failed.'
[regex]::Match($text, 'File \S+ cannot be loaded because running scripts is disabled on this system\.').Value
Output:
Result: Failed.
File C:\psfaqs\Scripts\Get-Greeting.ps1 cannot be loaded because running scripts is disabled on this system.

Restricted allows commands you type but no script files at all, not even ones you wrote yourself.
Check your execution policy at every scope
The policy can be set in five places, and the first one that isn’t Undefined wins, from top to bottom:
$env:PSExecutionPolicyPreference = $null
$shell = (Get-Process -Id $PID).Path
& $shell -NoProfile -Command { Get-ExecutionPolicy -List } |
ForEach-Object { '{0,-13} {1}' -f $_.Scope, $_.ExecutionPolicy }
Output:
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser RemoteSigned
LocalMachine RemoteSigned

PowerShell 7 and Windows PowerShell 5.1 keep their LocalMachine policies separately, so they can differ, as they do on my PC. Check the shell you actually use.
| Scope | Who sets it | Lasts |
|---|---|---|
| MachinePolicy / UserPolicy | Group Policy | Until the policy changes; you can’t override it |
| Process | -ExecutionPolicy or -Scope Process | Only the current PowerShell process |
| CurrentUser | You, no admin needed | Permanently, for your account |
| LocalMachine | An administrator | Permanently, for everyone on the PC |
Fix 1: Allow scripts for your account
RemoteSigned runs scripts you create locally and requires a signature only for scripts downloaded from the internet. It’s the right choice for most people:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
On Windows 11, the same setting is in Settings > System > For developers, under PowerShell. If a downloaded script still won’t run afterward, see the file is not digitally signed.
Fix 2: Allow scripts for the current window only
-Scope Process changes the policy just for this PowerShell session, whi