0
我對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。