首页 > 解决方案 > 在 Powershell 中远程安装 vbs

问题描述

我最近开始学习 powershell,这是我的第一个项目。我正在尝试自动远程安装。我试图到处寻找解决方案,但我找不到合适的解决方案。这是问题所在:

我需要在远程计算机上安装多个具有多个版本的应用程序。

我尝试了几件事,但到目前为止没有任何效果:(

这个对我有用,但前提是我不使用变量。如果我使用它们 PS(或者我猜是 cscript.exe)无法识别它们。

$hostname = "yourPc"

$app= "app_0001"

$ver = "v1.0.0"

Invoke-Command -ComputerName $hostname -ScriptBlock {cscript.exe \\$hostname\directory\install.vbs /p:$app /v:$ver}

所以我基本上最终\\$hostname\directory\install.vbs /p:$app /v:$ver不存在。cscript.exe可以做到这一点吗?

谢谢。

标签: powershellcmdremote-access

解决方案


win 脚本块中的代码在远程计算机上运行,​​因此它无法访问您的本地变量。

您可以将using:范围修饰符添加到希望 PowerShell 复制到远程计算机的变量中:

Invoke-Command -ComputerName $hostname -ScriptBlock {
  cscript.exe \\$using:hostname\directory\install.vbs /p:$using:app /v:$using:ver
}

...或者您可以通过参数将值作为参数参数显式传递给远程脚本块-ArgumentList

Invoke-Command -ComputerName $hostname -ScriptBlock {
  param($Path,$Application,$Version)

  cscript.exe \\$Path\directory\install.vbs /p:$Application /v:$Version
} -ArgumentList $hostname,$app,$ver

推荐阅读