【问题标题】:Netsh set rule depends on OS languageNetsh 设置规则取决于操作系统语言
【发布时间】:2018-08-20 10:39:44
【问题描述】:

我正在创建一个批处理脚本来运行多个命令以启用 winrm、更改网络类别等,我遇到了 netsh 命令的问题,特别是 netsh advfirewall firewall set rule group=”Network Discovery” new enable=yes

在研究并弄乱了 UAC 和注册表之后,我明白了我的问题:Windows 语言。

所以命令将规则设置为Network Discovery,但是在我的语言(顺便说一句)中,该组称为Deteção de Rede,因此使脚本无法在具有不同语言的多台 Windows 机器上运行,从而使用户手动启用网络共享。

我的问题是:是否有全局方式调用Network Discovery 组?还是创建一个链接到它的新组?

顺便说一句,这是我的脚本:

@ECHO ON
REM Run as admin
powershell.exe /c Get-NetConnectionProfile;
powershell.exe /c Set-NetConnectionProfile -NetworkCategory Private;
powershell.exe /c netsh advfirewall firewall set rule group=”Deteção de Rede” new enable=yes
cmd.exe /c winrm quickconfig -q
cmd.exe /c winrm set winrm/config/service @{AllowUnencrypted="true"}
cmd.exe /c winrm set winrm/config/service/auth @{Basic="true"}

@ECHO Done.

【问题讨论】:

  • 是否有另一个命令可以列出组? netsh firewall dump 在你的机器上生产什么?
  • 它什么也没产生。我现在正在尝试生成一个循环来输出并将 LCID 保存为变量,以便在 if 条件下使用它,并以正确的语言对组使用命令
  • 感谢最后一个链接。现在我只需要找到FirewallAPI 的附加即可启用网络共享

标签: windows powershell networking cmd


【解决方案1】:

感谢@lit,我找到了一种为组设置规则的方法。 使用命令powershell.exe /c netsh advfirewall firewall set rule group="@FirewallAPI.dll,-32752" new enable=Yes 启用网络共享和powershell.exe /c netsh advfirewall firewall set rule group="@FirewallAPI.dll,-28502" new enable=Yes 启用文件和打印共享 (如果您想使用它来定位 Windows 机器,您可能需要同时激活它们)现在我可以将我的 ansible playbook 运行到 Windows

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-10
    相关资源
    最近更新 更多