我目前正在开发一个脚本,该脚本应该能够将某个Windows共享作为网络驱动器附加到主机系统中的驱动器号。由于Windows共享是动态的(几乎所有时间都可以更改脚本调用。)我需要将此作为参数传递给VM上运行的脚本。
我现在有什么。
在我的脚本中调用存储在我机器上的脚本。
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
没有为调用的脚本显示过多的使用参数。
答案 0 :(得分:1)
您可以尝试创建运行脚本的新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
答案 1 :(得分:0)
这就是我使用的
Invoke-VMScript -vm $vm -ScriptText {Start-Process "C:\Temp\Install.exe" -Verb runas "-q" -wait }