нет необходимости выполнять этот шаг, чтобы выполнить задачу, которую вы описываете, и по разным причинам выполнение этого шага не обеспечит успешное выполнение задачи. Например, учетные данные могут иметь разрешения на удаленном компьютере, но может быть установлено программное обеспечение для обеспечения безопасности, которое препятствует его успешному завершению.
Способ решения вашей проблемы состоит в том, чтобы просто выполнить задачу, используя предоставленные учетные данные, и проверить все возвращаемые значения . Если вы получаете STATUS_ACCESS_DENIED, это означает, что он говорит. Если вы не получили никаких ошибок, значит, ваша работа выполнена.
Проверка учетных данных только будет полезна для помощи пользователю в выборе соответствующих учетных данных. Вы также можете проверить доступ к общему ресурсу \\machine\admin$
, как и любую другую более сложную проверку.
Тем не менее, вот как сделать то, что вы спросили
Если учетные данные являются учетными данными домена, вам нужно будет найти их в Active Directory. ADSI хорош для этого из скрипта. Другие API существуют. Получить список групп пользователей.
Затем вам необходимо подключиться к удаленному компьютеру с помощью NetXXX apis или поставщика ADSI WinNT. Получить список членов группы администраторов. Если любая из учетных записей домена пользователя является членом группы «Администраторы», пользователь является участником.
Все это можно сделать из скрипта с использованием ADSI LDAP и WinNT провайдеров.
Альтернатива
Кажется, что всем, кто хочет запустить удаленный код, нужно написать исполняемый файл службы, установить службу и запустить ее.
Альтернативой, которая очень проста, если у вас есть учетные данные администратора, является использование службы планировщика заданий. С помощью SCHTASKS.EXE
легко создать запланированное задание, которое запускается как SYSTEM
, LOCAL SERVICE
, NETWORK SERVICE
или любую учетную запись, учетные данные которой вы имеете. Он может быть создан без расписания, затем явно запущен или создан с «однократным» расписанием для запуска в любое время, например, в течение следующих нескольких минут.
Если вам нужно запустить код на удаленном компьютере, я настоятельно рекомендую SCHTASKS.EXE
, а не метод обслуживания.