从PowerShell在远程计算机上安装.exe

时间:2011-03-30 01:00:29

标签: powershell powershell-v2.0

所以,我一直试图通过PowerShell脚本执行以下操作:

有关计算机列表,请执行以下操作:

  • Ping计算机(通过WMI)以查看它是否可用;如果没有,记录&如果是这样,请继续
  • 在C:\驱动器的根目录下创建一个文件夹(通过Invoke-WmiMethod);如果失败,记录&如果成功,请继续
  • 将文件(包括.exe)从另一台计算机复制到该文件夹​​中;如果失败,记录&如果成功,请继续
  • 运行.exe文件(通过Invoke-WmiMethod);如果失败,记录&如果成功,则记录成功,完成(使用此计算机。)

我遇到的问题是执行.exe(程序安装程序) - Invoke-WmiMethod命令通常有效,但对于某些机器,它会挂起(不会失败,但会挂起。)我试过了尝试让它作为一个作业运行的一大堆东西所以我可以在安装时设置超时(使用Invoke-WmiMethod param运行-AsJob命令,总是返回Failed .. 。; Start-Job -Computer $compname { Invoke-WmiMethod...,返回Completed但安装永远不会发生;确保远程计算机禁用了Windows防火墙,关闭了UAC等等但仍然在我的命令上运行Invoke-WmiMethod命令它没有作为一个工作运行,它挂起。是的,我正在运行PS作为域管理员,所以我应该拥有目标机器的权利。)

因此,作为PowerShell的新手,我现在完全不知道接下来要尝试什么... 如何解决在远程系统上运行.exe的问题PowerShell脚本?需要注意的是,目标机器并非都运行PowerShell [V1 | V2](目标PC是XP,Vista和7的混合)或者没有启用远程处理。另一个警告是安装程序是.exe,而不是.msi,这是无法更改的(它是第三方应用程序。)

提前感谢任何能指出我正确方向的人(并给我一些示例代码......)

1 个答案:

答案 0 :(得分:1)

在执行这些脚本的系统(管理站或中央系统)上运行什么操作系统?如果是Windows XP,则存在WMI和-asJob的已知问题。

请检查:WMI Query Script as a Job

在这种情况下,我建议转移到Windows 7系统,然后运行脚本在所有其他计算机上远程安装.exe。