Powershell 远程软件卸载

Powershell 远程软件卸载

我正在尝试从我们域中的远程计算机列表中卸载一个或多个软件。

我尝试了invoke-command和enter-pssession,然后尝试了以下命令,但似乎不起作用。

Start-Process -FilePath C:\Windows\System32\cmd.exe -ArgumentList "/c,$($quietuninstallString)" -verb RunAs 

其中 $quietuninstallstring 类似于:“C:\Program Files\Beyond Compare 4\unins000.exe”/SILENT

我尝试过打开/关闭 UAC、使用/不使用 Verb RunAs 管理员运行不同的软件和远程 PC。

这里我遗漏了什么吗?如果有人能给我指出正确的方向,我将不胜感激。

答案1

要从 powershell 执行文件,请使用&Start-Process代替 cmd:

Invoke-Command -ComputerName 'Example' -ScriptBlock {& 'C:\windows\System32\HOSTNAME.EXE' '/?'}

或者

Invoke-Command -ComputerName 'Example' -ScriptBlock {& "$($quietuninstallString)" '/c'}

如果用户是远程机器的管理员,这将正常工作。

确保在远程机器上设置变量。您还需要确保像以下标志一样/SILENT在其自己的引号中输入&(我假设您想要两者/SILENT/c

Invoke-Command -ComputerName 'Example' -ScriptBlock {
  $UninstallPath = "C:\Program Files\Beyond Compare 4\unins000.exe"
  & "$UninstallPath" '/SILENT' '/c'
}

在这些情况下,您还可以使用结构在本地计算机上指定变量$Using:varname(请参阅远程变量

$UninstallPath = "C:\Program Files\Beyond Compare 4\unins000.exe"
Invoke-Command -ComputerName 'Example' -ScriptBlock {& "$($Using:UninstallPath)" '/SILENT' '/c'}

相关内容