我想在登錄檔 HKEY_CLASSES_ROOT\ms-msdt\shell\open\command 中的(預設值)改成"%SystemRoot%\system32\msdt.exe" %1
這個值
我該怎麼做?
這是最近微軟漏洞的緩解措施,雖然用匯出匯入reg可達成目的,但我想知道用 reg add 時該怎麼做。
維基百科在英文版有提到REG檔撰寫的時候,登入值特殊字元的處理:
String values do not require a (see example), but backslashes ('') need to be written as a double-backslash ('\'), and quotes ('"') as backslash-quote ('"').
資料遇到反斜線(\
)要用雙反斜線(\\
)表示,遇到雙引號(“
)需要用跳脫字元反斜線雙引號(\”
)表示。
感謝你的回覆
我之前也找過文有提到用"表示跳脫字元,但一直失敗。
剛剛重做後發現,同樣的指令在 Windows 11 "傳統命令字元"底下跟"Windows 終端機"底下執行的結果不一樣。
改成用"傳統命令字元"執行就正常了。
看起來是powershell會把"當特殊字元,所以\可以跳脫REG指令裡的"但對powershell不能跳脫。
這時候我通常會直接把外層的雙引號換成單引號,這樣單引號內的東西對powershell來說就會都當作字串了,然後一樣加\,是讓reg指令知道"要跳脫。
REG ADD "HKEY_CURRENT_USER\Control Panel\Desktop\Test1" /ve /d '\"%SystemRoot%\system32\msdt.exe\" %1'