2013-12-25 概要 †WindowsPowerShell †WSHの後継となることを目標に開発された、Windowsのシェル。 Windows XP, Vista, 2003, WindowsServer 2008向けに初代のv1がリリースされた。 PowerShellCore †WindowsPowerShellはWindowsの.NET Framework上で動作する前提で作られいた。 言語仕様はWindowsPowerShellとあまり変わらないが、「Windows以外」の意識が強く、WMIやCOMをはじめWindows特有の機能は当然つかえなかったり 準備 †インストールについて †サーバOSではWindowsServer 2008R2以降、クライアントOSではWindows7に以降については標準でインストールされている スクリプト実行の許可 †デフォルトでは、セキュリティポリシーによりスクリプトファイル(.ps1)をそのまま実行することができない .\script.ps1 : このシステムではスクリプトの実行が無効になっているため、ファイル D :\Users\user\Desktop\script.ps1 を読み込むことができません。詳細については、 「about_Execution_Policies」(http://go.microsoft.com/fwlink/?LinkID=13 5170) を参照してください。 策1:PowerShellをExecutionPolicyを指定して起動 †#sh(ruby){{ 策2:自分だけExecutionPolicyを変える †#sh(ruby){{ 自分だけ、今後ずっと指定したExecutionPolicyになる。 策3:PowerShellのデフォルトのExecutionPolicyを変更する †管理者権限でPowerShellを実行し、以下のコマンドを入力する #sh(bash){{ PS C:\Windows\system32> Set-ExecutionPolicy RemoteSigned -Force ポリシーがRemoteSignedに変更されていることを確認して終了 #sh(bash){{ なお、管理者権限でない状態でSet-ExecutionPolicyを実行すると、下記のようなエラーが発生する Set-ExecutionPolicy : レジストリ キー 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Po werShell\1\ShellIds\Microsoft.PowerShell' へのアクセスが拒否されました。 発生場所 行:1 文字:1 + Set-ExecutionPolicy RemoteSigned + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Set-ExecutionPolicy], Unautho rizedAccessException + FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.Pow erShell.Commands.SetExecutionPolicyCommand スクリプトの実行方法 †PowerShellはセキュリティを非常に注意して設計されており、スクリプトファイルをクリックして実行することを禁止している また、カレントフォルダに存在するスクリプトファイルも、必ず下記のようにディレクトリから指定しなければ実行することができない #sh(bash){{ 経験的には †展開先のマシンでRemoteSignedになっているとは限らないので、上記の策1でやったように、powershellの引数にExecutionPolicyを指定して起動させるのが確実。 呼び出す元の.batファイル #sh(bash){{ 呼び出される.ps1ファイル #sh(ruby){{ 仕様 †演算子 †文法 †定数 †コマンドレット †.NETオブジェクトの初期化 †New-Object 型 コンストラクタ引数の順で引数を与える #sh(bash){{ COMオブジェクトの初期化 †#sh(bash){{ サンプル †関連ページ †
|