Из-за перепутанного объекта групповой политики на нескольких компьютерах TightVNC установлен, когда им этого не нужно. Объект групповой политики ушел, поэтому просто удаление программного обеспечения оттуда не является вариантом, о котором я знаю. Поэтому я пишу сценарии, чтобы удалить PowerShell из списка компьютеров.
Это мой script:
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.
Однако, если я скопирую и вставлю вторую wmic-строку в повышенную командную строку и заменим $pc на [computer], она работает нормально. Окно "Моя PowerShell" повышено.
Кто-нибудь знает, почему мой script будет соответствовать этому? Я знаю, что для выполнения первой команды wmic ( >= 5 минут) потребуется довольно много времени, но она также работает во втором командном окне, где оно действительно работает. Я был бы признателен за понимание этого.
ПРИМЕЧАНИЕ. Я использую wmic, потому что компьютеры здесь неправильно настроены для удаленного доступа PowerShell. Это в моем списке дел.