Powershellスクリプトでは、 "rmtshare.exe"を使用して共有レベルのアクセス権に関する情報を取得します。 「rmtshare.exe」は、以下のコマンドを使用してCMDの環境下で完全に実行することができます:CMDを実行するpowershellスクリプトでスペースとアンパサンドを同時にエスケープする方法
rmtshare.exe \\fs-sw-206\"C&C FQT"
をしかし、私はPowerShellの環境にそれを持って来るとき。私はスペースとアンパサンドをエスケープする方法を理解できません。上記のスクリプトは、CMDからのエラーメッセージを表示します
$rmtShare = "C:\rmtshare.exe"
$ServerName = "fs-sw-206"
$ShareName = "C&C FQT"
Invoke-Expression ($rmtShare + " " + "\\" + $ServerName + "\" + $ShareName)
が、それは「共有名またはパスにスペースが含まれている場合、それは引用符で囲む必要があります」と述べた。ここで私はそれが動作していないされ、これまでにしようとしているものです。私はこれまで、最後の行に変更した場合 :
Invoke-Expression ($rmtShare + " " + "\\" + $ServerName + "\" + "'"+'"'+"'" + $ShareName +"'"+'"'+"'")
エラーメッセージがPowerShellの自体からだったが、それは「アンパサンド(&)文字が許可されていません」と述べました。注:アンパサンドがない場合、動作します。だから、私は同時に両方の文字をエスケープする必要があるので、私は立ち往生しています。
解決策をご提供ください。
rmtshare.exeをダウンロードして自分自身をテストする必要があるかもしれません。ダウンロードサイト: - エスケープスペースやアンパサンド、他の解決策があるはずCMD
$s = " "
$q = '"'
$Verbatim = '--%'
$rmtShare = "C:\rmtshare.exe"
$ServerName = "fs-sw-206"
$ShareName = "C&C FQT"
Invoke-Expression ($rmtShare +$s+$Verbatim+$s+"\\"+$ServerName+"\"+$q+$ShareName+$q)
を実行しているのPowerShellスクリプトで同じ時間に(https://www.symantec.com/connect/downloads/remove-folder-share-remote-computer)
それ自身の後にすべてをエスケープする変数を組み込むことができます:http://ss64.com/ps/syntax-esc.html – 4c74356b41
ヒントありがとう!はい、それは - %を組み込んで動作しています。私は後で最終的な解決策を掲示します。 –