Протокол IPv6 включен по умолчанию во всех версиях Windows, но при этом он практически не используется в домашних и небольших офисных сетях. Поэтому на просторах сети можно встреть большое количество рекомендации отключать протокол IPv6 как неиспользуемый (и даже вредный) при малейшей проблемах с (далее…)
Метка: Windows 11
-
PowerShell: найти компьютеры ожидающие перезагрузки
При установке некоторых патчей или обновлений безопасности, для их применения требуется перезагрузка Windows. Однако, если пользователь постоянно откладывает перезагрузку или вы отключили автоматическую перезагрузку на серверах/рабочих станциях после установки обновления (например, через групповую (далее…)
-
Управление модулями PowerShell в Windows
Модули PowerShell – это собранные в пакет наборы командлетов PowerShell для управления различными компонентами Windows, серверными ролями, облачными сервисами. Модули используются для управления инфраструктурой и автоматизации различных задач. В централизованном репозитории PowerShell Gallery (далее…)
-
Автозапуск мобильного хотспота (Wi-Fi точки доступа) в Windows
Многие пользователи используют свои ноутбуки с Windows в качестве виртуальной Wi-Fi точки доступа, раздающий Интернет другим устройствам. Главная проблема – такая программная точка доступа на Windows не включается автоматически после выключения или перезагрузки компьютера. В этой статье мы (далее…)
-
Экспорт (миграция) драйверов принтеров в Windows
Некоторые оригинальные драйверы печати (особенно для старых моделей принтеров) найти и скачать в сети довольно сложно. Производители часто удаляются страницы поддержки для устаревшего оборудования со своих веб сайтов. В том случае, если у вас есть живой Windows компьютер, на котором установлены (далее…)
-
Закрепить/открепить ярлык в панели задач Windows 11 с помощью PowerShell
Иногда нужно для пользователей програмно закрепить определенные приложения или ярлыки на папки в панели задач (таскбаре) Windows. От версии к версии Windows архитектура управления закрепленными приложениями в панели задач менялась. В частности, мы столкнулись с тем, что большинство ранее (далее…)
-
Где хранятся сертификаты в Windows?
Для управления сертификатами в Windows обычно используются графические MMC оснастки
certlm.msc(сертификаты компьютера/ Local Machine),certmgr.msc(сертификаты пользователя / Current User), утилита командной строкиcertutil. Все эти инструменты используются для взаимодействия с логическим (далее…) -
Кто создал папку (файл) в Windows?
В статье мы покажем, как узнать имя пользователя, создавшего папку или файл в локальной папке или в общей сетевой шаре. Можно определились пользователя, который создал файл/папку, по владельцу объекта или через события аудита файловой системы.
Содержание: -
Отключаем использование PowerShell для пользователей
От отдела безопасности поступила задача запретить использование PowerShell на некоторых компьютерах. Необходимо запретить пользователям запускать интерактивную PowerShell консоль, выполнять PowerShell скрипты, но при этом логон скрипты GPO, задания планировщика с PowerShell скриптами (запускаемые от SYSTEM) должны работать. В статье мы рассмотрим несколько методов запрета запуска PowerShell на компьютерах, которые можно централизованно применить через групповые политики.
Встроенная политика выполнения PowerShell скриптов в Windows (PowerShell Execution Policy) со значением Restricted позволяет запретить только выполнение файлов скриптов PS1, но не блокирует использование пользователями интерактивной консоли
powershell.exe. В Windows 10 и 11 значение политики выполнения PowerShell по-умолчанию Restricted (можно настроить через параметр GPO Turn on Script Execution в Computer Configuration -> Administrative Templates -> Windows Component -> Windows PowerShell).
В редакторе GPO есть еще одна встроенная политика, позволяющая запретить запуск определенных исполняемых файлов. Это Don’t run specified Windows applications в разделе User Configuration -> Administrative Templates -> System). Включите политику, нажмите кнопку Show и добавьте имя исполняемого файла
powershell.exe, запуск которого нужно запретить.
После применения настроек GPO на клиенте при попытке запустить powershell.exe, появится ошибка:
Restrictions This operation has been cancelled due to restrictions in effect on this computer. Please contact your system administrator.
Однако такая политика недостаточно надежная. Например, она не заблокировала запуск Windows Terminal с сессией PowerShell.

