グループ ポリシー オブジェクトが台無しになっているため、複数のコンピューターにインストールすべきではないときに TightVNC がインストールされています。GPO はなくなったので、そこからソフトウェアを削除するだけでは、私が認識しているオプションはありません。したがって、コンピューターのリストから PowerShell を削除するためにスクリプトを作成しています。
これは私のスクリプトです:
if ($args.length -ne 1) {
Write-Warning "Must pass computer name, ending script.";
break
}
$pc = $args[0]
Write-Output "Scanning $pc for TightVNC...."
$prod = wmic /node:$pc product get name | where {$_ -match "TightVNC"}
if ($prod) {
Write-Output "Found TightVNC, attempting uninstall...."
wmic /node:$pc product where name="TightVNC" call uninstall
} else {
Write-Warning "Could not find TightVNC on $pc."
}
Write-Output "Done."
今、私の出力は次のとおりです。
Scanning [computer] for TightVNC....
Found TightVNC, attempting uninstall....
ERROR:
Description = Invalid query
Done.
ただし、2 番目の wmic 行を昇格したコマンド プロンプトにコピー アンド ペーストし、$pc を [computer] に置き換えると、問題なく動作します。PowerShell ウィンドウが昇格しています。
私のスクリプトがこれに適合する理由を誰か知っていますか? 最初の wmic コマンドが完了するまでにかなりの時間がかかる (>=5 分) ことはわかっていますが、実際に機能する 2 番目のコマンド ウィンドウでも同じように機能します。これについての洞察をいただければ幸いです。
注: ここのコンピューターはリモート PowerShell アクセス用に適切に構成されていないため、wmic を使用しています。それは私のやることリストにあります。