Я пытаюсь настроить процесс, чтобы наша группа поддержки (не являющаяся администраторами) имела доступ к удаленному включению или отключению группы правил брандмауэра 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 для (en | dis) настройки правил брандмауэра ...

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, Enable-NetFirewallRule

+ PSComputerName: ipAddress

Я могу получить список правил, используя ...

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

Поэтому я понимаю, что (en | dis) правила брандмауэра могут выполняться только членами локальной группы администраторов удаленного сервера.

Если мои предположения верны, возможно ли разрешить доступ группы без прав администратора для изменения брандмауэра? Если это так, любые инструкции или ссылки будут с благодарностью!

1 ответ1

0

Это граница безопасности Windows, а не проблема PowerShell. Так что это не простой скрипт PowerShell. Это конфигурация среды и политики.

Вам необходимо предоставить необходимые разрешения для использования или учетной записи, которой вы управляете, чтобы выполнить эти настройки.

Другой вариант - использовать PowerShell JEA (достаточно администрирования) и ограниченные конечные точки.

Использование JEA

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

Инфраструктура Just Enough Administration (JEA): Введение

Just Enough Administration (JEA) предоставляет платформу RBAC через Windows PowerShell. Это позволяет определенным пользователям выполнять определенные административные задачи на серверах без предоставления им прав администратора. Это позволяет вам заполнить пробелы между вашими существующими решениями RBAC

JEA Helper Tool 2.0

Этот сценарий предоставляет графический помощник для нескольких функций Just Enough Administration (JEA), для Windows Management Frameworek (WMF) 5.0 и Windows Server 2016 Technical Preview 4 (TP4).

PowerShell: внедрение простого администрирования (JEA), шаг за шагом

Используйте PowerShell достаточно для администрирования вашей службы поддержки

С JEA вы даете своим пользователям возможность выполнять определенные задачи через PowerShell, не предоставляя им повышенных прав. Вы можете управлять доступными командами и параметрами, проверять входные данные для указанных параметров и иметь полные возможности аудита с помощью расшифровки стенограммы, ведения журнала модулей и глубокой регистрации блоков сценариев.

Введение в конечные точки PowerShell

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .