powerCLI 从脚本重启虚拟机
powerCLI restart VM guest from script
我正在尝试 运行 批处理脚本,它将调用 ps1 以重新启动 VM 来宾。
它在我 运行 分开时工作,但问题是 CMD 上的 powerCLI 在没有参数的情况下加载。
我已经尝试 运行 了:
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 个命令合并到一个文件中?
要从 cmd 执行 PowerShell 命令,您必须使用 PowerShell 的 Command-Switch 传递它们。
您可以通过执行以下命令来实现您想要的效果:
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
您仍然可以使用 File-Parameter:
从 cmd 调用此 PowerShell 脚本
powershell -File <script>
我正在尝试 运行 批处理脚本,它将调用 ps1 以重新启动 VM 来宾。 它在我 运行 分开时工作,但问题是 CMD 上的 powerCLI 在没有参数的情况下加载。
我已经尝试 运行 了:
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 个命令合并到一个文件中?
要从 cmd 执行 PowerShell 命令,您必须使用 PowerShell 的 Command-Switch 传递它们。
您可以通过执行以下命令来实现您想要的效果:
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
您仍然可以使用 File-Parameter:
从 cmd 调用此 PowerShell 脚本powershell -File <script>