PowerShell の概要

PowerShell の概論

Windowsのシェル実行環境のこと。

特徴

PowerShellの特徴として、以下のようなものがある。

  1. コマンド形式は、 {動詞}-{名詞} の形式
  2. 各コマンドは、 .NET Framework のオブジェクトを出力する
    • と、世の説明(Windows PowerShell ポケットリファレンス)には書いてあるが、COMオブジェクトも返ってくるのではないか、と思っている
    • 実際には、少し拡張されている。PowerShellのディレクトリの types.ps1.xml にある
  3. WindRMなどの管理系ツールとの連携がある
    • PowerShell DSC(Desired State Configuration) と呼ばれる宣言的な管理フレームワークがWindows onlyな環境では便利に見える

現状

OS Version Default .NET Framework Default PowerShell
2008 R2 2.0 2.0
7 SP1 3.5SP1 2.0
2012 4.5 3.0
8 4.5 3.0
2012 R2 4.5 4.0
8.1 4.5 4.0
10(Tech prevで確認) 4.5 5.0
2016? ? ?

PowerShell 5.0での新機能

What’s New in Windows PowerShell (英語が嫌な人は、 わんくま同盟大阪勉強会#62「PowerShell 5.0 新機能」資料公開 くらいを見る。現状他に日本語資料がなさそう)

個人的な注目ポイントは、

  • ConvertFrom-String
  • デバッグ系の充実
  • PowerShell ISE を利用したリモートのファイル編集

PowerShell を実行する方法

  • PowerShell.exe で
    • 対話的に実行
    • powershell -command {_実行したいコマンド_}
    • powershell -file _スクリプトへのパス_
  • PowerShell ISE で開発/実行

Execution-Policy の設定

PowerShell

はセキュリティ機能の一貫として、スクリプトの実行ポリシーを持っている。 | これにより、しばしばスクリプトが実行できない。 | その場合、Set-ExecutionPolicy コマンドを利用して、ポリシーを変更する必要がある。 | よく使うものは、以下の4つ。

  • Restricted
    • クライアントOSや古いServerでのデフォルト
    • すべてのスクリプトを実行しない
  • AllSigned
    • 信頼できる署名のあるコードのみ実行
  • RemoteSigned
    • Windows Server 2012 R2 でのデフォルト
    • ダウンロードしたスクリプトについては、信頼できる署名のあるコードのみ実行
    • ローカルファイルは署名なしで実行可能
  • ByPass
    • すべてのファイルを実行時の確認プロンプトなしに実行する