Удаленное выполнение Powershell из PHP (локальный Exchange): доступ запрещен

У меня есть сценарий PowerShell, создающий почтовый ящик пользователя, вызываемый PHP, работающий на сервере IIS 10.

Дело в том, что когда я запускаю этот скрипт с веб-сервера в PowerShell, он работает, но когда я запускаю его с PHP, я получаю отказ в доступе.

Connecting to remote server server.domain.local failed with the following error message : Access is denied. For more information, see the about_Remote_Troubleshooting Help topic. At C:\Scripts\AD_CreateMailbox.ps1:46 char:34 + ... sessionEX = New-PSSession -sessionOption $sessionOption -Configuratio ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [New-PSSession], PSRemotin gTransportException + FullyQualifiedErrorId : AccessDenied,PSSessionOpenFailed

Что я сделал:

  • Включить Remote Powershell на сервере обмена
  • Разрешить веб-сервер в доверенных хостах WinRM Exchange.
  • Запустите веб-сервер с пользователем ограниченного домена с соответствующими правами для создания почтового ящика.
  • Разрешить аутентификацию Kerberos на сервере Exchange

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

Есть ли у вас какие-нибудь советы по этому поводу или, возможно, кто-нибудь когда-нибудь делал это?

Спасибо :)

Все, что работает в вашем пользовательском сеансе, может просто сломаться при переключении на системный сеанс/IIS, docs.lextudio.com/blog/… Поскольку PHP нелегко раскрыть вам подражание и теперь даже не поддерживается Microsoft , вы, вероятно, столкнетесь с другими проблемами.

Lex Li 09.04.2024 10:08

Как сказал Лекс Ли, Microsoft больше не поддерживает PHP в Windows/IIS, вы можете переключиться на хостинг Linux.

YurongDai 09.04.2024 11:13

Да, возможно, но это вряд ли решит мою проблему. Скрипты PowerShell для AD работают на одном и том же сервере, поэтому моя проблема связана с Exchange.

Ben74 09.04.2024 16:49
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
3
87
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Выяснилось после мониторинга с обеих сторон (веб-сервера и Exchange) после прочтения этого поста: https://codermike.blogspot.com/2016/06/new-pssession-access-denied.html

Оказалось, что проблема связана с веб-сервером и правом IIS на запись в реестре.

Ключ, к которому IUSR должен иметь доступ на запись: HKEY_USERS.DEFAULT\Software\Microsoft\Windows\CurrentVersion\WSMAN\Client\ConnectionCookies.

Оказалось, что этот ключ отсутствовал на моем веб-сервере, поэтому я создал его и разрешил IUSR писать в него.

Другие вопросы по теме