Windows PowerShell入門の入門
Application data下のフォルダをWindows PowerShellでZIPファイルにしてバックアップ取るで ちなみにPowerShellって何って人は "PowerShell 入門" 辺りで検索してください
とぶん投げましたが、入門の更に前に実行ポリシィの設定などで躓く人もいるのでそこについて解説することにします
この記事はWindows環境を使っておりWindows PowerShellを全く知らない人を対象にしています
Set-ExecutionPolicy
がどんなコマンドレットか知っている人には不要です
Windows PowerShellはWindows OS向けのシステム管理向けのプログラミング言語です
システム管理向けなので例えばゲーム開発には不向きです
一方、人間が手と目を使ってエクスプローラー上で行っているような作業をするには非常に強力です
例えばPCのストレージ容量が少なくなってきたので「ドキュメントフォルダ内のファイルで、最終更新日が1年以上前のファイルの一覧が欲しい」と思ったとき、Windows PowerShellでは以下のように実現する事ができます
[Environment]::GetFolderPath('MyDocuments') | Get-ChildItem -File -Recurse | Where-Object {$_.LastWriteTime -le [DateTime]::Now.AddYears(-1)}
このようにWindows PowerShellは従来のWindowsコマンド (DOSコマンド) によるバッチやWSHによるスクリプトファイルを置き換える時、非常に強力な言語です
Windows PowerShellはWindows 7以降のWindows OSであれば標準的には C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
にインストールされています
Windows PowerShellは単にスタートメニューから起動する他にもスタートアイコンの右クリックやエクスプローラーのツールバーのファイルから起動することもできます
また、素のPowerShellの他に統合スクリプト環境 (Integrated Scripting Environment) のWindows PowerShell ISEの実行ファイル powershell_ise.exe もありますが、まずはpowershell.exeを起動してください
PowerShellを起動出来たらプロンプトに Write-Host "Hello World";
と打ち込んでみてください
画面に Hello World Hello World と表示されればPowerSHellのHello Worldの完了です
Windows PowerShellのHello Worldは以上の通りですが、引き続きファイルにコマンドを保存してバッチ処理化する環境を整えます
そこで先ほどのHello Worldをファイルに保存したい所ですが、初期状態ではWindows PowerShellのスクリプトファイルからの読み込み、実効は無効になっている場合があり、仮に C ドライブ直下に Hello World.ps1 というPowerShellのファイルを保存して実行してもセキュリティエラーが発生する可能性があります
PS C:\>C:\Hello World.ps1
このシステムではスクリプトの実行が無効になっているため、ファイル C:\Hello World.ps1 を読み込むことができません。詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。
+ CategoryInfo : セキュリティ エラー: (: ) []、ParentContainsErrorRecordException
+ FullyQualifiedErrorId : UnauthorizedAccess
このため、まずはプロンプトで Get-ExecutionPolicy
を実行してみましょう
もし、結果が Restricted の場合、個別のコマンドは許可されていますが、スクリプトファイルの読み込みや実行しない設定になっているのでこれを変更する必要があります
実行ポリシーを変更するにはSet-ExecutionPolicy
というコマンドレットを使用します
PowerShellのプロンプトに Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser;
と実行すると "実行ポリシーの変更" ダイアログが出ますので、はいを選択して設定を変更します
上記のSet-ExecutionPolicy
はその名の通り実行ポリシーを設定するコマンドレットで-ExecutionPolicy RemoteSigned
はローカルコンピューター上で作成されたスクリプトは読み込み、実行できるが、インターネットからダウンロードされたファイルは信頼された発行元によってデジタル署名されていなければ実行できないポリシーを意味し、-Scope CurrentUser
はこの実行ポリシーの変更は、今作業しているユーザーのみへの変更であることを意味します
実行ポリシーについての詳細は about_Execution_Policiesを読んでください
以上でPowerShellのスクリプトファイルを実行できる環境が整いました
その上で、今後Windows PowerShellで何か開発する際は、PowerShell.exeより、Windows PowerShell ISEの方が便利なのでそちらを使うことをお勧めします
また、Windows PowerShellのスクリプトファイルを保存する場合は、文字コードは UTF-8 With BOM、改行コードについては CRLFで保存しておくのがおそらく無難です
これでWindows PowerShellの入門の入門は終了です
今度こそPowerShellって何って人は "PowerShell 入門" 辺りで検索してください