次の方法で共有

stop-vm

Anonymous
2025-01-12T01:57:28+00:00

PowerShellのStop-VMコマンドを複数の仮想マシンに対して同時に実行したいのですが、どなたかご教示いただけないでしょうか。

Stop-VM Name <仮想マシン1> -Force

Stop-VM Name <仮想マシン2> -Force

Stop-VM Name <仮想マシン3> -Force

とした場合、仮想マシン1から順番にシャットダウンされ、時間を要してしまいます。

尚、下記でも目的は達成できたのですが、コマンドプロンプトから実行すると -AsJob の部分が反映されず順番にシャットダウンされます。。。

Get-VM | Where-Object {$_.Name -like "*WAP*"} | Stop-VM -Force -AsJob

ビジネス向け Windows | Windows Server | デバイスと展開 | その他

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

8 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2025-01-13T10:49:32+00:00

    状況が今一つよく分からないのですが、

    > Powerhelllで実行はできたのですが

    というのは PowerShell で

    Start-Job -ScriptBlock {Stop-VM PC1 -Force}
    

    でバックグラウンドジョブとして Stop-VM が実行できたということですか?

    そして

    > コマンドプロンプトだと起動しません。

    とはコマンドプロンプトで

    powershell -Command Start-Job -ScriptBlock {Stop-VM PC1 -Force}
    

    では実行できないということですか? ※このコマンドは期待(VM を停止する)通りには実行されないと思いますが。

    about_PowerShell_exe - PowerShell | Microsoft Learn

    を見ると、コマンドプロンプトでスクリプトブロックを実行する場合は

    powershell -Command {Get-WinEvent -LogName security}

    ではなく

    powershell.exe -Command "& {Get-WinEvent -LogName security}"

    とするように書かれていますね。

    なので

    powershell -Command "Start-Job -ScriptBlock &{Stop-VM PC1 -Force}"
    

    とかになるのかな(未確認)。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2025-01-13T06:22:31+00:00

    説明不足で申し訳ありません。

    コマンドプロンプトから

    powershell -Command

    は付けた状態でも同様です。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2025-01-13T03:04:29+00:00

    PowerShell コマンドレットなのでコマンドプロンプトでは実行できません。

    コマンドプロンプトから

    powershell  -Command  PowerShellで実行するコマンド
    

    を実行します。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  4. Anonymous
    2025-01-12T13:28:41+00:00

    ご教示ありがとうございます。

    下記をPowerhelllで実行はできたのですが、コマンドプロンプトだと起動しません。

    Start-Job -ScriptBlock {Stop-VM PC1 -Force}

    Start-Job -ScriptBlock {Stop-VM PC2 -Force}

    Start-Job -ScriptBlock {Stop-VM PC3 -Force}

     PowerShell のスクリプトの実行ポリシーかと思いましたが、Bypassでも実行されません。。。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  5. Anonymous
    2025-01-12T04:42:20+00:00

    Start-Job でジョブとして登録すれば良いのでは?

    about_Jobs - PowerShell | Microsoft Learn

    about_Job_Details - PowerShell | Microsoft Learn

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません