[英]Why script is executing after downloaded from internet ( azure blob ) when execution policy is set as RemoteSigned
我正在從azure blob存儲下載一個腳本,然后在powershell腳本中執行。 無論我的計算機上設置了什么策略,都將下載並執行它的獲取。 目前,我的計算機策略已設置為“ RemoteSigned”
在代碼方面,我將InitialSessionState的executionPolicy屬性配置為RemoteSigned。
var iss = InitialSessionState.CreateDefault();
iss.ExecutionPolicy = ExecutionPolicy.RemoteSigned;
var runSpace = RunspaceFactory.CreateRunspace(iss);
runSpace.Open();
PowerShellInstance = PowerShell.Create();
PowerShellInstance.Runspace = runSpace;
var output = PowerShellInstance.Invoke();
它只是執行腳本
和腳本是
$Urls = @()
$Urls += "https://.............ps1"
$OutPath = "C:\Temp\"
ForEach ( $item in $Urls) {
$file = $OutPath + ($item).split('/')[-1]
(New-Object System.Net.WebClient).DownloadFile($item, $file)
}
cd "C:\Temp\"
.\.ps1
根據我對執行策略的了解,除非包含簽名的證書或簽名,否則它永遠不能執行。 但是它仍然執行。 任何人都可以讓我知道為什么嗎?
使用Get-Content $ScriptPath -Stream zone.identifier
檢查區域標識符。 如果流不存在,那么即使使用RemoteSigned
設置,腳本也將運行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.