У меня есть .exe, который нужно запускать через GPO. Я попытался сделать это с помощью пакетного сценария, однако он должен работать на пользовательских машинах, а для этого требуется повышение прав, поскольку они не являются локальными администраторами. Вместо того, чтобы касаться каждой машины, чтобы настроить локального администратора и запустить GPO. Я хотел бы настроить сценарий PowerShell для запуска сеанса с повышенными правами, PS или CMD, это не имеет значения.
Большой блокировщик определяет имя хоста каждой машины, поэтому я могу использовать:
New-PSSession hostname -Auth CredSSP -cred domain\adminuser
Я подумывал о том, чтобы он обнаруживал IP-адрес, а затем выполнял поиск в DNS для пользователя, но, помимо проблем с этим, я полагаю, что это гораздо больше работы, чем необходимо. Я попытался найти здесь похожие проблемы, но не могу найти аналогичную ситуацию с указанным выше блокировщиком.
Пакетный файл:
@echo off
if exist "C:\Program Files\directorypath\service.*" goto END
if exist "C:\Program Files (x86)\directorypath\service.*" goto END
"\\SERVER\FOLDER\installer.exe" --mode unattended
:END
Использование runas казалось не совсем подходящим для этой проблемы. И я бы предпочел не помещать свой пароль или общий пароль администратора в текстовый файл.
Вы можете добавить своего администратора к локальным администраторам с помощью сценария запуска net localgroup administrators domain\adminuser /add
.
Но я не думаю, что это необходимо. Я бы подумал, что ваш пакетный сценарий будет отлично работать как сценарий запуска для компьютеров. Он будет работать как учетная запись компьютера, поэтому учетным записям компьютеров потребуется доступ к общему ресурсу.