4

基本的に製品エージェントをアンインストールするリモートマシンで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を使用してスクリプトを実行する必要があるすべてのリモートマシンでPSRemoting(WinRM)を有効にする必要がありますか?誰か助けてもらえますか?前もって感謝します。

4

2 に答える 2

11

このコマンドは正常に実行されます。

Invoke-Command -ComputerName $client -ScriptBlock { cd C:\Windows\System32\ccmsetup; ccmsetup /uninstall} -Credential $(Get-Credential) -Authentication CredSSP

ただし、各マシンで次の2つのコマンドを実行して、すべてのマシンでCredSSP認証を有効にする必要があります。

Enable-WsManCredSSP -Role Server -Force
Enable-WSManCredSSP -Role Client -DelegateComputer * -Force
于 2013-03-11T10:55:29.307 に答える
2

PSToolsをダウンロードすることを強くお勧めします。そこに「psexec」というコマンドがあります

PSexec は非常に単純で、次のように呼び出します。

psexec \\myserver C:\Windows\System32\ccmsetup /uninstall
于 2013-03-11T14:46:37.360 に答える