Powershell Windows Server 2019
Всем привет! Столкнулся с проблемой, есть скрипт на powershell, который запускает синхронизацию пользователей ad c Google. Сам скрипт брался из доков гугла. Когда запускаешь вручную, все отрабатывает, через планировщик пишет что отработал, но результата нет. Делал без помощи ps, напрямую через приложение GCDS также отрабатывает, но нет результата. Пользователь от которого задача добавлен в Logon as a batch job. Задача отрабатывает, если запускать когда пользовательзалогинен - отрабатывает, когда ставишь галочку независимо залогинен или нет, не отрабатывает. Запуск скрипта на контроллере домена. Возможно что то не сделал/разрешил?
UPD: Сам скрипт взят отсюда: https://cloud.google.com/architecture/identity/federating-gc...
В планировщике помимо скрипта используются аргументы.
К примеру вот такая строка выполняется в PS: powershell.exe -ExecutionPolicy Bypass -file C:\ProgramData\gcds\sync.ps1 -config C:\ProgramData\gcds\config.xml -gcdsInstallationDir 'C:\Program Files\Google Cloud Directory Sync'
и такая строка также выполняется
powershell -command "& {C:\ProgramData\gcds\sync.ps1 -config C:\ProgramData\gcds\config.xml -gcdsInstallationDir 'C:\Program Files\Google Cloud Directory Sync'}"
Но если засунуть все в планировщик и выбрать опцию Run whether user is logged on or not не выполняется (хотя учетной записи дано право на вход в качестве пакетного задания).
В общем разобрался. Дело не в скрипте, а под каким пользователем его запускать и под каким пользователем настраивали саму программу (GCDS). Если программа настраивалась под одним пользователем, то задачу надо запускать под ним же, так как там ключи синхронизации прописаны в конфиг файле, которые также прописываются в реестре, и если их нет у того пользователя под которым запускается скрипт, то сама синхронизация не происходит, хотя скрипт отрабатывает. Всем спасибо за советы.