在我的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
感謝提示!是的,它的工作是與 - %合併。我會在稍後發佈最終解決方案。 –