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"}