Назад | Перейти на главную страницу

Server 2012 GPO: сценарий PowerShell при запуске компьютера не запущен

У меня есть пара экземпляров Server 2012 на Amazon EC2, и я нахожусь в процессе настройки объектов групповой политики. Все настройки объектов групповой политики применяются нормально, за исключением того, что ни один из сценариев PowerShell, указанных при запуске компьютера, фактически не выполняется. Сценарии находятся в общем ресурсе UNC, к которому применены прошедшие проверку пользователи с полными разрешениями. Я предполагаю, что это, вероятно, как-то связано с политикой выполнения, но я не уверен, как автоматически ее обойти. я мог просто заходите в каждый экземпляр и обходите политику выполнения, но это явно не лучшая идея, плюс я в конечном итоге собираюсь подключить компьютеры с Windows 7, на которых будут выполняться те же сценарии.

Как я могу заставить скрипты запускаться? Поиск в Google не дал многого ...

Текущие разрешения

Поделиться - аутентифицированные пользователи (полная версия)

NTFS - Все (Полный); СОЗДАТЕЛЬ ВЛАДЕЛЬЦА (специальный); СИСТЕМА (Полная)

Поздний ответ, но ваша проблема, вероятно, связана с задержкой сценариев входа по умолчанию 2012 года. Попробуйте установить более низкую настройку:

Computer Configuration\Policies\Administrative Templates\System\Group Policy\Configure Logon Script Delay

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

  • Политика выполнения должна иметь удаленную подпись, и вы должны подписывать сценарии.
  • Политика исполнения должна быть неограниченной.
  • Скопируйте сценарий локально, после чего вы можете запустить его, если ваша политика выполнения - с удаленной подписью или без ограничений.
  • При вызове powershell.exe используйте -ExecutionPolicy параметр со значением Unrestricted

Если это компьютерная политика, аутентифицированные пользователи - это не то, что вам нужно. Вам нужно дать Domain Computers доступ для чтения.

Вместо этого вы можете хранить файлы с файлами GPO. когда вы войдете, чтобы вставить скрипт, вы должны увидеть кнопку «показать файлы». Щелкните по нему, чтобы открыть папку, в которой должны быть размещены сценарии. Попав в эту папку, вы можете просто нажать «Добавить» и выбрать файл.

В противном случае вы можете добавить Domain Computers с доступом для чтения, так как компьютеры будут аутентифицироваться по общему ресурсу при запуске, а не пользователи.

Это старая тема, но ответ, скорее всего, состоит в том, что в имени файла и / или пути сценария PowerShell в свойствах запуска объекта групповой политики есть ПРОБЕЛЫ. Чтобы исправить это, просто заключите в двойные кавычки полный путь к имени сценария PowerShell, которое не выполняется в свойствах запуска объекта групповой политики.

Запуск "Имя сценария" до: \\ SERVERNAME \ Scripts \ Install KBs \ Install KBs.ps1 Это не показывает последний прогон в результатах GPResults. EventLog не помогает, он показывает ErrorCode 0 ScriptElaspedTimeInSeconds 0. Однако в реестре в HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Group Policy \ State \ Machine \ Scripts \ Startup \ # \ #, где # - числа, он показывает реальный код ошибки 0xfffd0000 (4294770688). Это связано с тем, что сценарий не найден - из-за пробелов.

Запуск "Имя сценария" после: "\\ SERVERNAME \ Scripts \ Install KBs \ Install KBs.ps1" Теперь в GPResults последний запуск скрипта показывает, что он был запущен. В реестре в указанном выше разделе отображается ErrorCode 0x0, что нормально.

Это решенное и исправленное решение протестировано на Windows 7 Enterprise. Мне не нужно было изменять разрешения, но присутствовали АУТЕНТИЧНЫЕ ПОЛЬЗОВАТЕЛИ с разрешением на чтение, что позволяет объекту компьютера читать сценарий PowerShell.

Я столкнулся с той же проблемой. Когда я попытался запустить сценарий из папки \ domain.local \ netlogon, я получил сообщение об ошибке, что политика выполнения не позволяет запускать удаленные сценарии. Я побежал get-executionpolicy и он установлен на "Ограничено". Я побежал set-executionpolicy remotesigned но это не помогло, потому что оно не имеет цифровой подписи.

Я побежал get-help about_signing и он сообщает мне, что я должен подписать сценарий цифровым сертификатом из ЦС или самозаверяющим сертификатом. Много работы просто для написания сценария входа в Windows 7 PowerShell. Однако он без проблем работает в системах с более поздней версией Powershell (Server 2012 R2, Windows 7 с PS5). Теперь мне нужно выяснить, как установить WMF5.0 на каждую рабочую станцию ​​без WSUS или всосать его и подписать дурацкий скрипт.

Спасибо, Билл Гейтс ...