Invoke-VMScript PowerCLI 6.5 带参数调用脚本

Invoke-VMScript PowerCLI 6.5 Call Script with Parameters

我目前正在开发一个脚本,它应该能够将某个 Windows 共享附加为主机系统中具有驱动器号的网络驱动器。由于 Windows 共享是动态的(几乎所有脚本被调用时都可能发生变化。)我需要将其作为参数传递给虚拟机上的脚本 运行。

我目前拥有的。

在我的脚本中调用存储在我机器上的脚本。

MainScript。ps1 包含。

$MyVMName = "somevmname"
$Script = "C:\path\to\script\somescript.ps1 -Path \some\shared\folder"
Invoke-VMScript -VM $MyVMName -ScriptText $Script -ScriptType PowerShell -GuestCredential $MyGuestCredential

somescript.ps1 包含。

Param(
      [Parameter(Mandatory=$true)]
      $Path,
      [Parameter(Mandatory=$true)]
      $Credentials
)

New-PSDrive -Name "H" -PSProvider FileSystem -Root $Path -Credential $Credentials 

每次我执行我的 MainScript 时。ps1 它很可能会在执行 Invoke-VMScript 命令时冻结。还有其他方法可以将参数传递给脚本吗?

下找到的文档

https://pubs.vmware.com/vsphere-65/index.jsp#com.vmware.powercli.cmdletref.doc/Invoke-VMScript.html

不会透露太多调用脚本的使用参数。

您可以尝试创建一个新的 PowerShell 运行 脚本:

$MyVMName = "somevmname"
Invoke-VMScript -VM $MyVMName -ScriptText "powershell.exe -file C:\path\to\script\somescript.ps1 -Path \some\shared\folder" -ScriptType PowerShell -GuestCredential $MyGuestCredential

这是我用的

Invoke-VMScript -vm $vm -ScriptText {Start-Process "C:\Temp\Install.exe" -Verb runas "-q" -wait }