如何为 localhost 配置 winrs?

如何为 localhost 配置 winrs?

在本地主机上执行命令时,出现以下“访问被拒绝”错误

PS C:\Windows\System32> winrs -r:localhost dir


Winrs error:Access is denied. PS C:\Windows\System32>

以下是我的配置

PS C:\Windows\System32> winrm enumerate winrm/config/listener
Listener
    Address = *
    Transport = HTTP
    Port = 80
    Hostname
    Enabled = true
    URLPrefix = wsman
    CertificateThumbprint
    ListeningOn = 127.0.0.1, 192.168.1.3, ::1, 2001:0:4137:9e50:20d3:3b94:3f57:fefc, fe80::5efe:192.168.1.3%11, fe80::20
d3:3b94:3f57:fefc%12, fe80::adea:d512:c3d3:8b08%10

PS C:\Windows\System32> winrm get winrm/config
Config
    MaxEnvelopeSizekb = 150
    MaxTimeoutms = 60000
    MaxBatchItems = 20
    MaxProviderRequests = 25
    Client
        NetworkDelayms = 5000
        URLPrefix = wsman
        AllowUnencrypted = false
        Auth
            Basic = true
            Digest = true
            Kerberos = true
            Negotiate = true
            Certificate = true
        DefaultPorts
            HTTP = 80
            HTTPS = 443
        TrustedHosts = *
    Service
        RootSDDL = O:NSG:BAD:P(A;;GA;;;BA)(A;;GR;;;ER)S:P(AU;FA;GA;;;WD)(AU;SA;GWGX;;;WD)
        MaxConcurrentOperations = 100
        EnumerationTimeoutms = 60000
        MaxConnections = 25
        AllowUnencrypted = false
        Auth
            Basic = true
            Kerberos = true
            Negotiate = true
            Certificate = false
        DefaultPorts
            HTTP = 80
            HTTPS = 443
        IPv4Filter = *
        IPv6Filter = *
    Winrs
        AllowRemoteShellAccess = true
        IdleTimeout = 900000
        MaxConcurrentUsers = 5
        MaxShellRunTime = 2147483647
        MaxProcessesPerShell = 5
        MaxMemoryPerShellMB = 80
        MaxShellsPerUser = 2

我应该怎么做才能让它发挥作用?

我有 Windows Vist Starter Edition,我正在使用 PowerShell CTP 3

答案1

由于您运行的是 Vista Starter Edition,因此您的系统无法成为域的一部分。这对 WinRM(和 PowerShell Remoting)有影响 - 以下内容来自 Powershell 的内部帮助:

ps> get-help about_remote_faq | more

最后有以下说法:

我可以在单台计算机(不在域中)上测试远程处理吗?


是的。即使本地计算机不在域中,Windows PowerShell 远程处理也可用。您可以使用远程处理功能
连接到会话并在同一台计算机上创建会话。这些
功能的工作方式与连接到远程计算机时的工作方式相同。

要在工作组中的计算机上运行远程命令,请更改
计算机上的以下 Windows 设置。

-- Windows Vista:

Create the following registry entry, and then set its value to 1:
LocalAccountTokenFilterPolicy in
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System

You can use the following Windows PowerShell command to add this entry:

new-itemproperty `
-path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System `
-name LocalAccountTokenFilterPolicy -propertyType DWord -value 1

答案2

什么操作系统?什么版本的 WinRM?我看到默认端口是 80 和 443,这意味着您可能正在使用 WinRM 1.1 或 WinRM 2.0 CTP1 或 CTP2。

如果您使用的是 XP 并且启用了 IIS,则 WinRM 存在问题。我不确定这个问题是否已经修复。解决方法是简单地停止 IIS 服务,然后 WinRM 就会开始工作。更持久的解决方法是将 WinRM 服务器端口从 80 更改为其他端口。

编辑:好的,可能是在 RC 中端口从 80 和 443 更改了。CTP3 仍然使用这些公共端口。

相关内容