Я пытаюсь сделать php-скрипт для изменения паролей пользователей Active Directory, выполнив powershell. http://pastebin.com/XYvSFjPv — для тех, кто хочет посмотреть
Столкнулся с проблемой выхода из кавычек "
а также '
Моя цель — в полной мере использовать все символы (стандарт utf08), включая кавычки
как я прошел через многие сайты о том, как убежать и до сих пор не прийти к удовлетворительному результату.
Я хотел бы получить некоторую помощь в экранировании этих символов, если это вообще возможно, потому что я не нашел функции, позволяющей легко экранировать символы.
Я запускаю этот скрипт на сервере Windows 2008 с IIS 7, PHP 5.4 и Powershell v1.0
и путем наблюдения команды shell_exec()
отправляет в командную строку, которая, в свою очередь, запускает powershell (я не уверен, что мне нужно дважды бежать, чтобы сделать эту работу.)
И чтобы убедиться, что это ясно, я хотел бы избежать следующих символов '
а также "
для Powershell v1.0 с использованием shell_exec()
команда.
Самый простой способ передать сложные аргументы в Powershell — это использовать -EncodedCommand
переключатель. Требуется строка параметров в кодировке Base64. Для кавычек или любых других странных символов в этом отношении не требуется экранирования. Это было обсуждается в других сообщений. Php есть base64_encode()
функция, которая должна работать.
Других решений пока нет …