Windows Server バックアップを、PowerShell でやってみる。<実践編> を書いてから、すでに一ヶ月以上経っています・・・
Windows Server バックアップのために書いた 5 行のコマンドレットの意味を、時間があるときにじっくり調べようと思っているうちにゴールデンウィークも終わってしまいました。いつでも出来ると思っていると、なかなか手をつけないものです。私が無精なだけかもしれませんが。
これはいかんと思い、この土日でアレコレ調べたところ、ボチボチ理解出来てきました。
さて、詳細は過去の記事を参照していただくとして、さっそく1行目から見ていきましょう。
$policy=new-wbpolicy
いきなり「ドル記号」から始まっています。これが今回のテーマである「変数」です。
コマンドプロンプトでは、前後をパーセント記号で挟む環境変数というものがありました。
%date% や %computername% のようにデフォルトで設定されている環境変数以外でも、"set <環境変数名>=<値>" というコマンドを実行することで任意の値を任意の環境変数として登録出来、"echo %<環境変数名>%" を実行することでその<値>を表示させることが出来ました。
"$policy=new-wbpolicy" は、それと似たことをしています。「policy」 という、デフォルトでは存在しない変数を定義しているのです。
※PowerShell においては「変数」と「環境変数」は別々の概念であって、「$×××=○○○」という形式で任意に登録出来るのは「変数」の方です。両者の違いについては後述します。
「policy」という変数の中に格納した値を表示するには、"$policy" を実行します。
なお、格納した値である「new-wbpolicy」自体もコマンドレットであり、新規のバックアップポリシーを作成するものです。もし "new-wbpolicy" コマンドレットだけを実行した場合には、作成されたバックアップポリシーが下記のように表示されます。
---------------------------------
Schedule :
BackupTargets :
VolumeToBackup :
FileSpecsToBackup :
FileSpecToExclude :
BMR : False
SystemState : False
VssBackupOptions : VssCopyBackup
---------------------------------
このバックアップポリシーは作成されたばかりなので、中身はほぼ空っぽと言ってよい状態です。それを変数「policy」に格納するというのが、1 行目の意味です。
( 1 行目を実行した直後に "$policy" を実行すると、当然ですが同じ結果が表示されます。)
2〜3 行目は、この空っぽのバックアップポリシーに具体的な設定を施すためのコマンドレットです。
そして、最後の 5 行目でいよいよバックアップを実行する際、変数として格納しておいたバックアップポリシーを呼び出して利用するわけです。
続く。