どうもミツシマです。
今回は、「ファイルとプリンターの共有」をコマンドにて有効化出来ないかを検証してみてました。
今回の検証環境は以下の通り
ActiveDirectory環境
DC:Windows Server2016
PC:Windows10 1809 (64bit)
今回の検証環境は以下の通り
ActiveDirectory環境
DC:Windows Server2016
PC:Windows10 1809 (64bit)
「ファイルとプリンターの共有」を有効にするためにはWindowsファイルウォールを有効化すればいいみたいです。
<必要なファイアウォール>
「セキュリティが強化されたWindowsファイアウォール」にてグループが「ファイルとプリンターの共有」となっているファイアウォールを有効にしてあげればいいみたいです。
設定値がわかったのでいつもどおりスクリプトを作成してみました。
Domain-EnableShareFileFireWall.ps1
今回もドメインプロファイルのみ変更しようと考えましたが、「ファイルとプリンターの共有 (LLMNR UDP 受信) 」と「ファイルとプリンターの共有 (LLMNR UDP 送信) 」の初期状態がすべてのプロファイル(Any)で適用されていたので、止む無くこちらは全プロファイルで有効化しました。
※実際にSMBプロトコルをやり取りするポートではないので、これだけ有効になっていてもいいのかな〜と個人的に妥協しました。。。。。
そして、ADのスタートアップスクリプトで設定した場合の時間を測定してみました。
変更が必要な場合は1分半、変更が不要の場合には20秒程で完了していました。
※あくまで目安なので実運用で試す場合には事前検証必須です!!
ちなみにすべてのプロファイルで有効化する場合は以下の通り。
いつもどおり最後はファイルのリンクを貼っておきます。
Domain-EnableShareFileFireWall.ps1
<必要なファイアウォール>
・ファイルとプリンターの共有 (NB セッション受信)
・ファイルとプリンターの共有 (NB-Session 送信)
・ファイルとプリンターの共有 (SMB 受信)
・ファイルとプリンターの共有 (SMB 送信)
・ファイルとプリンターの共有 (NB 名受信)
・ファイルとプリンターの共有 (NB 名送信)
・ファイルとプリンターの共有 (NB データグラム受信)
・ファイルとプリンターの共有 (NB データグラム送信)
・ファイルとプリンターの共有 (Spooler Service - RPC)
・ファイルとプリンターの共有 (スプーラー サービス - RPC-EPMAP)
・ファイルとプリンターの共有 (エコー要求 - ICMPv4 受信)
・ファイルとプリンターの共有 (Spooler Service - RPC)
・ファイルとプリンターの共有 (スプーラー サービス - RPC-EPMAP)
・ファイルとプリンターの共有 (エコー要求 - ICMPv4 受信)
・ファイルとプリンターの共有 (エコー要求 - ICMPv4 送信)
・ファイルとプリンターの共有 (エコー要求 - ICMPv6 受信)
・ファイルとプリンターの共有 (エコー要求 - ICMPv6 送信)
・ファイルとプリンターの共有 (LLMNR UDP 受信)・ファイルとプリンターの共有 (LLMNR UDP 送信)
「セキュリティが強化されたWindowsファイアウォール」にてグループが「ファイルとプリンターの共有」となっているファイアウォールを有効にしてあげればいいみたいです。
設定値がわかったのでいつもどおりスクリプトを作成してみました。
Domain-EnableShareFileFireWall.ps1
#ファイアウォールポリシーで「ネットワーク探索」(ドメインプロファイル)のみを取得
$NetDiscoveryRule = Get-NetFirewallRule | Where-Object {$_.DisplayGroup -eq "ファイルとプリンターの共有"}
#ルールを確認し該当のルールが無効であれば有効化する
foreach($Rule in $NetDiscoveryRule){
If (($Rule.Profile -like "*Domain*") -or ($Rule.Profile -eq "Any")){
$RuleStatus = $Rule.Enabled
If ($RuleStatus -eq "True"){
Write-Host $Rule.DisplayName'は有効です。'
#Set-NetFirewallRule -InputObject $Rule -Enabled False
}else{
Write-Host $Rule.DisplayName'は無効です。ファイアウォールを有効化します。'
Set-NetFirewallRule -InputObject $Rule -Enabled True
}
}
}
今回もドメインプロファイルのみ変更しようと考えましたが、「ファイルとプリンターの共有 (LLMNR UDP 受信) 」と「ファイルとプリンターの共有 (LLMNR UDP 送信) 」の初期状態がすべてのプロファイル(Any)で適用されていたので、止む無くこちらは全プロファイルで有効化しました。
※実際にSMBプロトコルをやり取りするポートではないので、これだけ有効になっていてもいいのかな〜と個人的に妥協しました。。。。。
そして、ADのスタートアップスクリプトで設定した場合の時間を測定してみました。
変更が必要な場合は1分半、変更が不要の場合には20秒程で完了していました。
※あくまで目安なので実運用で試す場合には事前検証必須です!!
ちなみにすべてのプロファイルで有効化する場合は以下の通り。
netsh advfirewall firewall set rule group="ファイルとプリンターの共有" new enable=Yes
いつもどおり最後はファイルのリンクを貼っておきます。
Domain-EnableShareFileFireWall.ps1
スポンサードリンク
コメント
コメント一覧 (2)
「(WIndows10)ファイルとプリンターの共有をコマンドにて有効にする方法」で
たどり着きました。
大変恐縮でご相談させて頂きたいのですが
「windows10pro」のみの「非AD環境」で
「特定のプロファイル(private) をプリンターの共有をコマンドにて有効」にする場合は
「 If (($Rule.Profile -like "*Domain*") -or ($Rule.Profile -eq "Any"))」のDomainの文字を
privateと変更し実行しましたら
「 If (($Rule.Profile -like "*private*") -or ($Rule.Profile -eq "Any"))」
プライベートプロファイルの「ファイルとプリンターの共有を有効」することは
可能でしょうか。何卒よろしくお願い致します。
ミツシマ
がしました
「Private」に変更することでプライベートプロファイルの「ファイルとプリンターの共有を有効」にすることが可能だと思われます。
ぜひ検証してみて下さい。
注意点としては、本スクリプトは管理者として実行しないとエラーになるかと思われますので、手動で実行する際にはご注意下さい。
管理者として実行が面倒な場合には、他の記事のスクリプトで使用している「管理者として再実行させる」部分を入れてみて下さい。
うまくいくといいですね!!!
ミツシマ
がしました