腳本 Scripts
相當於以前的 .bat 批次檔
修改執行政策(Execution Policy)
Windows 基於安全因素
對腳本執行政策(Execution Policy)設定了不同原則
- Restricted:所有腳本都不能執行
- AllSigned:所有腳本都要簽署後才能執行
- RemoteSigned:僅遠端下載的腳本需要簽署
- Unrestricted:無限制
系統預設是 Restricted
所以執行指令碼會出現以下訊息:
「因為這個系統上已停用指令碼執行,所以無法載入xxx檔案」
查看目前執行政策
Get-ExecutionPolicy
修改執行政策
必須以系統管理員身份執行 PowerShell
Set-ExecutionPolicy RemoteSigned
確定?A (accept)
撰寫 HelloWorld 程式
param ($UserName = "World")
$Message = "Hello " + $UserName + "!"
Write-Output $Message
存成 HelloWorld.ps1
呼叫
在 PowerShell 中輸入完整檔名即可執行(不需引號)
D:\HelloWorld.ps1
也能指定參數
D:\HelloWorld.ps1 Tony
D:\HelloWorld.ps1 -UserName Tony
模組 Module
可以更符合物件導向的概念
撰寫 HelloWorld 程式
function Say-Hello($UserName = "World") {
$Message = "Hello " + $UserName + "!"
Write-Output $Message
}
存成 HelloWorld.psm1
呼叫
在 PowerShell 中先 Import 模組檔案
Import-Module "D:\HelloWorld.psm1"
之後就能直接呼叫 function 並給予參數
Say-Hello Tony