我正在尝试自动为 Windows 设置 Chef。所以我.bat
按照这:
call winrm quickconfig -q
call winrm set winrm/config/winrs @{MaxMemoryPerShellMB="300"}
call winrm set winrm/config @{MaxTimeoutms="1800000"}
call winrm set winrm/config/service @{AllowUnencrypted="true"}
call winrm set winrm/config/service/auth @{Basic="true"}
call netsh advfirewall firewall set rule name="Windows Remote Management (HTTP-In)" profile=public protocol=tcp localport=5985 remoteip=localsubnet new remoteip=any
所以我将其保存winrm.bat
并运行。但控制台一直打印:
C:\Users\Administrator\Desktop>winrm quickconfig -q
如果call
从所有行中删除命令,结果是相同的。如果我删除第一行,call winrm quickconfig -q
结果是:
C:\Users\Administrator\Desktop>winrm set winrm/config/winrs @{MaxMemoryPerShellMB="300"}
我注意到它会一直打印这些行,而不是一行。但是当我打开控制台并手动逐个复制和粘贴命令时,一切正常。
出了什么问题?如何“启用”这些命令从.bat
文件运行?
Cmd 正在从 Windows Server 2008 x64 SP2 运行。系统刚刚安装。
答案1
如果您的批处理文件被调用winrm.bat
并且您调用(使用或不使用call
命令)winrm
...可能您的批处理文件正在调用他自己。
最简单的解决方案是更改批处理文件名