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 }
我目前正在开发一个脚本,它应该能够将某个 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 }