簡體   English   中英

當執行策略設置為RemoteSigned時,為什么從Internet(azure blob)下載后執行腳本?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM