KLASS
Moderator | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Создайте новый текстовый документ, вставьте в него нижеследующий код, сохраните документ и измените расширение файла на .ps1 (PowerShell). Код: function Export-NetshNetFirewallRule { [CmdletBinding()] Param( [Parameter(Mandatory=$true,ValueFromPipeline=$true)] [CimInstance[]] $Rule ) process { $Name = $($psitem.DisplayName) $Direction = $($psitem.Direction) -replace 'bound','' $Action = $psitem.Action $Profile = $psitem.Profile -replace ', ',',' $Program = ($psitem | Get-NetFirewallApplicationFilter).Program $Protocol = ($psitem | Get-NetFirewallPortFilter).Protocol $Remoteport = ($psitem | Get-NetFirewallPortFilter).RemotePort -join ',' $Localport = ($psitem | Get-NetFirewallPortFilter).LocalPort -join ',' $Remoteip = ($psitem | Get-NetFirewallAddressFilter).RemoteAddress -join ',' #netsh нужны двойные кавычки $Doublequote='#' $result = "netsh advfirewall firewall add rule name=#$Name# dir=$Direction action=$action profile=$Profile program=#$Program# protocol=$Protocol remoteport=$Remoteport localport=$Localport remoteip=$Remoteip" $netsh = $result -replace $Doublequote,'"' $netsh } } #Какие правила выделите в GUI-окне PowerShell, те команды добавления правил и будут экспортированы в консольное окно PowerShell. #Строка получает правила брандмауэра, отфильтрованные по заданным ключам (в данном примере ('*') означает все правила). Командлет Get-NetFirewallRule содержится в модуле NetSecurity начиная с Windows 8.1. Командлет Out-GridView -PassThru выводить GUI-окно с правилами брандмауэра. $rules = Get-NetFirewallRule -DisplayName '*' | Out-GridView -PassThru #Командлет Export-NetshFirewallRule берёт массив правил брандмауэра, выбранных в GUI-окне, и передаёт (экспортирует) их в текстовом формате для команды netsh в консольное окно PowerShell. $rules | Export-NetshNetFirewallRule | Для удобства запуска сценариев PowerShell выполните следующий reg-файл, который добавит пункты: Запуск от имени администратора и Запуск с обычными правами в контекстное меню файлов .ps1 (PowerShell). При этом если у вас запрещено выполнение сценариев в системе (по умолчанию), сценарии PowerShell будут выполняться. Код: Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell] [HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell\PowershellUser] "HasLUAShield"="" "Icon"="powershell.exe" "MUIVerb"="Запуск с обычными правами" [HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell\PowershellUser\command] @="powershell.exe -NoProfile -NoExit -ExecutionPolicy Bypass -File \"%1\"" [HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell\runas] "HasLUAShield"="" [HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell\runas\command] @="powershell.exe -NoProfile -NoExit -ExecutionPolicy Bypass -File \"%1\"" | Запускаем файл сценария от имени администратора по ПКМ. Появятся два окна: | Всего записей: 11118 | Зарегистр. 12-10-2001 | Отправлено: 20:59 05-03-2017 | Исправлено: WildGoblin, 13:05 15-06-2022 |
|