Win10構成のwinrmとエラー処理

ParamikoはLinuxサーバーに接続されています。Windowsにリモート接続する場合
は、winrmを使用する必要があります。winRMサービスは、Windowsサーバー下のPowerShellリモート管理サービスです。
Pythonスクリプトは、winRMモジュールを接続してWindowsコマンドラインを操作します。
winrmサービスのステータスを確認してください。デフォルトでは開始されていません。

 winrm enumerate winrm/config/listener

winrmサービス開始

 winrm quickconfig

エラー:

PS C:\Windows\system32> winrm quickconfig
在此计算机上,WinRM 未设置为接收请求。
必须进行以下更改:

启动 WinRM 服务。
将 WinRM 服务类型设置为延迟的自动启动。

执行这些更改吗[y/n]? y

WinRM 已更新为接收请求。

成功更改 WinRM 服务类型。
已启动 WinRM 服务。
WSManFault
    Message
        ProviderFault
            WSManFault
                Message = 由于此计算机上的网络连接类型之一设置为公用,因此 WinRM 防火墙例外将不运行。 将网络连接类型更改为域或专用,然后再次尝试。

错误编号: -2144108183 0x80338169
由于此计算机上的网络连接类型之一设置为公用,因此 WinRM 防火墙例外将不运行。 将网络连接类型更改为域或专用,然后再次尝试。

ネットワークとインターネットの設定を開きます。
ここに画像の説明を挿入

接続プロパティをプライベートに変更します。
ここに画像の説明を挿入

エラーを再度実行します。

PS C:\Windows\system32> winrm quickconfig
已在此计算机上运行 WinRM 服务。
WinRM 没有设置成为了管理此计算机而允许对其进行远程访问。
必须进行以下更改:

启用 WinRM 防火墙异常。
配置 LocalAccountTokenFilterPolicy 以远程向本地用户授予管理权限。

ファイアウォールをオンにします。

 netsh advfirewall firewall set rule group="Windows 远程管理" new enable=yes

正常な操作:

已更新 3 规则。
确定。

再開する:

C:\Windows\system32> winrm quickconfig
已在此计算机上运行 WinRM 服务。
在此计算机上设置了 WinRM 以进行远程管理。

見る:

PS C:\Windows\system32> winrm enumerate winrm/config/listener
Listener
    Address = *
    Transport = HTTP
    Port = 5985
    Hostname
    Enabled = true
    URLPrefix = wsman
    CertificateThumbprint
    ListeningOn = 127.0.0.1, 192.168.64.84, ::1

winrmサービスの認証を構成する

winrm set winrm/config/service/auth    '@{Basic="true"}'
Auth
    Basic = true
    Kerberos = true
    Negotiate = true
    Certificate = false
    CredSSP = false
    CbtHardeningLevel = Relaxed```

非暗号化を許可するようにwinrmサービスの暗号化方式を構成します

winrm set winrm/config/service  @{AllowUnencrypted="true"}
PS C:\Windows\system32> winrm set winrm/config/service '@{AllowUnencrypted="true"}'
Service
    RootSDDL = O:NSG:BAD:P(A;;GA;;;BA)(A;;GR;;;IU)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;;;WD)
    MaxConcurrentOperations = 4294967295
    MaxConcurrentOperationsPerUser = 1500
    EnumerationTimeoutms = 240000
    MaxConnections = 300
    MaxPacketRetrievalTimeSeconds = 120
    AllowUnencrypted = true
    Auth
        Basic = true
        Kerberos = true
        Negotiate = true
        Certificate = false
        CredSSP = false
        CbtHardeningLevel = Relaxed
    DefaultPorts
        HTTP = 5985
        HTTPS = 5986
    IPv4Filter = *
    IPv6Filter = *
    EnableCompatibilityHttpListener = false
    EnableCompatibilityHttpsListener = false
    CertificateThumbprint
    AllowRemoteAccess = true

注:
1。winrmを使用してリモート接続する前に、制御側と制御側の両方を構成する必要があります。2。LANに
のみ使用され、2台のコンピューターがpingできる必要があります。3 。を
使用する必要があります。管理者がコマンドラインを開くと、権限が不十分になり、エラーが発生します

次のコマンドは使用していません
必要に応じて使用できます。1。グループあたり最大50インスタンスのレートでインスタンスを取得できます。

winrm set winrm/config @{
    
    MaxBatchItems="50"}

2.割り当てられた最大パケットサイズとタイムアウト設定を増やすことにより、パフォーマンスも向上させることができます

winrm set winrm/config @{
    
    MaxEnvelopeSizekb="150"}
winrm set winrm/config @{
    
    MaxTimeoutms ="60000"}

3.現在のWinRM構成設定を取得するには、次のコマンドを実行します

winrm g winrm/config

4.デフォルトでは、クライアントコンピューターはネットワークトラフィックの暗号化を必要とします。クライアントコンピューターが暗号化されていないトラフィックを要求できるようにするには、次のコマンドを実行します

winrm s winrm/config/Client @{
    
    AllowUnencrypted="true"}
 
TrustedHosts 是一个数组,用于指定可信的远程计算机的列表。同一工作组中的其他计算机或不同域中的计算机均应添加到此列表中。TrustedHosts 列表中的计算机未经过身份验证。

5.次のコマンドを実行して、TrustedHostsにすべてのコンピューターを含めます。

winrm s winrm/config/Client @{
    
    TrustedHosts="*"}

6.基本認証は、ユーザー名とパスワードがクリアテキストでサーバーまたはエージェントに送信されるスキームです。これは最も安全性の低い認証方法です。デフォルト値はTrueです。
次のコマンドを実行して、基本認証を使用するようにクライアントコンピューターを設定します

winrm s winrm/config/Client/Auth @{
    
    Basic="true"}

おすすめ

転載: blog.csdn.net/liulanba/article/details/115083014