我们使用 Windows 操作系统,但没有使用内置的本机方式连接远程机器,而是安装了 tectia ssh。
因此,如果我想在远程机器上运行命令,我必须打开 cmd 并执行
sshg3 server02
我通过 ssh 连接到计算机。会话连接后,我可以将命令本地输入到 cmd 中,它将在我连接的机器上执行。
好吧,有一个问题。我想让它变成脚本。对于简单的命令,我只需要
sshg3 server05 "net user acc /active:yes"
但我经常运行的一个命令是
reg add "hklm\software\microsoft\windows nt\currentversion\winlogon" /v AutoAdminLogon /d 1 /f
当我尝试sshg3 server02 "reg add "hklm\software\microsoft\windows nt\currentversion\winlogon" /v AutoAdminLogon /d 1 /f "
这样做时,它总是返回“无效语法,请参阅 reg add /? 了解更多信息”
因为它没有转义引号,所以它认为reg add
这是唯一引用的东西。
我尝试使用反引号,也尝试使用 ^ 来转义引号。无法弄清楚如何转义这里的反引号,因为它一直显示 2 个而不是 1 个,所以我改用 (反引号)
sshg3 server02 "reg add ^"hklm\software\microsoft\windows nt\currentversion\winlogon^" /v AutoAdminLogon /d 1 /f"
sshg3 server02 "reg add (backtick)"hklm\software\microsoft\windows nt\currentversion\winlogon(backtick)" /v AutoAdminLogon /d 1 /f"
两个命令都返回相同的无效语法
答案1
找到解决方案。
必须使用双引号将注册表项添加部分引起来。