2017-02-16 10 views
0

VMゲストを再起動するためにps1を呼び出すバッチスクリプトを実行しようとしています。 それは私がそれを別々に走らせたときに動いていますが、問題はその引数なしでCMDのloadのpowerCLIです。powerCLI VMゲストをスクリプトから再起動

iの手順で実行し、それを試してみました:

echo on 
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noe -c ". \"C:\Program Files (x86)\VMware\Infrastructure\PowerCLI\Scripts\Initialize-PowerCLIEnvironment.ps1\" $true" 

は、CMDに:その後、

connect -viserver -server "serverName" -Protocol https -User "user"-Password "pass" 

Restart-VM "VMserverName" -RunAsync -Confirm:$false 

それはすべてが個別に正常に動作しますが、試しに結合するときでありますそれはすべて - それは動作していません。 はpowerCLIのように思えますが、コンソールの書き込みが速くなります。

私は

Start-Sleep -s 10 

コマンドをしようとしたがいない成功してきました。

上記の3つのコマンドを1つのファイルにまとめるにはどうすればよいですか?

答えて

2

cmdからPowerShellコマンドを実行するには、PowerShellのコマンドスイッチを使用してコマンドを渡す必要があります。

次のコマンドを実行して、あなたが望むものを達成できる:

powershell -Command "Import-Module VMware.VimAutomation.Core; Connect-VIServer -Server <server> -User <user> -Password <password>; Restart-VM <vm_name> -RunAsync -Confirm:$false" 

これは、これを行うのは非常に面倒な方法です。私は直接PowerShellを使用して、適切にスクリプトをフォーマットするには、少なくとも能力を持っていることをお勧め:

Import-Module VMware.VimAutomation.Core 
Connect-VIServer -Server <server> -User <user> -Password <password> 
Restart-VM <vm_name> -RunAsync -Confirm:$false 

あなたはまだファイル・パラメータを使用することにより、CMDからこのPowerShellスクリプトを呼び出すことができるでしょう:

powershell -File <script> 
+0

は魔法のように動作します:-)私はあなたが提案するように2番目の解決策を実装します。 –

+0

'Restart-VM'は、物理マシン上のリセットボタンを押すのと同じ、VMのハードリセットを引き起こすことに注意してください。ゲストをきれいに再起動するには、代わりに 'Restart-VMGuest'を使います。 –

関連する問題