允许非管理员权限管理 Windows 防火墙

允许非管理员权限管理 Windows 防火墙

我正在尝试为我们的支持团队(非管理员)设置一个流程,以便可以远程启用或禁用一组 Windows 防火墙规则。

我做了以下操作以达到允许远程访问的目的......

Enable-PSRemoting -Force

winrm quickconfig

Set-Item -Path WSMan:\Localhost\Client\TrustedHosts -Value '$supteam' -Concatenate

New-NetFirewallRule -DisplayName <dispName> -Profile <profile> -Enabled True -Action Allow -RemoteAddress $supteam -Direction Inbound -LocalPort <winRMport> -Protocol TCP -Program System

运行命令时...

Invoke-Command -ComputerName <ipAddress> -ScriptBlock { netsh advfirewall firewall set rule group="<ruleGroupName>" new enable=<yes/no> } -Credential $creds

我得到以下输出...

请求的操作需要提升权限(以管理员身份运行)。

我运行上述命令的 PowerShell 会话以管理员身份打开(即标题栏显示“管理员:Windows PowerShell”)。目标服务器上的用户帐户控制 (UAC) 已关闭。

注意:我也尝试使用等效的 PowerShell 来(启用|禁用)防火墙规则...

Invoke-Command -ComputerName <ipAddress> -ScriptBlock { Get-NetFirewallRule -Group "<ruleGroupName>" | <Enable/Disable>-NetFirewallRule } -Credential $creds

并获得以下输出乘以 3(每个规则一个)...

拒绝访问。

+ CategoryInfo:PermissionDenied:(MSFT_NetFirewal ... ystemName =“”):root / standardcimv2 / MSFT_NetFirewallRule)[Enable-NetFirewallRule],CimException

+ FullyQualifiedErrorId:Windows 系统错误 5,启用 NetFirewallRule

+ PS计算机名称:ip地址

我可以使用以下方法获取规则列表......

Invoke-Command -ComputerName <ipAddress> -ScriptBlock { Get-NetFirewallRule -Group "<ruleGroupName>" } -Credential $creds

因此我认为,只有远程服务器的本地管理员组的成员才能启用|禁用防火墙规则。

如果我的假设正确,是否可以允许非管理员组访问修改防火墙?如果可以,任何说明或链接都将不胜感激!

答案1

这是 Windows 安全边界,而不是 PowerShell 问题。因此,这不是简单的 PowerShell 脚本。这是一个环境和策略配置。

您需要向您控制的使用或帐户授予所需的权限才能进行这些设置。

另一个选择是利用 PowerShell JEA(仅足够的管理)和受限端点。

使用 JEA

$nonAdminCred = Get-Credential
Enter-PSSession -ComputerName localhost -ConfigurationName JEAMaintenance -Credential $nonAdminCred

足够的管理 (JEA) 基础设施:简介

Just Enough Administration (JEA) 通过 Windows PowerShell 提供 RBAC 平台。它允许特定用户在服务器上执行特定的管理任务,而无需授予他们管理员权限。这可让您填补现有 RBAC 解决方案之间的空白

JEA 帮助工具 2.0

该脚本为 Windows 管理框架 (WMF) 5.0 和 Windows Server 2016 技术预览版 4 (TP4) 的多个 Just Enough Administration (JEA) 功能提供了图形“帮助程序”

PowerShell:逐步实现恰好足够管理 (JEA)

利用 PowerShell 为您的帮助台提供足够的管理

使用 JEA,您可以授权用户通过 PowerShell 执行特定任务,而无需向他们提供提升的权限。您可以控制可用的命令和参数,验证指定参数的输入,并通过过肩记录、模块日志记录和深度脚本块日志记录获得完整的审核功能。

PowerShell 端点简介

相关内容