iT邦幫忙

0

reg add 怎麼加入雙引號

  • 分享至 

  • xImage

我想在登錄檔 HKEY_CLASSES_ROOT\ms-msdt\shell\open\command 中的(預設值)改成"%SystemRoot%\system32\msdt.exe" %1這個值
我該怎麼做?

這是最近微軟漏洞的緩解措施,雖然用匯出匯入reg可達成目的,但我想知道用 reg add 時該怎麼做。

canrong iT邦新手 2 級 ‧ 2022-06-12 10:33:37 檢舉
\"
setsuna iT邦新手 2 級 ‧ 2022-06-12 20:23:09 檢舉
感謝你的回覆
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
Zero皇
iT邦研究生 2 級 ‧ 2022-06-12 19:38:27
最佳解答

維基百科在英文版有提到REG檔撰寫的時候,登入值特殊字元的處理:

String values do not require a (see example), but backslashes ('') need to be written as a double-backslash ('\'), and quotes ('"') as backslash-quote ('"').

資料遇到反斜線(\)要用雙反斜線(\\)表示,遇到雙引號()需要用跳脫字元反斜線雙引號(\”)表示。

setsuna iT邦新手 2 級 ‧ 2022-06-12 20:23:01 檢舉

感謝你的回覆
我之前也找過文有提到用"表示跳脫字元,但一直失敗。
剛剛重做後發現,同樣的指令在 Windows 11 "傳統命令字元"底下跟"Windows 終端機"底下執行的結果不一樣。
改成用"傳統命令字元"執行就正常了。
https://ithelp.ithome.com.tw/upload/images/20220612/201070810dNn9yCdNq.png
https://ithelp.ithome.com.tw/upload/images/20220612/201070816cDbA4FvMZ.png

Zero皇 iT邦研究生 2 級 ‧ 2022-06-13 08:57:10 檢舉

看起來是powershell會把"當特殊字元,所以\可以跳脫REG指令裡的"但對powershell不能跳脫。
這時候我通常會直接把外層的雙引號換成單引號,這樣單引號內的東西對powershell來說就會都當作字串了,然後一樣加\,是讓reg指令知道"要跳脫。
https://ithelp.ithome.com.tw/upload/images/20220613/20140925SNVePxV3AZ.png

REG ADD "HKEY_CURRENT_USER\Control Panel\Desktop\Test1" /ve /d '\"%SystemRoot%\system32\msdt.exe\" %1'

我要發表回答

立即登入回答