web-dev-qa-db-ja.com

ファイルとプリンターの共有コマンドラインを有効にする-profile = privateに対してのみ有効にする方法

次のコマンドでファイルとプリンターの共有ファイアウォールルールを有効にできることを知っています。

netsh advfirewall firewall set rule group="File and Printer Sharing" new enable=yes

ただし、すべてのプロファイルでファイルとプリンタの共有が有効になります。

プライベートプロファイル、つまりWindows PC /ラップトップが自宅または職場のネットワークに接続されている場合にのみ有効にします。私は特に、パブリックネットワークに接続されているラップトップではオンにしないようにしています。理想的には、パブリックネットワークではネットワーク検出をオフにする必要があります。

私はもう試した

netsh advfirewall firewall set rule group=”File and Printer Sharing” profile=private new enable=Yes

「プロファイル」スイッチは拒否されます。では、ファイアウォールルールを選択的に適用するにはどうすればよいですか?

任意の入力のための多くのthx。

3
user1866880

プリセットルールをアクティブ化しています。プリセットルールにはProfile=any 初期化。

まずこれを試してください:

netsh advfirewall firewall set rule group="File and Printer Sharing" new profile=private
2
Rod MacPherson
netsh advfirewall firewall set rule name="File and Printer Sharing (SMB-In)" dir=in profile=public|private|domain new enable=Yes|No

3つのプロファイルを同時に設定するには、以下を使用します。

netsh advfirewall firewall set rule name="File and Printer Sharing (SMB-In)" dir=in new enable=Yes

ルール名はローカル言語で変更する必要があります。次に例を示します。

netsh advfirewall firewall set rule name="檔案及印表機共用 (SMB-In)" dir=in profile=private new enable=Yes

管理者として実行することを忘れないでください。

5
Mulder

サブジェクトを巡って、ローカル言語名を使用しても機能しないことがまれにあります。ポーランド語Udostępnianie plików i drukarek (SMB — ruch przychodzący) = File and Printer Sharing (SMB-In)。これはnetshでのUTF-8処理と関係があると思います。UTF名のwifiネットワークへの接続にnetshを使用しても動作しない場合があるという報告があります。

そのような場合は、PowerShellのSet-NetFirewallRuleおよび言語に依存しない "Name"パラメータ(この場合はFPS-SMB-In-TCP)。使用する Get-NetFirewallRuleコマンドを使用して、ルールのすべての正しい名前を取得します。

1
Matias

@ Mulder's answer に基づいて構築し、プライベートモードで有効にするには、「セキュリティが強化されたWindows Defender Firewall」の各ルールに対して具体的に設定する必要があります。

セキュリティが強化されたWindows Defenderファイアウォールを実行するには

& "C:\WINDOWS\system32\mmc.exe" "C:\WINDOWS\system32\wf.msc" 

プライベートネットワークでのみファイル/印刷へのアクセスを許可するには

管理PowerShellウィンドウで次のコマンドを実行します。

# Allow access to administrative shares through firewall [Ref: https://serverfault.com/a/968310/336668]

$ruleDisplayNames = "File and Printer Sharing (Echo Request - ICMPv4-In)", `
  "File and Printer Sharing (Echo Request - ICMPv6-In)",  `
  "File and Printer Sharing (LLMNR-UDP-In)",  `
  "File and Printer Sharing (NB-Datagram-In)",  `
  "File and Printer Sharing (NB-Name-In)",  `
  "File and Printer Sharing (SMB-In)",  `
  "File and Printer Sharing (Spooler Service - RPC)",  `
  "File and Printer Sharing (Spooler Service - RPC-EPMAP)", `
  "File and Printer Sharing (NB-Session-In)"

$rules = Get-NetFirewallRule | Where {$ruleDisplayNames -contains $_.DisplayName -and $_.Profile -ne "Domain"} 

# The default rules have the non-Domain rule apply for both Public and
#  Private. This updates the rule to be Private only
$rules | Set-NetFirewallRule -Profile Private

# Enable the rule -- i.e. grant the eexception (allow through firewall)
$rules | Enable-NetFirewallRule  
1
CJBS

パーティーには遅れますが、Powershellを使用して、プライベートネットワークでファイルとプリンターを共有するためのファイアウォールルールを有効または無効にする方法はこれです。

Get-NetFirewallRule -DisplayGroup "File and Printer Sharing" -Direction In | where Profile -CLike "*Private*" | Enable-NetFirewallRule

Get-NetFirewallRule -DisplayGroup "File and Printer Sharing" -Direction In | where Profile -CLike "*Private*" | Disable-NetFirewallRule

コマンドには管理者権限が必要です。

これらのコマンドは、ファイルとプリンターの共有表示グループの受信ファイアウォールルールを取得し(他の注記によると、これはご使用の言語にローカライズされる場合があります)、プライベートプロファイルに一致するものでフィルターします(必要に応じて、これをパブリックまたはドメインに変更できます)代わりにこれらのルールを変更してください)、それらを有効または無効にします。

0
Polynomial

これを管理者特権のPowerShellプロンプトに入力します。

Set-NetFirewallRule -DisplayGroup "File And Printer Sharing" -Enabled True -Profile Private

Windows 10 1703で動作しました

0
Anthony Hocquet