===== Как проверить выполнение задачи/процесса от имени учётной записи MSA/gMSA на Windows ===== {{:microsoft-windows:windows-server-2012-r2:adds:how-to-use-managed-service-accounts-msa-and-group-managed-service-account-gmsa:pasted:20190606-212451.png }} При планировании разного рода задач и процессов, выполняемых от имени сервисных учётных записей **MSA** и **gMSA** желательно выполнять тестовый запуск в контексте такой учётной записи. Например, нам может потребоваться протестировать запуск какого-то скрипта, который в дальнейшем планируется включить [[:microsoft-windows:windows-server-2012-r2:adds:how-to-use-managed-service-accounts-msa-and-group-managed-service-account-gmsa:How-to-create-a-Windows-Scheduler-task-on-behalf-of-MSA-gMSA-in-PowerShell|в задании планировщика Windows]]. Пароль сервисной учётной записи MSA/gMSA нам неизвестен, так как он обслуживается в автоматическом режиме контроллерами домена **Active Directory**. Поэтому проверить работу скрипта от имени сервисной учётной записи стандартным способом "запуск от имени" (**Run-As**) у нас не получится. Воспользуемся для этой задачи утилитой **PsExec** из набора [[https://docs.microsoft.com/en-us/sysinternals/downloads/psexec|Windows Sysinternals]]. Если запуск этой утилиты **PsExec** заблокирован администратором домена, можем воспользоваться [[https://blog.it-kb.ru/2018/03/30/bypassing-hash-type-rule-of-restrictions-in-software-restriction-policies-rsp-in-unrestricted-mode-in-active-directory-group-policy-gpo-substitution-of-digital-signature/|ранее описанным методом]], чтобы обойти такое ограничение. Открываем командную строку __с правами Администратора__ и выполняем вызов утилиты **PsExec** с параметрами, которые позволят интерактивно запустить отдельный экземпляр **cmd.exe** от имени учётной записи MSA/gMSA. Обратите внимание на то, что в качестве пароля здесь мы указываем знак тильды "~":
PsExec64.exe -i -u DOMAIN\gMSAAccount$ -p ~ cmd.exe
При выполнении этой команды откроется отдельное интерактивное окно интерпретатора командной строки **cmd.exe**. C помощью команды **whoami** проверяем то, что мы действительно находимся в контексте интересующей нас учётной записи. {{:microsoft-windows:windows-server-2012-r2:adds:how-to-use-managed-service-accounts-msa-and-group-managed-service-account-gmsa:pasted:20190606-211326.png}} Обратите внимание на то, что пока работает приложение, запущенное через PsExec, не стоит закрывать родительское окно командной строки, из которого был вызван PsExec. Так как на время сессии PsExec в системе регистрируется специальная служба **PSEXESVC**, и если некорректно завершить работу PsExec, эта служба не будет удалена из системы. Служба PSEXESVC удаляется автоматически только при штатном завершении сессии PsExec. Находясь в окружении пользователя MSA/gMSA, мы можем протестировать запуск и выполнение интересующих нас скриптов и приложений. ---- Проверено на следующих конфигурациях: ^ Версия ОС ^ | Windows Server 2012 R2 Standard EN (6.3.9600) | ---- {{:user:blogroot.png?50&nolink |}} Автор первичной редакции:\\ [[user:blogroot|Алексей Максимов]] \\ Время публикации: 06.06.2019 20:49 {{tag>"Windows Server" "Windows Server 2012 R2" ADDS "Active Directory" MSA gMSA "Managed Service Account" "Group Managed Service Account" Sysinternals PsExec Run-As}} ~~DISCUSSION~~