Você está ativando uma regra predefinida e acredito que a regra predefinida tenha Profile=any
nela.
Tente isto primeiro:
netsh advfirewall firewall set rule group="File and Printer Sharing" new profile=private
Sei que o seguinte cmd pode ativar a regra de firewall de compartilhamento de arquivos e impressão:
netsh advfirewall firewall set rule group="File and Printer Sharing" new enable=yes
Mas ativa o compartilhamento de arquivos e impressão para todos os perfis.
Gostaria de ativá-lo somente para perfil privado, ou seja, quando os computadores / laptops Windows estiverem conectados à rede doméstica ou de trabalho. Eu particularmente tento evitar ligá-lo para laptops conectados à rede pública. Idealmente, a descoberta de rede deve ser desativada para a rede pública.
Eu tentei
netsh advfirewall firewall set rule group=”File and Printer Sharing” profile=private new enable=Yes
e a opção "perfil" é rejeitada. Então, como posso aplicar a regra de firewall seletivamente?
muitos thx para qualquer entrada ..
netsh advfirewall firewall set rule name="File and Printer Sharing (SMB-In)" dir=in profile=public|private|domain new enable=Yes|No
Para definir três perfis juntos ao mesmo tempo, use :
netsh advfirewall firewall set rule name="File and Printer Sharing (SMB-In)" dir=in new enable=Yes
O nome da regra deve ser alterado no seu idioma local, por exemplo:
netsh advfirewall firewall set rule name="檔案及印表機共用 (SMB-In)" dir=in profile=private new enable=Yes
Não se esqueça de administrar como administrador.
Circulando pelo assunto, há casos raros quando usar nomes de idiomas locais não funciona, por exemplo. Polonês Udostępnianie plików i drukarek (SMB — ruch przychodzący)
= File and Printer Sharing (SMB-In)
. Acredito que isso tenha algo a ver com o manuseio do UTF-8 no netsh, pois há relatos de que o uso do netsh para conectar-se a redes Wi-Fi denominadas UTF às vezes também não funciona.
Nesses casos, use o parâmetro "Nome" do PowerShell em Set-NetFirewallRule
e agnóstico quanto ao idioma (neste caso, FPS-SMB-In-TCP
). Use o comando Get-NetFirewallRule
para obter todos os nomes corretos para suas regras.
Digite isso em um prompt de powershell elevado:
Set-NetFirewallRule -DisplayGroup "File And Printer Sharing" -Enabled True -Profile Private
Funcionou para mim no Windows 10 1703
Tags windows-firewall