TG Telegram Group Link
Channel: WindowsITPro - winitpro.ru
Back to Bottom
📝 Для автоматического логирования всех команд, которые запускаются в PowerShell консоли и/или запускаемых PS1 скриптов в Windows, можно использовать встроенную функцию логирования.

Для запуска/остановки записи всех команд и результатов (всего, что выводится в консоль) из текущего сеанса PowerShell в текстовый файл используются командлеты Start-Transcript и Stop-Transcript. По умолчанию логи пишутся в текстовый файл в профиле пользователя (%userprofile%\Documents). Можно указать произвольный файл лога (допустимо хранить его во внешней сетевой папке на сервере для централизованного сбора ).

С помощью параметра Turn on PowerShell Transcription в групповых политиках можно включить автоматическое логирование всех запускаемых PowerShell команд/скриптов на компьютере.

Добавляем логирование в PowerShell скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🖨Одной из распространённых проблем при использовании терминального сервера Windows (RDS), на который пробрасываются локальные принтеры с компьютеров пользователей, заключается в большом количестве неактивных TS портов печати от перенаправленных принтеров (Inactive TS Port), которые накапливаются со временем. Все это вызывает проблемы с производительностью RDSH хоста, пропаданию перенаправленных принтеров в сессиях пользователей и другим проблем со службой печати на терминале. Проблема плавающая и проявляется в первую очередь на RDS хостах с большим количеством сеансов (40+).

Для предотвращения таких проблем с печатью на терминальных серверах можно использовать следующие подходы:

🔹Пробрасывать с компьютера в RDP сессию пользователю только один принтер, назначенный по умолчанию (настраивается политикой). Это уменьшит количество создаваемых портов печати.
🔹С какой-то периодичностью скриптом очищать неактивные порты
🔹Регулярно перезагружать RDS хост. Это очищает TS порты печати.

Неактивные TS порты принтеров на RDS сервере
📏 По умолчанию при подключении к RDP сессии на Windows Server встроенным клиентом mstsc.exe, настройки масштабирования удаленного рабочего стола наследуются с компьютера клиента. Изменить настройки масштабирования в RDP сессии нельзя. Такое поведение может вызвать жалобы от пользователей с мониторами HiDPI (4к) на слишком мелкие (или наоборот слишком большие) шрифты, значки, тексты и другие элементы UI в окне удаленного рабочего стола.
В Windows Server 2019,2016 можно отключить наследование настроек масштабирования с клиента с помощью параметра реестра IgnoreClientDesktopScaleFactor:
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations" /f /v IgnoreClientDesktopScaleFactor /t REG_DWORD /d 1 

После этого можно задать параметры масштабирования в сессии пользователя через параметр LogPixels. Например, для 200% масштабирования нужно создать параметр со значением 192:
reg add "HKCU\Control Panel\Desktop" /f /v LogPixels /t REG_DWORD /d 192


🚫 В Windows Server 2022 и 2025 параметр IgnoreClientDesktopScaleFactor не работает (игнорируется), и параметры масштабирования рабочего стола DPI всегда берутся с клиента. Поэтому приходится на клиенте задавать настройки масштабирования, которые хорошо выглядят и на локальном компьютере, и в RDP сессии, либо использовать альтернативный RDP клиент.

Размер шрифта и масштабирование экрана в RDP (RDS) сессии
🪟В новой статье мы собрали основные рекомендации, которые могут быть полезны при развертывании Windows Server в виртуальной машине на гипервизоре Proxmox VE.

Были рассмотрены типовые настройки виртуального оборудования, установка драйверов VirtIO, а также другие аспекты, которые позволят добиться стабильности и быстродействия Windows ВМ в среде Proxmox.

Базовые рекомендации по развертыванию Windows в виртуальной машине Proxmox
⚙️ В свежем релизе Proxmox VE 8.4 появилась возможность монтировать общие директории с хоста в виртуальные машины через файловую систему VirtioFS. Это позволяет виртуальным машинам напрямую получать доступ к директориям и папкам на локальном хосте без использования сетевых протоколов типа SMB или NFS.

Принцип работы довольно простой:

1️⃣Создаем на Proxmox общую папку в разделе Datacenter -> Directory Mappings
2️⃣ Добавляем виртуальное устройство в VirtioFS в ВМ
3️⃣ Монтируем общую директорию с хоста в ВМ. В гостевых Linux поддержка virtiofs есть на уровне ядра, а в Windows придется установить драйвер VirtioFS (входит в образ virtio-win-.iso) и утилиту WinFsp для монтирования файловой системы.

Как настроить общие папки в Proxmox для доступа из ВМ через VirtioFS
Please open Telegram to view this post
VIEW IN TELEGRAM
Оптимизация настроек профилей, загружаемых модулей и окружения для более быстрого запуска PowerShell

На разных компьютерах периодически встречаю проблему очень долгого запуска консоли PowerShell, вплоть до нескольких минут. Это влияет как на запуск самой командной оболочки powershell.exe/pwsh.exe, так и на время выполнения PowerShell скриптов (бывает критично для логон скриптов).

⚙️ Измерить время чистого запуска оболочки powershell.exe в текущем профиле:
powershell -noprofile -ExecutionPolicy Bypass ( Measure-Command { powershell "Write-Host 1" } ).TotalSeconds 


Основные причины долгого запуска оболочки PowerShell:
🔹 Выполнение медленного кода из профилей пользователя, который загружается каждый раз при старте консоли
🔹 Большое количество установленных модулей, которые загружаются автоматически
🔹Проверка внешних списков отозванных сертификатов (CRL) установленных модулей (проблема встречается на изолированных от интернета компьютерах)

