Windows to Windows であれば、PowerShell リモーティングで CUI でのリモート操作ができるようになります。
設定は簡単。PowerShell プロンプトを管理権限で起動して「Enable-PSRemoting
-Force」と入力するだけ。
PowerShell は、補完が効くので、TAB 補完すると入力はさらに簡単になります。
| enable-psr[TAB] -f[TAB] |
Windows Server 2012 以降なら、これだけでリモートから RDP 有効にしたり、サービス入れたり、ごにょごにょ出来るようになります。
Windows Server 2008 R2 以前なら、スクリプティング環境が OFF になっているので、更に「Set-ExecutionPolicy RemoteSigned -Force」します。
| PS C:\> Enable-PSRemoting -Force WinRM は既にこのコンピューター上で要求を受信するように設定されています。 WinRM はリモート管理用に更新されました。 ローカル ユーザーにリモートで管理権限を付与するよう LocalAccountTokenFilterPolicy を構成しました。 PS C:\> Set-ExecutionPolicy RemoteSigned -Force |
【参考】 PowerShell リモーティング
リモート コンピューターの対話操作(Enter-PSSession)
http://www.vwnet.jp/Windows/PowerShell/EnterPSSession.htm
リモート コンピューターのバッチ操作(Invoke-Command)
http://www.vwnet.jp/Windows/PowerShell/InvokeCommand.htm
リモート コンピューターのパラレル バッチ操作(Invoke-Command -AsJob)
http://www.vwnet.jp/Windows/PowerShell/Invoke-CommandAsJob.htm
さて、Linux からの接続を許可するには、更に BASIC 認証を許可する必要があります。
winrm get winrm/config/service で現状の設定を確認しましょう。
PS C:\> winrm get winrm/config/service
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 = false
Auth
Basic = false
Kerberos = true
Negotiate = true
Certificate = false
CredSSP = false
CbtHardeningLevel = Relaxed
DefaultPorts
HTTP = 5985
HTTPS = 5986
IPv4Filter = *
IPv6Filter = *
EnableCompatibilityHttpListener = false
EnableCompatibilityHttpsListener = false
CertificateThumbprint
AllowRemoteAccess = true
|
Auth の設定を見ると Basic = false となっているので、こいつを true にする必要があります。
見落としがちなのが AllowUnencrypted = false です。BASIC 認証なので、平文を許可しなくてはならないので、こいつも true にします。
| # BASIC 認証許可 winrm set winrm/config/service/auth '@{Basic="true"}' # 平文許可 winrm set winrm/config/service '@{AllowUnencrypted="true"}' |
実際に設定するとこんな感じ
PS C:\> winrm set winrm/config/service/auth '@{Basic="true"}'
Auth
Basic = true
Kerberos = true
Negotiate = true
Certificate = false
CredSSP = false
CbtHardeningLevel = Relaxed
PS C:\> 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
|
これで Linux からの接続許可が出来ました。Linux からは DefaultPorts の HTTP = 5985 で接続できます。
同僚は pywinrm で Windows Server の操作しているようです。
![]()
![]()
Copyright © MURA All rights reserved.