在我的Powershell脚本中,我使用“rmtshare.exe”来获取有关共享级别权限的信息。 “rmtshare.exe”可以在CMD环境下使用以下命令完美运行:如何在执行CMD的powershell脚本中同时转义空间和&符号
rmtshare.exe \\fs-sw-206\"C&C FQT"
但是,当我将它带入PowerShell环境时。我无法弄清楚如何逃避空间和&符。这里是我到目前为止已经试过它不工作:
$rmtShare = "C:\rmtshare.exe"
$ServerName = "fs-sw-206"
$ShareName = "C&C FQT"
Invoke-Expression ($rmtShare + " " + "\\" + $ServerName + "\" + $ShareName)
上面的脚本会给错误信息从CMD,它说:“如果一个共享名或路径包含空格,应当用引号括起来” 。 如果我改变了最后一行是:
Invoke-Expression ($rmtShare + " " + "\\" + $ServerName + "\" + "'"+'"'+"'" + $ShareName +"'"+'"'+"'")
错误消息是从Powershell的本身,它说:“与号(&)字符是不允许的”。注意:如果没有&符号,它将起作用。所以,现在我被卡住了,因为我需要同时逃脱两个角色。
请提供您的解决方案。
您可能需要下载rmtshare.exe才能自行测试。下载网站:(https://www.symantec.com/connect/downloads/remove-folder-share-remote-computer)
' - %'本身就会将所有内容都转义出来,您可以合并变量,请检查以下内容:http://ss64.com/ps/syntax-esc.html – 4c74356b41
感谢提示!是的,它的工作是与 - %合并。我会在稍后发布最终解决方案。 –