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.