はじめに
VMwareで構築したwindows Serverを別チームがOSをセットアップし、私のチームが引き継いでMWのインストールを行うという前提。
windowsファイアウォールの設定はデザインシートでは無効になっているはずが実際の設定は一部有効で払い出されていました。
もう一度OSチームに再設定してもらってもよかったんですが、調整も面倒くさいのでPowershellで一括で確認→設定をしました。
さらにリモートデスクトップで1台ずつ設定変更するのはめんどくさいので自席のPCから一括でできるようにしました。
1.環境
OS:Windows Server 2016
Domain:workgroup
powershellはSet-ExecutionPolicy RemoteSignedで実行可能な設定済み。
2.準備
まず、今回のpowershellの実行は管理者権限でpowershellを実行する必要があるため、以下のコマンドで起動しましょう。
Start-Process powershell.exe -Verb runas
次に、workgroup環境なのでTrustedHostsの登録を行います。まず、Windows Remote Management (WS-Management)を起動する必要があるため、以下のコマンドを実行。
PS C:\windows\system32> winrm quickconfig
WinRM はこのコンピューター上で要求を受信するように設定されていません。
次の変更を行う必要があります:
WinRM サービスを開始します。
WinRM サービスの種類を遅延自動開始に設定します。
変更しますか [y/n]? y
WinRM は要求を受信するように更新されました。
WinRM サービスの種類を正しく変更できました。
WinRM サービスが開始されました。
次に以下のコマンドを実行。
"value"でpowershellでリモート接続したいホスト名 or IPアドレスを登録。今回は検証環境なので"*"で登録しました。
PS C:\windows\system32> Set-Item WSMan:\localhost\Client\TrustedHosts -value *
WinRM セキュリティの構成。
このコマンドは WinRM クライアントの TrustedHosts の一覧を変更します。TrustedHosts
の一覧内にあるコンピューターは認証されない可能性があります。クライアントはこれらのコンピューターに資格情報を送信する可
能性があります。この一覧を変更しますか?
[Y] はい(Y) [N] いいえ(N) [S] 中断(S) [?] ヘルプ (既定値は "Y"): y
3.自分のPCからpowershellで設定変更
invokeを使って自席から実行。まず、credential(認証情報)を先に変数に入れておきます。
PS C:\windows\system32> $cre =Get-Credential localhost\administrator
こうすると変数の中にID/PW情報が入るので、いちいち入力する手間が省ける。
invokeを使って、リモートでファイアウォールの設定を確認
↓
Invoke-Command 192.168.1.1 -credential localhost\administrator -scriptBlock {Get-NetFirewallProfile |select-object name,enabled}
name : Domain
Enabled : False
PSComputerName : 192.168.1.1
RunspaceId : 75f9bf5a-7ec7-4a68-a56d-ca5f7b7694b3
name : Private
Enabled : False
PSComputerName : 192.168.1.1
RunspaceId : 75f9bf5a-7ec7-4a68-a56d-ca5f7b7694b3
name : Public
Enabled : True ←★Trueなので有効
PSComputerName : 192.168.1.1
RunspaceId : 75f9bf5a-7ec7-4a68-a56d-ca5f7b7694b3
Publicがファイアウォール有効になってる(-_-メ)。じゃあ、有効にします。
Invoke-Command 192.168.1.1 -credential localhost\administrator -scriptBlock {Set-NetFirewallProfile -Enabled false; Get-NetFirewallProfile |select-object name,enabled}
name : Domain
Enabled : False
PSComputerName : 192.168.1.1
RunspaceId : 75f9bf5a-7ec7-4a68-a56d-ca5f7b7694b3
name : Private
Enabled : False
PSComputerName : 192.168.1.1
RunspaceId : 75f9bf5a-7ec7-4a68-a56d-ca5f7b7694b3
name : Public
Enabled : False ←★Falseなので無効
PSComputerName : 192.168.1.1
RunspaceId : 75f9bf5a-7ec7-4a68-a56d-ca5f7b7694b3
OK!
4.Credentailについて
検証環境はworkgroupで作ることが多く、Credentialをいちいちプロンプトで打つのがめんどい…。
なんとかファイルから読み取るようにしたい。ただセキュアにしたい…。
と思っていろいろ探してみたらよさげなサイトがありました。
↓
https://www.vwnet.jp/Windows/WS08R2/PSPassword/SecurePassword.htm
次回はセキュアなファイルからパスワード情報を読みとって実行してみます('ω')ノ