close

使用作業系統內建的 Powershell 整合指令碼工具編輯指令碼

Windows 2008 r2 預設不會自動安裝,可透過指令碼新增或透過 UI管理工具加入

 

image

開啟Powershell工具執行已下指令 安裝 [ Powershell整合指令碼環境(ISE)]

Import-Module ServerManager
Add-WindowsFeature PowerShell-ISE

image

或透過 UI工具介面

伺服器管理原=>功能結點中選"新增功能"

勾選WindowsFeature PowerShell 整合指令碼環境ISE即可

image

第一次在電腦上啟動 Windows PowerShell 時,可能會出現錯誤訊息。

 

例如,使用 Powershell 執行 D:\Temp\run.ps1指令檔

檔案內的指令碼

write-host "Hi Sandy ~"

image

或使用PowerShell ISE工具執行以下指令碼,出現錯誤訊息

image

上述原因 為PowerShell的執行原則為 Restricted  (預設值)

你可以使用以下語法確認目前出伺服器使用的執行原則

Get-ExecutionPolicy

執行原則可以設置不同級別的系統上。若要查看不同級別的執行原則,可使用以下語法

Get-ExecutionPolicy -List | Format-Table -AutoSize

image

 

  • Restricted (預設執行原則):允許執行互動式命令,無法執行所有的指令碼檔案,包括格式化和組態檔 (.ps1xml)、模組指令碼檔案 (.psm1) 和 Windows PowerShell 設定檔 (.ps1)。
  • RemoteSigned: 
          指令碼可以執行。 從網際網路下載的指令碼和組態檔都必須有受信任發行者的數位簽章 (包括由電子郵件程式和立即訊息程式所下載)。 已在本機電腦上執行及撰寫的指令碼 (並非從網際網路所下載) 不需要數位簽章。 執行已簽署但惡意的指令碼會有風險
  • AllSigned
          指令碼可以執行。所有的指令碼和組態檔都需經過受信任的發行者簽署,包括本機電腦上撰寫的指令碼在內。 在執行來自尚未分類為受信任或不受信任之發行者的指令碼之前,對您進行提示。 執行來自網際網路以外來源的未簽署指令碼以及已簽署 (但居心不良) 的指令碼會有風險。
  • Unrestricted
          可以執行未經簽署的指令碼  (執行惡意的指令碼會有風險)。 在執行從網際網路下載的指令碼和組態檔之前,對使用者提出警告
  • Bypass
          不會封鎖任何項目,而且沒有警告或提示。 在這個執行原則所針對的組態中,Windows PowerShell 指令碼是建立來提供較大的應用程式使用,或是做為本身具有安全性模型之程式的基礎。
  • Undefined
          目前的範圍中沒有設定執行原則。 如果所有範圍中的執行原則是 Undefined,則有效的執行原則為  Restricted,這是預設的執行原則。

若要修改執行原則,使用Set-ExecutionPolicy指令修改,例如將執行原則改為RemoteSigned

Set-ExecutionPolicy RemoteSigned

 

若不想修改伺服器的執行原則,這裡 介紹了15種方法避開這類錯誤訊息

例如,強制指定要執行的檔案使用 Unrestricted 原則

PowerShell.exe -ExecutionPolicy UnRestricted -File D:\Temp\run.ps1

image

參考:

使用 Windows PowerShell 撰寫指令碼

Using the Set-ExecutionPolicy Cmdlet

15 Ways to Bypass the PowerShell Execution Policy

How to Allow the Execution of PowerShell Scripts on Windows7

http://www.dotblogs.com.tw/gelis/archive/2010/10/23/18532.aspx

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 小草 的頭像
    小草

    學海無邊,書囊無底

    小草 發表在 痞客邦 留言(0) 人氣()