我正在尝试在基本上卸载产品代理的远程计算机上运行exe。下面是代码:
$test = Get-Content PC.txt
foreach ($a in $test)
{
$curr = Get-Location
Set-Location \\$a\Admin$\System32\CCMSetup
.\ccmsetup.exe /uninstall
Set-Location $curr
}
它不起作用。我最终从主机本身删除了该程序:)
备用选项:我使用命令行创建了一个批处理文件:
cd C:\Windows\System32\ccmsetup
ccmsetup /uninstall
exit
看来上面也可以使用Invoke-Command来实现。
Invoke-Command -ComputerName $client -FilePath UninstallCCM.cmd
显然,它不接受批处理文件。我想尽量保持简单。
目前我正在使用PSExec来安装和卸载程序。我是否需要在每个需要使用PowerShell执行脚本的远程计算机上启用PS Remoting(WinRM)? 有人可以帮忙吗?提前谢谢。
答案 0 :(得分:11)
此命令应该成功执行:
Invoke-Command -ComputerName $client -ScriptBlock { cd C:\Windows\System32\ccmsetup; ccmsetup /uninstall} -Credential $(Get-Credential) -Authentication CredSSP
但您需要在每台计算机上运行以下两个命令,在所有计算机上启用CredSSP身份验证:
Enable-WsManCredSSP -Role Server -Force
Enable-WSManCredSSP -Role Client -DelegateComputer * -Force
答案 1 :(得分:1)
我强烈建议您下载PSTools。那里有一个名为“psexec”的命令
PSexec非常简单,你可以这样称呼它:
psexec \\myserver C:\Windows\System32\ccmsetup /uninstall