我找到了这个问题的答案,发现了这篇文章here
但是,我在插入一些php变量时无法得到建议工作,我传递的命令是:
$command = "powershell -command get-aduser -Filter {(givenname -Like '*".$username[0]."*') -And (surname -Like '*".$username[1]."*')} -Properties samaccountname | format-table samaccountname 2>&1";
我得到错误 string'' format-table'不被视为内部或外部命令, 可操作程序或批处理文件。 ' (长度= 101)
如何让它工作以便它使用变量AND让我将它传递给表?
答案 0 :(得分:3)
要测试它,您应该将该命令粘贴到Windows命令提示符中。
管道|
在它甚至到达PowerShell之前由命令解析器解释,因此管道被视为单独的可执行文件或要运行的命令之后无论如何。
您可以尝试引用整个命令字符串,但是您可能还需要经历痛苦以逃避任何嵌入的双引号"
。
但是最简单的事情就是逃离管道。 windows命令提示符的转义字符是插入符号^
:
$command = "powershell -command get-aduser -Filter {(givenname -Like '*".$username[0]."*') -And (surname -Like '*".$username[1]."*')} -Properties samaccountname ^| format-table samaccountname 2>&1";