Powershell脚本无法调用它自己,因为“在此系统上禁用运行脚本”
我对powershell脚本编程(以及编程/一般脚本编程)非常陌生,这是我的第一个powershell脚本。我正在尝试编写一个将Linux子系统安装到PC上的脚本。下面是代码Powershell脚本无法调用它自己,因为“在此系统上禁用运行脚本”
function Get-ScriptDirectory { #Gets scripts full path Split-Path -parent $PSCommandPath
}
If (-NOT ([Security.Principal.WindowsPrincipal]
[Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole(`
[Security.Principal.WindowsBuiltInRole] "Administrator")) #checks if script is being run as admin
{
Set-Location -Path $PSScriptRoot
PowerShell -NoProfile -ExecutionPolicy Unrestricted -Command "&
{Start-Process PowerShell -ArgumentList '-NoProfile -ExecutionPolicy
Unrestricted -File ""Get-ScriptDirectory""' -Verb RunAs}"; #starts
#Powershell with admin permissions and executes this script
Break
}
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux #Installs WSL
我不得不采取if语句如果脚本正在与管理员privliges(似乎无法再找到它)运行的检查。我也在Fedora主机上的一个虚拟机内运行它。我认为它不能称之为自己的事实,因为“在这个系统上禁用运行脚本”非常奇怪。我拿出了if语句,一切运行良好,并安装WSL。
回答:
“运行脚本被禁用......”几乎可以肯定 - PowerShell执行策略设置为“受限制”。请参阅Get-Help about_Execution_Policies
。
要启用运行脚本,您需要以管理员身份运行PowerShell会话,并在该会话中执行一个执行策略,该策略将(a)为您提供足够的安全以满足您的需求,并且(b)允许您执行你感觉舒适的脚本是安全的。见Get-Help Set-ExecutionPolicy
。
以上是 Powershell脚本无法调用它自己,因为“在此系统上禁用运行脚本” 的全部内容, 来源链接: utcz.com/qa/264861.html