Отметим, что при разработке политик запрета PowerShell придется заблокировать несколько исполняемых файлов, которые хранятся в разных каталогах:
- x86 и x64 версии
powershell.exeиpowershell_ise.exeв каталогах%SystemRoot%System32WindowsPowerShellv1.0и%SystemRoot%SysWOW64WindowsPowerShellv1.0 - Если на компьютере установлен новый PowerShell Core, нужно запретить также запуск исполняемого файла pwsh.exe. Например, в моем случае это путь
C:Program FilesPowerShell7pwsh.exe(путь к файлу можно получить командой:Get-Command pwsh.exe
Более гибкие ограничения на запуск исполняемых файлом можно задать через Software Restriction Policies (SRP).
- Создайте доменную GPO в консоли
gpmc.msc - Перейдите в раздел User Configuration -> Policies -> Windows Settings -> Security Settings -> Software Restriction Policies
- Выберите New Software Restriction Policy

- Перейдите в раздел Additional Rules и добавьте следующий путь:
%SystemRoot%System32WindowsPowerShellv1.0powershell.exe - Выберите уровень безопасности Disallowed

Назначьте политику на целевую OU. После применения политики, пользователи не смогут запускать powershell.exe:
This app has been blocked by your administrator

Это приложение заблокировано вашим системным администратором
Также такая политика SRP не позволяет запустить powershell.exe через Windows Terminal:
[error 2147943660 (0x800704ec) when launching `%SystemRoot%System32WindowsPowerShellv1.0powershell.exe']

This program is blocked by group policy. For more information, contact your system administrator.

Можно сделать исключения в политике, разрешив некоторым пользователям использовать PowerShell. В этом примере я создал в AD отдельную группу AllowPowerShell, в которую добавил администраторов, которым будет разрешено запускать PowerShell.
Затем в консоли GPMC в настройках политики на вкладке Delegation я добавил эту группу, с правом чтения, но применение политики заблокировал: Apply group policy -> Deny.

Таким образом мы запретили запуск PowerShell пользователям, но сделали исключения для группы администраторов. Аналогично нужно запретить применять эту политику для SYSTEM, что позволит запускаться startup скриптам и powershell задания планировщика.
Проверить, что политика не применяется для администраторов можно с помощью команды gpresult /r.

Однако технология Software Restriction Policies считается устаревшей (deprecated), начиная с Windows 10 1803 и Windows Server 2019. Вместо нее рекомендуют использовать политики ограничения запуска программ Windows Defender Application Control (WDAC) или AppLocker.
Далее мы рассмотрим, как запретить запуск powershell.exe с помощью политики AppLocker. Изначально политики Applocker можно было применять только к Enterprise редакция Windows. Но, начиная с Windows 10 2004, политики AppLocker можно применять в том числе в Pro редакциях Windows.
- Чтобы политика Applocker применялись на клиенте, нужно включить автозапуск службы Application Identity (Computer Configuration -> Windows Settings -> Security Settings -> System Services)

- Затем перейдите в Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Application Control Policies -> Applocker. Откройте свойств, включите опцию Configured для Executable rules -> Enforce rules.

- Щелкните по секции Executable rules и выберите Create Default rules.
- В правиле All files located in the Windows folder добавьте исключения для исполняемого файла
powershell.exeпо Publisher. - Выберите исполняемый файл и ползунок поставьте на File name.

- Такое правило запретит пользователям запускать это файл.
- Чтобы powershell.exe могли запускать администраторы, нужно создать для них новое разрешающее правило, в котором содержится только этот файл.

- Дефолтные политики Aplocker запрещают пользователям запускать любые исполняемый файлы, кроме расположенных в папках Windows и Program Files. Поэтому если вы хотите запретить запуск только powershell.exe, нужно правило добавить разрешающее все для доменных пользователей, кроме powershell.exe (в поле path указываем
*).
При построении политик Applocker нужно учитывать несколько моментов. Уровень по умолчанию Disallowed, т.е. запрещено все, кроме явно разрешенного. Запрещающие правила имеют приоритет над разрешающими. Т.е. разрешённый файл для запуска файл не должен быть явно запрещён и должен быть явно разрешён.Для просмотра результирующих политик Applocker на клиенте можно выгрузить их в XML файл:
Get-AppLockerPolicy -Effective -XML > C:Backupapp.xmlПри попытке запустить powershell.exe на клиенте появится сообщение, что приложение заблокировано администратором.

Аналогичным образом нужно заблокировать x86 и x64 версии powershell.exe, powershell_ise.exe и pwsh.exe.
- x86 и x64 версии
-
Запуск команды (программы) из PowerShell
Иногда из терминала или скрипта PowerShell нужно выполнить какую-то внешнюю команду, утилиту командной строки, или запустить исполняемый EXE файл программы. Эта статья разбирает часто используемые методы запуска программ и консольных утилит из PowerShell, в том числе позволяющие передать аргументы (далее…)
