【发布时间】:2021-02-16 17:57:22
【问题描述】:
我正在尝试编写一个 powershell 脚本,该脚本可以访问一组计算机,并根据操作系统架构 32 位或 64 位运行安装。但我无法让它工作。
$Computers =Get-Content -Path.\vms.txt
foreach ($Computer in $Computers)
{ Invoke-Command -ComputerName $Computer -ScriptBlock {
If ((Get-WmiObject win32_operatingsystem | select osarchitecture).osarchitecture -like "64*")
{
Start-Process D:\setup64.exe
}
Else
{
Start-Process D:\setup.exe
}
}
我从 Powershell 收到两个错误,一个是找不到文件,另一个是它无法识别 Else
【问题讨论】:
-
#1。左括号应与
if条件位于同一行。 #2。| select osarchitecture是多余的。 #3。远程机器上是否存在文件? -
哪个 PowerShell 版本?确切的错误信息是什么?请注意,
Get-WmiObject已在 PowerShell Core 中耗尽。 -
该文件存在于同一目录中,其中包含计算机的名称。我正在使用 PowerShell 2.0
-
您确定列表中的所有计算机在它们的本地磁盘上都有安装文件
D:\setup64.exe和D:\setup.exe?
标签: powershell wmi