Долго запускается консоль PowerShell или PS1 скрипты
🔑 Пользователь Active Directory (AD) при стандартной политике паролей не должен иметь пустой пароль, так такая политика задает обязательное требования на минимальный размер пароля и требования к сложности. Однако, если у учетной записи установлен флаг PASSWD_NOTREQD (пароль не требуется), то на такую учетную запись политика паролей не распространяется, и теоретически можно задать такому аккаунту пустой пароль.

⚠️ Включить флаг PASSWD_NOTREQD вручную может администратор или пользователь, которому делегированы права на управление аккаунтами. Поэтому необходимо контролировать наличие флага у учетных записей, и не допускать его наличие у привилегированных акантов.

Вывести всех пользователей AD с включенным флагом PasswordNotRequired:
Get-ADUser -Filter {PasswordNotRequired -eq $true} -properties PasswordNotRequired | ft SamAccountName,enabled, PasswordNotRequired


Active Directory: поиск пользователей без пароля (PasswordNotRequired)
📚 Командлет Invoke-Command позволяет выполнять команды и запускать скрипты на одном или нескольких удалённых компьютерах одновременно (posh аналог psexec 💪). Он используется в рамках PowerShell Remoting, который базируется на службе Windows Remote Management (WinRM) и протоколе WS-Management, обеспечивая защищённое удалённое управление Windows-системами.

Возможности:
🔹 Позволяет выполнить команды на множестве компьютерах параллельно
🔹 Поддержка запуска нагрузки в фоновом режиме (-AsJob), не блокируя консоль
🔹 Поддерживает постоянные сессий PowerShell
🔹 В PowerShell Core (6+) может использовать SSH для подключения

Например, проверить состояние службы Windows Update на двух удалённых серверах
Invoke-Command -ComputerName Server01, Server02 -ScriptBlock { Get-Service wuauserv }


Командлет Invoke-Command удобно использовать для выполнения массовых действий на множестве компьютеров: выполнение обновлений, проверок состояния служб, сбора логов, и других задач администрирования и мониторинга рабочих станций и серверов.

Запуск команд и скриптов на удаленных компьютерах через Invoke-Command
⚙️ На серверах с установленной Windows Server (разных версий) в доменной сети после перезагрузки можно встретить, что тип сети сам меняется с доменной (domain) на частную (private). Это может вызывать проблемы с доступностью сервера/служб, если к нему применяются кастомные доменные правила файервола.

⚠️ Проблема возникает, если при загрузке хост вовремя не получил ответа от DNS сервера, указанного в настройках сетевого адаптера. Поэтому такая проблема особо характерна для контроллеров домена, где в предпочтительных DNS прописан он сам. Поэтому в настройках DC нужно в качестве preferred DNS указывать другой DC, а в качестве альтернативного – себя. И не перезагружать все DC одновременно 😊

Либо подпирать такой случай костылем:

🔹 В версиях Windows Server 2016/2019 проблема решалось отложенным запуском службы NlaSvc (Network Location Awareness Service), так чтобы она запускалась после DNS.
🔹 В Windows Server 2025 служба NlaSvc по умолчанию отключена, поэтому в качестве костыля можно добавить в автозагрузку PowerShell скрипт, который ждет запуска службы DNS и перезапускает сетевой адаптер:

do {$status = (Get-Service dns)} until ($status.Status -eq 'Running'); Get-NetAdapter -Physical | Restart-NetAdapter


📚 Слетает доменный тип сети при перезагрузке Windows Server
💡 Основные утилиты и команды для проверки состояния ваших контроллеров домена Active Directory и репликации

📚 В статье подробно рассмотрены ключевые методы и инструменты для комплексной диагностики состояния контроллеров домена Active Directory и процессов репликации. Описаны стандартные утилиты Windows Server, dcdiag, repadmin, replmon, а также возможности PowerShell для мониторинга и выявления ошибок в инфраструктуре AD.

Проверка здоровья контроллеров домена Active Directory и репликации
📈 Некоторый запущенные процессы могут сильно нагружать диск в Windows операциями ввода/вывода (до 100%), парализуя нормальную работу других приложений. В этой статье мы рассмотрим базовые инструменты Windows, которые можно использовать, чтобы найти процессы, который сильно нагружает дисковую подсистему.

🔸Task Manager и Process Explorer – могут вывести информацию об I/O процессов
🔸Resource Monitor – позволяет найти в какой именно файл идет активная запись/чтение
🔸 Счетчики производительности (Performance Counters) – можно получить информацию в реальном времени с помощью Performance Monitor (perfmon) или извлечь информацию счетчиков с помощью PowerShell. Например, вывести топ 10 процессов по дисковой активности:
Get-Counter '\Process(*)\IO Data Bytes/sec' | Select-Object -ExpandProperty CounterSamples | Sort-Object -Property CookedValue -Descending | Select-Object InstanceName, CookedValue -First 10 

Ищем процессы, который сильно грузят диск в Windows
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🏖 Отпуск не повод останавливать развитие 

Пока кто-то загорает, вы можете прокачать навыки и поднять себе грейд — отдыхая и учась в удобном ритме.

Видеокурсы Слёрма со скидкой -50% по промокоду LETO2025

🧠 Самообучение, практика, проверка заданий и сертификат после каждого курса.

Акция до 31 июля.

➡️ Забирайте курсы и возвращайтесь из отпуска не только с загаром, но и с обновлённым стеком: забрать курсы по ссылке.
Please open Telegram to view this post
VIEW IN TELEGRAM
HTML Embed Code:
2025/07/04 19:41:16
Back to Top