今回はPowerShell上でコマンドを実行する場合の注意点に関してです。PowerShell上で色々な作業を行う便利さに慣れてくると、コマンドプロンプトは全く使わずにPowerShell上で作業を完結させるようになってきます。が、このときにちょっとした落とし穴があります。

私がはまったのはwbadminコマンドの利用時でした。wbadminコマンドはPowerShellのコマンドレットではない、純粋なコマンドプロンプト上で動作するプログラムです。Windows Server 2008のバックアップを行うことができます。

PowerShell上からwbadminコマンドを実行しようとしたところ以下のような現象が発生しました。「きちんと入力しているのに、文法ミスと言われてしまう」というものです。

1:PSC:\Windows\System32>wbadminstartsystemstatebackup-backuptarget:f:

 

2:wbadmin1.0-

 

3:(C)Copyright2004MicrosoftCorp.

 

4:

 

5:

 

6:-:backuptarget使

 

7:

 

8:使:WBADMINSTARTSYSTEMSTATEBACKUP

 

9:-backupTarget:{}

 

10:[-quiet]

 

11:

 

12:

 

13:

 

14:-backupTarget

 

15:

 

16:

 

17:-quiet

 

18:

 

19::

 

20:WBADMINSTARTSYSTEMSTATEBACKUP-backupTarget:f:

 

例のところに書かれているオプションをそのままコピー&ペーストしても動きません!原因がわからずかなり悩んでしまいました。しかも、全く同じコマンドをコマンドプロンプト上で実行すると正常に動作するのです。

結局原因はPowerShellの「式モード」と「コマンドモード」の違いにありました。結局以下のように入力すればうまく動くことがわかりました。

1:wbadminstartsystemstatebackup"-backuptarget:f:"

 

原因は-bakuptarget:f:という文字列をPowerShellに直接入力してみるとわかります。

1:PSC:\Windows\System32>-backuptarget:f:

 

2:

 

3::1:2

 

#P#4#o---#----:#w#e[[[+rEPSx-ohpDbweroelesrls(SsWhiieonlndlomwos-(dPeeoPxwopewrreeSrsChSsoehimleomllnalnl)mdo]og(dmheoSt)dot(e-pn:ie/nt/uPbfolcwopegpr].(S(nchheDoettomlt/smlpsa:tn-/ud/dWkymia/onwpddaoeosw)waeskris)2L-hisevhleil]n/(gbhoat-stpipsc:..bh/ltromoglw.#5smioos-d.nese)pta.cnees..jlpi/2(e0#.0c9o-m0/3b-l1o9g)/cns!AE3775C67DE2245F!289.entry))