Политика удаленного подписания Powershell не работает с заданием агента SQL, но работает, если она запускается «вручную» - PullRequest
0 голосов
/ 17 января 2012

У меня есть задание SQL 2008, которое выполняет резервное копирование базы данных с помощью сценария Powershell.Каждый шаг в задании SQL имеет тип «Операционная система (CmdExec)».Каждый шаг запускает скрипт powershell, который выполняет резервное копирование SQL и другие вещи.Этот сценарий находится на удаленном сервере, поэтому, если нам нужно внести изменения, нам нужно будет сделать их только один раз.

Если я установлю политику выполнения Powershell на «Обход», задание SQL будет работать.Но если я установлю его на «удаленную подпись», произойдет сбой, сказав, что политика выполнения не установлена ​​правильно.Однако, если я запускаю скрипт из окна CMD, он работает правильно.Сервер является 64-битным, поэтому я убедился, что для 32-битных и 64-битных оболочек их политика выполнения установлена ​​на «remotesigned».И у меня есть путь UNC удаленного сервера, установленный как надежный сайт интрасети в IE (обнаружил, что Powershell обрабатывает локальные пути UNC как пути http, если это не задано в IE).

Как я уже сказал, он работает правильноЯ вручную отключаюсь, если выключено из окна CMD с политикой выполнения, установленной на удаленную подпись, и это работает, если задание SQL отключается, если отключено, если политика выполнения установлена ​​на обход.Сбой возможен только в том случае, если он запускается из SQL, а политика выполнения установлена ​​на удаленную подпись.

Он работает уже год без каких-либо проблем с политикой выполнения Powershell, установленной на обход, но мне говорятустановите эту политику выполнения на remotesigned сейчас.Держать его в обходе больше не вариант.

Есть мысли?

Ответы [ 2 ]

0 голосов
/ 17 января 2012

Чтобы заставить некоторые устаревшие приложения играть с Powershell, я пишу небольшие «загрузочные» скрипты .bat, которые просто содержат что-то вроде powershell.exe C:\Scripts\MyScript.ps1

Не творческий, элегантный или «решающий проблему»."решение любым способом, но если оно работает из CMD, вы можете попробовать это просто, чтобы оно заработало как можно скорее.

0 голосов
/ 17 января 2012

Похоже, учетные данные, под которыми запускается задание, отличаются от ваших учетных данных.

Возможно, вам придется изменить разрешения для пользователя задания агента, чтобы сценарий powershell работал должным образом.

...