5

我在 PowerShell 中运行以下命令:

PS C:\Users\adminaccount> winrm s winrm/config/service @{AllowUnencrypted="true";
MaxConcurrentOperationsPerUser="4294967295"}
Error: Invalid use of command line. Type "winrm -?" for help.

如您所见,这给了我一个错误。但是 cmd.exe 中的相同命令可以正常工作:

C:\Users\adminaccount>winrm s winrm/config/service @{AllowUnencrypted="true";
MaxConcurrentOperationsPerUser="4294967295"}
Service
...

那么,我应该了解哪些关于 PowerShell 语法的知识才能让它在那里工作呢?

4

3 回答 3

6

@{}在 PowerShell 中定义一个哈希表,但winrm需要一个字符串参数。如果您想直接在 PowerShell 中运行命令,请将该参数放在引号中:

winrm s winrm/config/service '@{AllowUnencrypted="true"; MaxConcurrentOperationsPerUser="4294967295"}'

此外,您需要管理员权限才能使其正常工作。

于 2013-09-10T17:22:50.720 回答
2

或者使用--%让 PowerShell 停止解析参数的特殊参数。

winrm --% s winrm/config/service @{AllowUnencrypted="true";MaxConcurrentOperationsPerUser="4294967295"}
于 2013-09-10T17:33:18.240 回答
1

您可以在命令前加上 cmd /c 并像这样引用它:

cmd /c "winrm s winrm/config/service @{AllowUnencrypted=`"true`";
MaxConcurrentOperationsPerUser=`"4294967295`"}" 

PowerShell 将执行系统中存在的可执行文件。

于 2013-09-10T14:17:19.823 回答