PHP to Powershell - Escaping


PHP to Powershell - Escaping

我正在尝试制作一个php脚本,通过执行powershell来更改Active Directory用户密码。http://pastebin.com/XYvSFjPv-对于那些希望查看的人

转义引号"'时遇到问题我的目标是充分利用所有字符(utf08标准),包括引号因为我已经浏览了许多关于如何逃跑的网站,但仍然没有得到令人满意的结果。如果可能的话,我想在转义这些字符方面得到一些帮助,因为我没有发现任何函数可以轻松地转义字符。

我在Windows 2008服务器上运行这个脚本,服务器上有IIS 7、PHP 5.4和Powershell v1.0

通过观察,命令shell_exec()发送到命令行,命令行依次启动powershell(我不确定是否必须双重转义才能使其工作。)

为了确保清楚,我想使用shell_exec()命令为Powershell v1.0转义以下字符'"

将复杂参数传递给Powershell的最简单方法是使用-EncodedCommand开关。它采用Base64编码的参数字符串。引号或任何其他奇怪的字符都不需要转义。这已经在其他帖子中讨论过了。Php有一个base64_encode()函数,应该可以工作。