Power Shellのスクリプトをファイルにして実行することができます。拡張子は.ps1になります。
test.ps1というファイルに下記のように一行スクリプトを書いてみます。
Get-ChildItem c:\
これをPower Shellのコンソールで実行してみます。するとこのようなエラーが出ます。
.\test.ps1 : このシステムではスクリプトの実行が無効になっているため、ファイル D:\Work\test.ps1 を読み込むことができません。詳細については、「about_Execution_Policies」(http://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。
発生場所 行:1 文字:1
+ .\test.ps1
+ ~~~~~~~~~~
+ CategoryInfo : セキュリティ エラー: (: ) []、PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
これは、セキュリティー上の対策で容易にスクリプトファイルの実行をできないようにしているためです。ここでスクリプトを実行できるようにします。(リスクはありますので、それぞれの状況により設定はご判断ください。)
Get-ExecutionPolicy
Restrictedと表示されるはずです。(設定により違うケースもありますが。)これはすべてのスクリプトの実行を禁止している状態です。これを「ローカルに保存しているファイルは実行可能で、インターネットからダウンロードしたものは署名のあるもののみ実行許可」にします。まずは、PowerShellのコンソールは(管理者)で起動してください。
Set-ExecutionPolicy RemoteSigned
下記のように表示されますので
実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies
のヘルプ トピック (http://go.microsoft.com/fwlink/?LinkID=135170)
で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y) [N] いいえ(N) [S] 中断(S) [?] ヘルプ (既定値は “Y”):
ここでYを押してEnterキーを押します。
PowerShellコンソールで下記のように実行します。
.\test.ps1
無事下記のように実行できました。
PS D:\Work> .\test.ps1
ディレクトリ: C:\
Mode LastWriteTime Length Name
—- ————- —— —-
d—- 2013/11/03 21:19 history
d—- 2013/09/11 0:04 inetpub
d—- 2012/11/07 0:59 mnt
d—- 2013/03/10 0:43 NVIDIA
d—- 2013/07/31 23:28 NvidiaLogging
d—- 2013/08/23 0:22 PerfLogs
d-r– 2013/11/06 23:07 Program Files
d-r– 2013/11/17 17:13 Program Files (x86)
d-r– 2013/11/21 0:05 Users
d—- 2013/11/17 15:26 Windows