0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Windowsファイアウォールをpowershellで無効にする

Last updated at Posted at 2020-09-21

はじめに

VMwareで構築したwindows Serverを別チームがOSをセットアップし、私のチームが引き継いでMWのインストールを行うという前提。
windowsファイアウォールの設定はデザインシートでは無効になっているはずが実際の設定は一部有効で払い出されていました。
もう一度OSチームに再設定してもらってもよかったんですが、調整も面倒くさいのでPowershellで一括で確認→設定をしました。
さらにリモートデスクトップで1台ずつ設定変更するのはめんどくさいので自席のPCから一括でできるようにしました。

1.環境

OS:Windows Server 2016
Domain:workgroup
powershellはSet-ExecutionPolicy RemoteSignedで実行可能な設定済み。

2.準備

まず、今回のpowershellの実行は管理者権限でpowershellを実行する必要があるため、以下のコマンドで起動しましょう。

powershell
Start-Process powershell.exe -Verb runas

次に、workgroup環境なのでTrustedHostsの登録を行います。まず、Windows Remote Management (WS-Management)を起動する必要があるため、以下のコマンドを実行。

powershell
PS C:\windows\system32> winrm quickconfig
WinRM はこのコンピューター上で要求を受信するように設定されていません。
次の変更を行う必要があります:

WinRM サービスを開始します。
WinRM サービスの種類を遅延自動開始に設定します。

変更しますか [y/n]? y

WinRM は要求を受信するように更新されました。

WinRM サービスの種類を正しく変更できました。
WinRM サービスが開始されました。

次に以下のコマンドを実行。
"value"でpowershellでリモート接続したいホスト名 or IPアドレスを登録。今回は検証環境なので"*"で登録しました。

powershell
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(認証情報)を先に変数に入れておきます。

powershell
PS C:\windows\system32>  $cre =Get-Credential localhost\administrator

プロンプトが表示されるのでPWを入力します。
無題.png

こうすると変数の中にID/PW情報が入るので、いちいち入力する手間が省ける。

invokeを使って、リモートでファイアウォールの設定を確認

powershell
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がファイアウォール有効になってる(-_-メ)。じゃあ、有効にします。

powershell
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

次回はセキュアなファイルからパスワード情報を読みとって実行してみます('ω')ノ

0
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?