

- Главная
- Каталог
- Интернет технологии
- Системный Администратор Windows
Системный Администратор Windows
🖥️ Windows для системных администраторов: управление, оптимизация, безопасность. Полезные советы, лайфхаки, PowerShell-скрипты, автоматизация и практические решения для работы с серверами и рабочими станциями. Авторский канал.
Статистика канала
Полная статистикаchevron_rightdomain\username.
🔥 Оказалось, что проблема была в сбитом времени на сервере — он отставал на 6 минут от контроллера домена. Из-за этого Kerberos-билеты считались просроченными, и аутентификация тупо ломалась.
📎 Решение:
1. Проверил текущую синхронизацию времени:
w32tm /query /status
{}
2. Перезапустил службу времени и указал правильный NTP:
w32tm /config /manualpeerlist:"time.windows.com,0x9" /syncfromflags:manual /reliable:yes /update
Restart-Service w32time
{}
3. Синхронизировал вручную:
w32tm /resync /force
{}
✅ После этого всё заработало, ошибки исчезли, пользователи успокоились.
👉 @win_sysadmin
Get-EventLog -LogName System -Source User32 | Where-Object { $_.EventID -eq 1074 } | Select TimeGenerated, Message | Sort-Object TimeGenerated -Descending
{}
Этот запрос покажет, кто инициировал перезагрузку, с какой причиной и когда это было. Очень полезно при разборе неожиданных рестартов или плановых работ, которые никто "не помнит".
✅ Дополнительно можно глянуть системные события ID 6006 (нормальное выключение) и 6005 (загрузка журнала, т.е. запуск системы):
Get-EventLog -LogName System | Where-Object { $_.EventID -eq 6006 -or $_.EventID -eq 6005 } | Select TimeGenerated, EventID | Sort-Object TimeGenerated -Descending
{}
🔥 Удобно добавлять эти команды в свой набор “быстрых админских команд”.
👉 @win_sysadminСегодня коротко и по делу, что включить в Audit Policy, чтобы отслеживать все подключения по RDP. Без нужных политик никакой логгер не поможет.
🎯 Включаем аудит входа и сетевых логинов:
AuditPol /set /subcategory:"Logon" /success:enable /failure:enable
AuditPol /set /subcategory:"Logoff" /success:enable
AuditPol /set /subcategory:"Special Logon" /success:enable
AuditPol /set /subcategory:"Logon with explicit credentials" /success:enable /failure:enable
📝 После этого в логе Security начнут появляться события:
-
4624 - Успешный вход (в том числе по RDP - Logon Type 10)-
4625 - Неудачный вход (ошибка пароля, нет такой учётки и т.п.)-
4634 - Выход из системы-
4778 и 4779 - Подключение и отключение от RDP-сессии📌 Также полезно включить аудит групповой политики:
AuditPol /set /subcategory:"Other Logon/Logoff Events" /success:enable /failure:enable
👉 @win_sysadmin
Сегодня покажу, как быстро найти и перезапустить зависший сервис через PowerShell.
📌Бывают случаи, когда сервис вроде как "работает", статус Running, но по факту не отвечает или не выполняет свои задачи. Такое бывает с агентами резервного копирования, антивирусами и даже SQL Server.
Ниже скрипт, который мне помогает выявить такие "зомби-сервисы" и перезапустить их:
$serviceName = "Имя_сервиса"
$svc = Get-Service -Name $serviceName
if ($svc.Status -eq "Running") {
$process = Get-WmiObject Win32_Service | Where-Object { $_.Name -eq $serviceName }
if ($process.ProcessId -ne 0) {
Write-Host "Сервис запущен с PID $($process.ProcessId). Перезапускаем..."
Restart-Service -Name $serviceName -Force
} else {
Write-Host "PID не найден. Возможна проблема – проверь вручную!"
}
} else {
Write-Host "Сервис не запущен. Статус: $($svc.Status)"
}
💡 Это особенно полезно на тех серверах, где нет стороннего мониторинга, а время реагирования критично.
👉 @win_sysadmin
Как быстро понять, кто и когда логинился на сервер или важную машину? Особенно если подозрения на взлом или кто-то заходит в неурочное время (хотя сам так делаю, как правило ночью).
Данный PowerShell-скрипт вытащит логи входа в систему (
Event ID 4624) из журнала безопасности:
Get-WinEvent -FilterHashtable @{
LogName = 'Security';
Id = 4624;
StartTime = (Get-Date).AddDays(-1)
} | ForEach-Object {
$xml = [xml]$_.ToXml()
[PSCustomObject]@{
TimeCreated = $_.TimeCreated
AccountName = $xml.Event.EventData.Data | Where-Object {$_.Name -eq "TargetUserName"} | Select-Object -ExpandProperty '#text'
IPAddress = $xml.Event.EventData.Data | Where-Object {$_.Name -eq "IpAddress"} | Select-Object -ExpandProperty '#text'
LogonType = $xml.Event.EventData.Data | Where-Object {$_.Name -eq "LogonType"} | Select-Object -ExpandProperty '#text'
}
} | Where-Object { $_.AccountName -ne "ANONYMOUS LOGON" -and $_.LogonType -eq "10" } | Sort-Object TimeCreated
📌
LogonType = 10 - это удалённый интерактивный вход (RDP). 📌 Можно заменить на
2, если нужен локальный интерактивный логон. 📌 Или убрать фильтр, чтобы увидеть всё.
Полезно для расследований, мониторинга активности админов, а ещё, если нужно зафиксировать "кто заходил ночью" 😅 (главное на себя не выйти 😂)
👉 @win_sysadmin
Есть очень простой и полезный трюк, который помогает выявить подозрительные подключения к вашему Windows-серверу - особенно актуально, если сервер доступен извне.
🔥 Проверить активные входящие подключения можно командой:
Get-NetTCPConnection -State Established | Where-Object { $_.RemoteAddress -ne '127.0.0.1' } |
Select-Object LocalAddress, LocalPort, RemoteAddress, RemotePort, State, OwningProcess |
Sort-Object -Property RemoteAddress
А чтобы узнать, какой процесс стоит за каждым подключением, дополним это:
Get-NetTCPConnection -State Established |
Where-Object { $_.RemoteAddress -ne '127.0.0.1' } |
ForEach-Object {
$proc = Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue
[PSCustomObject]@{
RemoteAddress = $_.RemoteAddress
RemotePort = $_.RemotePort
LocalPort = $_.LocalPort
ProcessName = $proc.ProcessName
PID = $_.OwningProcess
}
} | Sort-Object RemoteAddress
📌 Этот способ помогает быстро выявить:
- необычные подключения к RDP или кастомным портам;
- неизвестные процессы, которые “висят” в сети;
- потенциальный бэкдор или троян.
Поставьте это на регулярный мониторинг через таск или скрипт с логом в файл.
👉 @win_sysadmin
Сегодня разберем скрытых пожирателей ресурсов в Windows и как их быстро выявить.
Бывает, сервер вроде бы работает, но периодически подтормаживает. CPU не загружен, RAM в норме, диск не трещит, а лаги есть. В таких случаях я первым делом проверяю скрытые потребители ресурсов, которых не видно в обычном диспетчере задач.
🔥 Вот парочка полезных команд в PowerShell, которые помогут найти виновника:
1️⃣ Процессы с аномально высоким потреблением дескрипторов (например, утечки в сервисах):
Get-Process | Sort-Object -Property Handles -Descending | Select-Object -First 10
Если видите процесс с сотнями тысяч дескрипторов – это тревожный звоночек.
2️⃣ Проверка использования сети процессами (чтобы вычислить неожиданно болтливые службы):
Get-NetTCPConnection | Group-Object -Property OwningProcess | Sort-Object Count -Descending | Select-Object -First 10
Выяснит, какие процессы держат максимум соединений. Особенно полезно, если сервер внезапно грузит сеть.
3️⃣ Файлы, которые держит процесс (можно отследить, кто блокирует файлы или грузит диск):
Get-Process | Sort-Object -Property Handles -Descending | Select-Object -First 10
Это поможет найти виновника, если диск занят, но не ясно, кто именно активничает.
👉 @win_sysadmin
Сегодня разберем автоматическое обновление групповых политик (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
Get-WinEvent -FilterHashtable @{
LogName = 'Security'
Id = 4625
} | Where-Object {
$_.Properties[10].Value -eq '10' # Logon Type 10 = RDP
} | Select-Object TimeCreated,
@{Name='Username';Expression={$_.Properties[5].Value}},
@{Name='IP';Expression={$_.Properties[18].Value}} |
Sort-Object TimeCreated -Descending | Select-Object -First 20
{}
📌 Покажет:
- когда была попытка
- откуда (IP)
- под каким логином пытались зайти
👮♂️ Можно быстро зафайрволить источник, добавить в blacklist или передать в SIEM.
🛡️ Плюс к этому — рекомендую включить защиту учётных записей от перебора пароля:
net accounts /lockoutthreshold:5 /lockoutduration:15 /lockoutwindow:15
{}
👉 @win_sysadminОтзывы канала
всего 2 отзыва
- Добавлен: Сначала новые
- Добавлен: Сначала старые
- Оценка: По убыванию
- Оценка: По возрастанию
Каталог Телеграм-каналов для нативных размещений
Системный Администратор Windows — это Telegam канал в категории «Интернет технологии», который предлагает эффективные форматы для размещения рекламных постов в Телеграмме. Количество подписчиков канала в 3.0K и качественный контент помогают брендам привлекать внимание аудитории и увеличивать охват. Рейтинг канала составляет 16.4, количество отзывов – 2, со средней оценкой 5.0.
Вы можете запустить рекламную кампанию через сервис Telega.in, выбрав удобный формат размещения. Платформа обеспечивает прозрачные условия сотрудничества и предоставляет детальную аналитику. Стоимость размещения составляет 4895.1 ₽, а за 10 выполненных заявок канал зарекомендовал себя как надежный партнер для рекламы в TG. Размещайте интеграции уже сегодня и привлекайте новых клиентов вместе с Telega.in!
Вы снова сможете добавить каналы в корзину из каталога
Комментарий