Системный Администратор Windows
3.15K subscribers
15 photos
2 videos
24 links
🖥️ Windows для системных администраторов: управление, оптимизация, безопасность. Полезные советы, лайфхаки, PowerShell-скрипты, автоматизация и практические решения для работы с серверами и рабочими станциями.

Авторский канал.
Download Telegram
Приветствую, коллеги! 👋

Меня зовут Евгений, я системный администратор в крупной госкомпании. В этом канале я делюсь полезными фишками, лайфхаками, PowerShell-скриптами и решениями проблем, с которыми сталкиваются админы Windows каждый день.

Здесь будет всё, что поможет упростить вашу работу: от настройки серверов и автоматизации задач до оптимизации системы и обеспечения безопасности. Если у вас есть вопросы или хотите обсудить какую-то тему — пишите, всегда рад общению!

Добро пожаловать в сообщество Windows-админов! 🚀
🔥15👍2
👋 Привет, админы!

Сегодня хочу поделиться интересным кейсом. На одном из серверов начал падать RDP — сначала редкие обрывы, потом вовсе перестал пускать пользователей. В логах (Event Viewer → System) красовалась ошибка "The Terminal Server security layer detected an error in the protocol stream and has disconnected the client".

🛠 Разбираемся!
1. Проверил стандартное — порты, брандмауэр, лицензии. Всё ок.
2. TLS 1.0 и 1.1 отключены, но сервер настроен использовать именно их.
3. Проверил реестр:


Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client"


Оказалось, что TLS 1.2 у клиента выключен!
Включаем:


New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -Force
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -Name "Enabled" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -Name "DisabledByDefault" -Value 0 -Type DWord


После перезагрузки сервера RDP снова заработал!

💬 А у вас были случаи, когда внезапно переставал работать RDP? Как решали?

👉 @win_sysadmin
👍81
Сейчас расскажу про интересную находку: неочевидный жор памяти в Windows, который сложно поймать стандартными методами.

📌 Симптомы:
– Сервер начал тормозить, приложения падают, но в диспетчере задач вроде бы всё нормально.
"Out of memory", хотя физической памяти достаточно.
– В Process Explorer подозрительных процессов нет.

🛠 Разбираемся!
1. Открываем RAMMap (если нет — качаем с сайта Microsoft).
2. Ищем вкладку "Metafile" — это кэш файловой системы NTFS.
3. Оказалось, что он занял 60% ОЗУ и не освобождается!

🔧 Решение:
📌 Временный сброс:


Clear-SystemFileCache


📌 Ограничение роста метафайла:


reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v "LargeSystemCache" /t REG_DWORD /d 0 /f
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v "NtfsMemoryUsage" /t REG_DWORD /d 1 /f


После перезагрузки проблема исчезла!

💬 А у вас бывало, что память исчезает без видимых причин? Как отлавливаете утечки?

👉 @win_sysadmin
👍11
👋 Привет, админы!

Сегодня поговорим о поиске забытых GPO в домене.

Недавно наткнулся на ситуацию: в домене много устаревших GPO, которые никто не трогал годами. Они могут замедлять загрузку ПК, вызывать конфликты или просто делать хаос в настройках.

🔥 Вот как быстро найти групповые политики, которые давно не применялись:


$CutoffDate = (Get-Date).AddDays(-180)
Get-GPO -All | Where-Object { $_.ModificationTime -lt $CutoffDate } | Select-Object DisplayName, ModificationTime | Format-Table -AutoSize


Этот скрипт покажет GPO, которые не изменялись последние 180 дней. Можно увеличить срок, если хочется найти совсем древние политики.

💡 А если надо проверить, какие GPO вообще не применяются на клиентских машинах? Можно воспользоваться gpresult /h на клиенте или инструментом GPOTool из RSAT.

💬 Как вы чистите старые GPO в своей инфраструктуре? Делитесь лайфхаками!

👉 @win_sysadmin
👍8
👋 Привет, админы!

Сегодня разберем автоматическое обновление групповых политик (GPO) на клиентах без необходимости ждать стандартного обновления (которое бывает раз в 90 минут + случайное отклонение до 30 минут).

🔥 Если вам нужно срочно применить новую политику, используйте:


gpupdate /force


Но что, если нужно обновить политику на всех компьютерах домена сразу? Тут поможет PowerShell:


Invoke-GPUpdate -Computer "ИмяКомпьютера" -RandomDelayInMinutes 0


А если нужно массово обновить политики на всех машинах в OU? Тогда можно так:


Get-ADComputer -Filter * -SearchBase "OU=Computers,DC=domain,DC=local" | ForEach-Object {
Invoke-GPUpdate -Computer $_.Name -RandomDelayInMinutes 0 -AsJob
}


🔹 gpupdate /force — хорош для локального применения.
🔹 Invoke-GPUpdate — удобен для удаленного обновления GPO.
🔹 Комбинация с Get-ADComputer — идеальна для массового обновления в домене.


👉 @win_sysadmin
👍9
🔥 Как быстро очистить память от мусорных процессов в Windows

👋 Привет, админы!

Бывало у вас такое, что сервер или рабочая станция начинают дико тормозить, а в диспетчере задач видно, что память съедена каким-то процессом? Закрыть руками не всегда удобно, особенно если это удаленная машина.

🚀 Вот простой способ быстро очистить память с помощью PowerShell:

Get-Process | Where-Object { $_.WorkingSet64 -gt 500MB } | Sort-Object WorkingSet64 -Descending | Select-Object -First 5 | Stop-Process -Force

🔍 Что делает этот скрипт?
• Находит процессы, которые жрут больше 500MB RAM
• Сортирует их по потреблению памяти
• Берет топ-5 самых прожорливых
• Безжалостно убивает их

⚠️Важно! Перед использованием убедитесь, что не завершаете критически важные сервисы. Лучше сначала проверить, кто именно грузит систему:

Get-Process | Sort-Object -Property WorkingSet64 -Descending | Select-Object -First 10

👉 @win_sysadmin
👍5