2015-08-13 3 views
-2

У меня есть сценарий в моем домене, хранящийся на сервере Active Directory. каждая машина в домене имеет задачу, которая при запуске вызывает запуск этого сценария.Скрипт Powershell на удаленном компьютере не работает как запланированное задание

Выполнение задачи с сервера AD работает. Запуск задачи с другого компьютера не работает. Однако работает ли запущенная команда из cmd вручную на удаленном компьютере?

Может ли кто-нибудь осветить этот свет. В принципе я это называю, как это так, что триггер настроен как ...

Действие: PowerShell.exe

Аргументы: -noprofile -ExecutionPolicy обходного -file «\\ <> NameOfADServer <> \ C $ \ Tasks \ script.ps1 "" Аргумент 1 "" Аргумент 2 "

+0

Имеет ли учетная запись, с которой вы работаете, имеет право «войти в систему как пакетное задание»? Если нет, у вас будут проблемы. – Sean

+0

Задача настраивается как пользователь SYSTEM, если это то, что вы имеете в виду? – Harvey

ответ

2

Работает как SYSTEM, вероятно, ваша проблема - у нее не будет доступа за пределы ПК, на котором он работает.

Когда вы запустите его вручную, у вас будет доступ.

2

Здесь есть несколько проблем.

  1. Задание выполняется как локальная учетная запись системы. Система вообще не имеет доступа к каким-либо сетевым ресурсам.
  2. Вы используете административный ресурс (\\<servername>\C$), чтобы поделиться сценарием. Только пользователи, имеющие доступ администратора к серверу, могут обращаться к административным ресурсам. Административные доли сильно ограничены дизайном, и вы не можете изменять доступ к ним.

Я предполагаю, что скрипт работает, когда вы запускаете его вручную, потому что он использует учетные данные текущего пользователя для доступа к сети, когда вы это делаете, но не цитируйте меня на этом.

Самое простое решение с наименьшим количеством изменений, чтобы сделать это:

  1. Создать группу в Active Directory. Добавьте учетные записи компьютеров или, желательно, группы с учетными записями компьютеров, которые вы хотите запустить сценарий для этой новой группы. Если вы действительно хотите, чтобы любая учетная запись SYSTEM на любом компьютере в домене могла запускать сценарий, вы можете добавить группу «Компьютеры домена» в группу.
  2. Создайте папку на сервере. Поместите скрипт в папку. Не помещайте ничего в эту папку, которую вы не хотите, чтобы ваши пользователи читали. Назначьте разрешение «Чтение» NTFS для группы, созданной выше, в папку.
  3. Делитесь папкой. Предоставьте группе, которой вы только что создали общий доступ к «Полный доступ». Если вы хотите, вы можете сделать его скрытой долей, добавив знак доллара в конец имени.
  4. Обновите свои запланированные задачи, чтобы использовать \\<servername>\<sharename>\script.ps1.

Это почти наверняка не лучший способ выполнить то, что вы на самом деле пытаетесь сделать, но это, вероятно, лучший способ использовать запланированные задачи, выполняющие сценарии на сетевом ресурсе с учетной записью SYSTEM.

Смежные вопросы