👋 Привет, админы!
Раз уж тема зашла, делюсь готовым скриптом для массового обновления паролей сервисных учёток. Иногда после смены пароля учётки приходится руками лазить по десяткам серверов и обновлять службы — это ад. Решается всё PowerShell’ем.
Вот скрипт:
Работа скрипта:
- Берёт список серверов.
- Находит службы, которые работают под указанной учёткой.
- Меняет пароль и сразу перезапускает сервис.
Можно легко адаптировать под CSV, чтобы брать серверы и учётки из файла.
👉 @win_sysadmin
Раз уж тема зашла, делюсь готовым скриптом для массового обновления паролей сервисных учёток. Иногда после смены пароля учётки приходится руками лазить по десяткам серверов и обновлять службы — это ад. Решается всё PowerShell’ем.
Вот скрипт:
# Задаем данные
# автор: https://t.me/win_sysadmin
$ServiceAccount = "DOMAIN\ServiceUser"
$NewPassword = "NewSecurePassword123!"
$Servers = @("Server1","Server2","Server3") # список серверов
foreach ($Server in $Servers) {
Write-Host "Обновляю службы на $Server..." -ForegroundColor Cyan
$services = Get-WmiObject Win32_Service -ComputerName $Server | Where-Object { $_.StartName -eq $ServiceAccount }
foreach ($svc in $services) {
Write-Host " -> Обновляем $($svc.Name) ($($svc.DisplayName))" -ForegroundColor Yellow
$result = sc.exe \\$Server config $($svc.Name) obj= $ServiceAccount password= $NewPassword
if ($result -like "*[SC] ChangeServiceConfig SUCCESS*") {
Restart-Service -Name $svc.Name -ComputerName $Server -Force
Write-Host " Перезапущено." -ForegroundColor Green
} else {
Write-Host " Ошибка при обновлении!" -ForegroundColor Red
}
}
}
Работа скрипта:
- Берёт список серверов.
- Находит службы, которые работают под указанной учёткой.
- Меняет пароль и сразу перезапускает сервис.
Можно легко адаптировать под CSV, чтобы брать серверы и учётки из файла.
👉 @win_sysadmin
🔥8👍6❤1
👋 Привет, админы!
Недавно поймал интересный кейс: один из серверов на Windows Server 2019 неожиданно перестал обновляться. Центр обновлений крутился без конца, а в
Оказалось, что проблема была в битом кэше обновлений. Решение оказалось простым, но спасло несколько часов:
После этого сервер спокойно подтянул все обновления.
👉 Маленький лайфхак: если часто сталкиваетесь с зависаниями обновлений, автоматизируйте этот процесс. Например:
Скрипт можно положить в отдельный
👉 @win_sysadmin
Недавно поймал интересный кейс: один из серверов на Windows Server 2019 неожиданно перестал обновляться. Центр обновлений крутился без конца, а в
WindowsUpdate.log - стандартный "ничего полезного".Оказалось, что проблема была в битом кэше обновлений. Решение оказалось простым, но спасло несколько часов:
net stop wuauserv
net stop bits
Remove-Item -Recurse -Force C:\Windows\SoftwareDistribution\*
net start bits
net start wuauserv
После этого сервер спокойно подтянул все обновления.
👉 Маленький лайфхак: если часто сталкиваетесь с зависаниями обновлений, автоматизируйте этот процесс. Например:
$services = "wuauserv","bits"
Stop-Service $services -Force
Remove-Item -Recurse -Force C:\Windows\SoftwareDistribution\*
Start-Service $services
Write-Host "Кэш обновлений очищен!"
Скрипт можно положить в отдельный
.ps1 и запускать при необходимости.👉 @win_sysadmin
🔥9👍8❤3
👋 Привет, админы!
Пользователи жаловались на долгий логон на RDS-сервер. Вроде и ресурсов хватает, и сеть нормальная, а сессия грузится по минуте.
Покопался в логах и наткнулся на то, что отрабатывает куча лишних GPO, в том числе старые скрипты входа, которые уже давно никому не нужны.
Быстро проверить, какие политики реально применяются, помогла вот такая команда:
Открыв отчет в браузере, сразу видно все примененные политики и время их применения.
А еще можно через PowerShell собрать сводку по GPO и времени логина:
Так я нашел пару древних скриптов, которые тормозили загрузку профиля. Удалил и логон снова за 10 секунд! 🚀
👉 @win_sysadmin
Пользователи жаловались на долгий логон на RDS-сервер. Вроде и ресурсов хватает, и сеть нормальная, а сессия грузится по минуте.
Покопался в логах и наткнулся на то, что отрабатывает куча лишних GPO, в том числе старые скрипты входа, которые уже давно никому не нужны.
Быстро проверить, какие политики реально применяются, помогла вот такая команда:
gpresult /h C:\Temp\GPO_Report.html
Открыв отчет в браузере, сразу видно все примененные политики и время их применения.
А еще можно через PowerShell собрать сводку по GPO и времени логина:
Get-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-GroupPolicy/Operational';ID=5312} |
Select-Object TimeCreated, Message |
Sort-Object TimeCreated -Descending |
Select-Object -First 20
Так я нашел пару древних скриптов, которые тормозили загрузку профиля. Удалил и логон снова за 10 секунд! 🚀
👉 @win_sysadmin
👍16
🚀 Подборка полезных 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 и др.
1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
https://max.ru/cpp_lib Библиотека C/C++ разработчика
Программирование 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 Свежие новости Москвы
Системное администрирование, 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 и др.
1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
https://max.ru/cpp_lib Библиотека C/C++ разработчика
Программирование 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 Свежие новости Москвы
MAX
Системный Администратор | Sysadmin Windows & Linux Server. …
Блог практикующего админа. Настройка Windows Server, Active Directory (AD), GPO и терминальных серверов (RDP). Работа с Linux: Ubuntu, CentOS, Debian. Сетевое …
🤮7👎6❤1👍1🫡1
👋 Привет, админы!
К посту про долгий логин, - топ-10 команд для быстрой диагностики проблем логина на Windows-серверах и рабочих станциях.
Если пользователи жалуются на долгий вход или подвисания - вот с чего начинаю копать:
1. Какие политики реально применяются:
Отчет в HTML сразу покажет все GPO и их статус.
2. Время применения групповых политик:
3. Анализ процессов при логоне:
Можно понять, что запускается последним и тормозит старт.
4. Диагностика профиля пользователя:
Выявляем битые или старые профили.
5. События медленного входа (Winlogon):
6. Проверка сетевых задержек (DC):
Быстро видим, к какому контроллеру цепляется клиент.
7. Тест производительности сети:
Проверка доступности LDAP-порта.
8. Проверка кешированных профилей:
9. Время выполнения скриптов входа:
10. Чтение журналов User Profile Service:
🔥 Эти команды помогают понять: проблема в политике, профиле, сети или скриптах.
👉 @win_sysadmin
К посту про долгий логин, - топ-10 команд для быстрой диагностики проблем логина на Windows-серверах и рабочих станциях.
Если пользователи жалуются на долгий вход или подвисания - вот с чего начинаю копать:
1. Какие политики реально применяются:
gpresult /h C:\Temp\GPO_Report.html
Отчет в HTML сразу покажет все GPO и их статус.
2. Время применения групповых политик:
Get-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-GroupPolicy/Operational';ID=5312} |
Select-Object TimeCreated, Message
3. Анализ процессов при логоне:
Get-Process | Sort-Object StartTime -Descending | Select-Object -First 20
Можно понять, что запускается последним и тормозит старт.
4. Диагностика профиля пользователя:
Get-WmiObject Win32_UserProfile | Select LocalPath, LastUseTime, Special
Выявляем битые или старые профили.
5. События медленного входа (Winlogon):
Get-WinEvent -LogName 'Microsoft-Windows-Winlogon/Operational' |
Select TimeCreated, Id, Message -First 20
6. Проверка сетевых задержек (DC):
nltest /dsgetdc:DOMAINNAME
Быстро видим, к какому контроллеру цепляется клиент.
7. Тест производительности сети:
Test-NetConnection DC_NAME -Port 389
Проверка доступности LDAP-порта.
8. Проверка кешированных профилей:
dir "C:\Users" | Sort-Object LastWriteTime
9. Время выполнения скриптов входа:
Get-WinEvent -LogName 'Microsoft-Windows-Shell-Core/Operational' |
? {$_.Message -like "*Logon Script*"} | Select TimeCreated, Message
10. Чтение журналов User Profile Service:
Get-WinEvent -LogName 'Microsoft-Windows-User Profile Service/Operational' |
Select TimeCreated, Id, Message -First 20
🔥 Эти команды помогают понять: проблема в политике, профиле, сети или скриптах.
👉 @win_sysadmin
👍12🔥5❤2
👋 Привет, админы!
Windows Server 2019 начал жаловаться пользователям на «медленный отклик» при входе в систему. Логи чистые, CPU и RAM в норме. Но вот вход в RDP занимал секунд 30–40.
Оказалось, что виноват переизбыточный автозапуск, в профилях пользователей накопилось куча мусора: OneDrive, Teams и ещё парочка «добрых» помощников стартовали при каждом логоне.
📌 Вот как я быстро вычистил это через PowerShell:
Эта команда покажет всё, что стартует при входе, включая системные и пользовательские записи.
Дальше можно удалить ненужное:
После чистки вход в систему стал занимать 8–10 секунд.
Так что совет - периодически проверяйте автозапуск, особенно на терминальных серверах.
👉 @win_sysadmin
Windows Server 2019 начал жаловаться пользователям на «медленный отклик» при входе в систему. Логи чистые, CPU и RAM в норме. Но вот вход в RDP занимал секунд 30–40.
Оказалось, что виноват переизбыточный автозапуск, в профилях пользователей накопилось куча мусора: OneDrive, Teams и ещё парочка «добрых» помощников стартовали при каждом логоне.
📌 Вот как я быстро вычистил это через PowerShell:
Get-CimInstance Win32_StartupCommand |
Select-Object Name, Command, Location, User |
Sort-Object Name
Эта команда покажет всё, что стартует при входе, включая системные и пользовательские записи.
Дальше можно удалить ненужное:
Get-CimInstance Win32_StartupCommand | Where-Object {$_.Name -like "*Teams*"} | Remove-CimInstance
После чистки вход в систему стал занимать 8–10 секунд.
Так что совет - периодически проверяйте автозапуск, особенно на терминальных серверах.
👉 @win_sysadmin
🔥9👍4❤1
🚀 Подборка полезных 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 и др.
1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
https://max.ru/cpp_lib Библиотека C/C++ разработчика
Программирование 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 Свежие новости Москвы
Системное администрирование, 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 и др.
1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
https://max.ru/cpp_lib Библиотека C/C++ разработчика
Программирование 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 Свежие новости Москвы
MAX
Системный Администратор | Sysadmin Windows & Linux Server. …
Блог практикующего админа. Настройка Windows Server, Active Directory (AD), GPO и терминальных серверов (RDP). Работа с Linux: Ubuntu, CentOS, Debian. Сетевое …
👎14🤡4👍2
👋 Привет, админы!
После обновления Windows Server 2022 один из сервисов перестал стартовать при загрузке, хотя в Services.msc он стоит на Automatic.
Оказалось, что проблема в том, что Windows теперь иногда «умно» откладывает запуск сервисов, помеченных как Automatic (Delayed Start), особенно если система решает, что «надо разгрузить старт».
💡 Решение нашлось простое: проверяем и меняем тип запуска на обычный Automatic через PowerShell:
А если надо массово проверить и поправить сразу несколько сервисов, которые почему-то стоят на Delayed Start:
После перезагрузки - всё взлетело как надо 🚀.
👉 @win_sysadmin
После обновления Windows Server 2022 один из сервисов перестал стартовать при загрузке, хотя в Services.msc он стоит на Automatic.
Оказалось, что проблема в том, что Windows теперь иногда «умно» откладывает запуск сервисов, помеченных как Automatic (Delayed Start), особенно если система решает, что «надо разгрузить старт».
💡 Решение нашлось простое: проверяем и меняем тип запуска на обычный Automatic через PowerShell:
Set-Service -Name "Имя_сервиса" -StartupType Automatic
А если надо массово проверить и поправить сразу несколько сервисов, которые почему-то стоят на Delayed Start:
Get-Service | Where-Object { $_.StartType -eq 'AutomaticDelayedStart' } |
ForEach-Object { Set-Service -Name $_.Name -StartupType Automatic }
После перезагрузки - всё взлетело как надо 🚀.
👉 @win_sysadmin
👍3🤡2
👋 Привет, админы!
Был случай, на одном Windows Server начали рандомно падать службы, но без явных ошибок в Event Viewer. Логика подсказывала, что дело в правах или зависших сессиях, и, как оказалось, виновником была учетная запись сервиса с истекшим паролем.
Чтобы быстро найти все службы, которые запускаются от нестандартных учетных записей (и проверить, не пора ли менять пароль), есть удобная команда PowerShell:
💡 Эта команда выведет список служб с указанием учетной записи и текущего состояния. Очень удобно перед массовым обновлением паролей или аудитом безопасности.
📌 Дополнительно советую настроить напоминание, чтобы раз в квартал проверять пароли сервисных аккаунтов, меньше будет «сюрпризов» в выходные.
👉 @win_sysadmin
Был случай, на одном Windows Server начали рандомно падать службы, но без явных ошибок в Event Viewer. Логика подсказывала, что дело в правах или зависших сессиях, и, как оказалось, виновником была учетная запись сервиса с истекшим паролем.
Чтобы быстро найти все службы, которые запускаются от нестандартных учетных записей (и проверить, не пора ли менять пароль), есть удобная команда PowerShell:
Get-WmiObject Win32_Service |
Where-Object { $_.StartName -notmatch "LocalSystem|LocalService|NetworkService" } |
Select-Object Name, StartName, State
💡 Эта команда выведет список служб с указанием учетной записи и текущего состояния. Очень удобно перед массовым обновлением паролей или аудитом безопасности.
📌 Дополнительно советую настроить напоминание, чтобы раз в квартал проверять пароли сервисных аккаунтов, меньше будет «сюрпризов» в выходные.
👉 @win_sysadmin
👍8❤1
👋 Привет, админы!
Был случай - Windows Server перестал пускать пользователей по RDP. Ошибка в логах: CredSSP encryption oracle remediation. Классика жанра после свежих обновлений.
💡 Решение оказалось простым: нужно на время ослабить политику проверки CredSSP, чтобы пустить людей, а потом уже обновить клиента.
Сделал так через PowerShell:
Значения параметра:
*
*
*
После правки - RDP снова живой. Но важно потом вернуть настройки и обновить все клиенты, иначе это дыра в безопасности.
👉 @win_sysadmin
Был случай - Windows Server перестал пускать пользователей по RDP. Ошибка в логах: CredSSP encryption oracle remediation. Классика жанра после свежих обновлений.
💡 Решение оказалось простым: нужно на время ослабить политику проверки CredSSP, чтобы пустить людей, а потом уже обновить клиента.
Сделал так через PowerShell:
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters' `
-Name AllowEncryptionOracle -Value 2 -Type DWord
Значения параметра:
*
0 - запрет небезопасных подключений*
1 - только с предупреждением*
2 - разрешить подключение (временно!)После правки - RDP снова живой. Но важно потом вернуть настройки и обновить все клиенты, иначе это дыра в безопасности.
👉 @win_sysadmin
👍4
👋 Привет, админы!
На днях словил кейс: один Windows Server после перезагрузки не поднимал часть сервисов. Лезу в Services.msc - половина служб в состоянии "Starting...", висят и не доходят до Running. Пользователи, конечно, в панике 🙃
📌 Оказалось, что проблема была в том, что несколько зависимых служб стартовали в неправильном порядке. В логах ошибка
🔥 Быстро проверить состояние всех служб удобно через PowerShell:
Эта команда покажет все службы, которые должны стартовать автоматически, но по какой-то причине остановлены.
👉 Если надо принудительно запустить такие службы:
После прогона сервак ожил, все сервисы поднялись, а пользователи снова счастливы 😊
Лайфхак: если у вас такое повторяется часто настройте delayed start для "тяжелых" сервисов или проверьте зависимые службы. Это реально экономит нервы.
👉 @win_sysadmin
На днях словил кейс: один Windows Server после перезагрузки не поднимал часть сервисов. Лезу в Services.msc - половина служб в состоянии "Starting...", висят и не доходят до Running. Пользователи, конечно, в панике 🙃
📌 Оказалось, что проблема была в том, что несколько зависимых служб стартовали в неправильном порядке. В логах ошибка
7000/7001 (Service Control Manager).🔥 Быстро проверить состояние всех служб удобно через PowerShell:
Get-Service | Where-Object {$_.Status -eq 'Stopped' -and $_.StartType -eq 'Automatic'} | Select-Object DisplayName,Name
Эта команда покажет все службы, которые должны стартовать автоматически, но по какой-то причине остановлены.
👉 Если надо принудительно запустить такие службы:
Get-Service | Where-Object {$_.Status -eq 'Stopped' -and $_.StartType -eq 'Automatic'} | Start-Service
После прогона сервак ожил, все сервисы поднялись, а пользователи снова счастливы 😊
Лайфхак: если у вас такое повторяется часто настройте delayed start для "тяжелых" сервисов или проверьте зависимые службы. Это реально экономит нервы.
👉 @win_sysadmin
👍5
👋 Привет, админы!
Сегодня хочу поднять тему, которая периодически спасает админскую жизнь — зависшие службы Windows.
Бывает так, что служба на Windows Server переходит в состояние "Stopping", и ни остановить, ни перезапустить её обычными средствами нельзя. Висит мёртвым грузом, блокируя работу приложения.
🔥 Решение: небольшой скрипт на PowerShell, который убивает процесс, связанный со службой:
После этого службу можно спокойно стартануть:
💡Лайфхак: такой скрипт можно положить в
👉 @win_sysadmin
Сегодня хочу поднять тему, которая периодически спасает админскую жизнь — зависшие службы Windows.
Бывает так, что служба на Windows Server переходит в состояние "Stopping", и ни остановить, ни перезапустить её обычными средствами нельзя. Висит мёртвым грузом, блокируя работу приложения.
🔥 Решение: небольшой скрипт на PowerShell, который убивает процесс, связанный со службой:
$serviceName = "wuauserv" # сюда вписываем имя службы
$service = Get-WmiObject win32_service -Filter "name='$serviceName'"
Stop-Process -Id $service.ProcessId -Force
После этого службу можно спокойно стартануть:
Start-Service -Name $serviceName
💡Лайфхак: такой скрипт можно положить в
.ps1 и запускать от имени администратора, когда что-то "подвисло". Особенно актуально для обновлений и антивирусов, которые любят залипать.👉 @win_sysadmin
🔥3❤1👍1
👋 Привет, админы!
Из личного опыта: один сервер Windows Server 2019 стал жутко тормозить, при этом процессор был свободен, а памяти хватало. Логично, лезем в
Чтобы быстро найти виновника, я использовал PowerShell:
Эта команда показывает топ процессов по дисковым операциям. У меня оказался какой-то бэкапный агент, который ушёл в бесконечный цикл.
⚡ В таких случаях бывает полезно и вот это:
- чтобы понять, кто именно засирает диск записями.
📌 В итоге отключил глючный сервис, нагрузка упала, сервер ожил.
💬 А вы как мониторите дисковую активность? Используете PowerShell, perfmon, сторонние тулзы вроде iometer, Sysinternals Process Explorer?
👉 @win_sysadmin
Из личного опыта: один сервер Windows Server 2019 стал жутко тормозить, при этом процессор был свободен, а памяти хватало. Логично, лезем в
Resource Monitor и видим: диск забит I/O под завязку.Чтобы быстро найти виновника, я использовал PowerShell:
Get-Process | Sort-Object -Property IOReadBytes -Descending | Select-Object -First 10 Name, Id, IOReadBytes, IOWriteBytes
Эта команда показывает топ процессов по дисковым операциям. У меня оказался какой-то бэкапный агент, который ушёл в бесконечный цикл.
⚡ В таких случаях бывает полезно и вот это:
Get-Process | Sort-Object -Property IOWriteBytes -Descending | Select-Object -First 10 Name, Id, IOWriteBytes
- чтобы понять, кто именно засирает диск записями.
📌 В итоге отключил глючный сервис, нагрузка упала, сервер ожил.
💬 А вы как мониторите дисковую активность? Используете PowerShell, perfmon, сторонние тулзы вроде iometer, Sysinternals Process Explorer?
👉 @win_sysadmin
👍9❤1🔥1
♻️ Как сисадмину легально избавиться от кладбища старого железа и получить за это премию
У каждого админа есть своя тайная комната боли. Тот самый склад, под завязку забитый мертвыми свичами, пухлыми батареями от ИБП, горами старых мониторов и сгоревшими серверами эпохи DDR3. Выкинуть это добро в мусорный контейнер нельзя по закону (экология, штрафы, учет драгметаллов), а чтобы списать официально - нужно пройти семь кругов бюрократического ада с бухгалтерией 🤦♂️
Ребята из УтильЭко предлагают решение этой проблемы. Они забирают весь этот зоопарк, сами закрывают вопросы с документами, а вам за организацию процесса выплачивают партнерский бонус.
Как это работает на практике:
🟢 Полный легал для бухгалтерии. Работа идет строго по лицензиям. На выходе ваша компания получает полный пакет закрывающих документов (акты утилизации, паспорта отходов) по всем стандартам 2026 года. Бухгалтеры будут счастливы, юристы спокойны.
🟢 Оценка за 48 часов. Просто выгружаете спецификацию (список железа) и скидываете менеджеру. Через двое суток у вас на руках готовый расчет и условия.
🟢 Никакой физической боли. Логистику, заказ пропусков, грузчиков и вывоз берут на себя. Рвать спину, вытаскивая тяжеленные 4U-шасси и ИБП в Газель, вам не придется.
🟢 Двойная выгода. Относительно ликвидное железо (старые ноутбуки, серверы, СХД) они выкупают, принося вашей компании живые деньги. А откровенный неликвид и мусор - легально утилизируют.
А теперь самое интересное для тех, кто инициирует процесс. За помощь в организации контракта со своей компанией (или вашими клиентами на аутсорсе) УтильЭко выплачивает ИТ-специалисту 20% от суммы сделки. По сути, вы наводите порядок на собственном складе чужими руками и получаете за это отличную премию к зарплате 💸
Если подсобка уже ломится от древнего легаси, пишите менеджеру для консультации и быстрой оценки спецификации:
📩 @izik30
Подробнее прочитать про ребят можно тут ➡️ УтильЭко - утилизация техники для юридических лиц
Реклама. ООО «УТИЛЬЭКО», ИНН: 6685221390, erid: 2Vtzqx6Q4vi
У каждого админа есть своя тайная комната боли. Тот самый склад, под завязку забитый мертвыми свичами, пухлыми батареями от ИБП, горами старых мониторов и сгоревшими серверами эпохи DDR3. Выкинуть это добро в мусорный контейнер нельзя по закону (экология, штрафы, учет драгметаллов), а чтобы списать официально - нужно пройти семь кругов бюрократического ада с бухгалтерией 🤦♂️
Ребята из УтильЭко предлагают решение этой проблемы. Они забирают весь этот зоопарк, сами закрывают вопросы с документами, а вам за организацию процесса выплачивают партнерский бонус.
Как это работает на практике:
🟢 Полный легал для бухгалтерии. Работа идет строго по лицензиям. На выходе ваша компания получает полный пакет закрывающих документов (акты утилизации, паспорта отходов) по всем стандартам 2026 года. Бухгалтеры будут счастливы, юристы спокойны.
🟢 Оценка за 48 часов. Просто выгружаете спецификацию (список железа) и скидываете менеджеру. Через двое суток у вас на руках готовый расчет и условия.
🟢 Никакой физической боли. Логистику, заказ пропусков, грузчиков и вывоз берут на себя. Рвать спину, вытаскивая тяжеленные 4U-шасси и ИБП в Газель, вам не придется.
🟢 Двойная выгода. Относительно ликвидное железо (старые ноутбуки, серверы, СХД) они выкупают, принося вашей компании живые деньги. А откровенный неликвид и мусор - легально утилизируют.
А теперь самое интересное для тех, кто инициирует процесс. За помощь в организации контракта со своей компанией (или вашими клиентами на аутсорсе) УтильЭко выплачивает ИТ-специалисту 20% от суммы сделки. По сути, вы наводите порядок на собственном складе чужими руками и получаете за это отличную премию к зарплате 💸
Если подсобка уже ломится от древнего легаси, пишите менеджеру для консультации и быстрой оценки спецификации:
📩 @izik30
Подробнее прочитать про ребят можно тут ➡️ УтильЭко - утилизация техники для юридических лиц
Реклама. ООО «УТИЛЬЭКО», ИНН: 6685221390, erid: 2Vtzqx6Q4vi
👍4🖕2
👋 Привет, админы!
Однажды произошел интересный случай: Windows Server 2019 начал странно грузить диск - процент активности подскакивает до 100%, а скорость чтения/записи при этом смешная. Сначала подумал на «умирающий» HDD, но диск был SSD и в порядке.
🔍 Виновником оказался Superfetch (SysMain) - служба, которая подгружает часто используемые данные в память. На рабочих станциях это иногда ускоряет запуск приложений, но на сервере с ограниченными ресурсами может наоборот создать узкое место.
📌 Быстро проверить, кто именно грузит диск, можно так:
А отключить SysMain - вот так:
После этого нагрузка сразу упала, сервер задышал нормально.
⚡ Совет: если замечаете постоянные пики дисковой активности без реальной нагрузки - первым делом проверьте службы, а не гоните сразу менять диск.
👉 @win_sysadmin
Однажды произошел интересный случай: Windows Server 2019 начал странно грузить диск - процент активности подскакивает до 100%, а скорость чтения/записи при этом смешная. Сначала подумал на «умирающий» HDD, но диск был SSD и в порядке.
🔍 Виновником оказался Superfetch (SysMain) - служба, которая подгружает часто используемые данные в память. На рабочих станциях это иногда ускоряет запуск приложений, но на сервере с ограниченными ресурсами может наоборот создать узкое место.
📌 Быстро проверить, кто именно грузит диск, можно так:
Get-Process | Sort-Object IOReadBytes, IOWriteBytes -Descending |
Select-Object -First 10 -Property ProcessName, Id, IOReadBytes, IOWriteBytes
А отключить SysMain - вот так:
Stop-Service -Name "SysMain" -Force
Set-Service -Name "SysMain" -StartupType Disabled
После этого нагрузка сразу упала, сервер задышал нормально.
⚡ Совет: если замечаете постоянные пики дисковой активности без реальной нагрузки - первым делом проверьте службы, а не гоните сразу менять диск.
👉 @win_sysadmin
👍8❤1🔥1💋1
👋 Привет, админы!
Кейс, пользователи жаловались, что RDP подключение стало "подвисать" или разрывается, а на сервере при этом всё вроде бы нормально.
🔥 Быстрый способ проверить, кто сейчас подключен по RDP и откуда, - это команда:
Она покажет список активных сессий, пользователей и их состояния.
Если хочется автоматизировать и видеть больше деталей (например, IP-адреса подключений), то можно использовать PowerShell:
А если нужно посмотреть, с какого IP-шника юзер коннектится, то тут уже помогает журнал событий:
👉 @win_sysadmin
Кейс, пользователи жаловались, что RDP подключение стало "подвисать" или разрывается, а на сервере при этом всё вроде бы нормально.
🔥 Быстрый способ проверить, кто сейчас подключен по RDP и откуда, - это команда:
quser
Она покажет список активных сессий, пользователей и их состояния.
Если хочется автоматизировать и видеть больше деталей (например, IP-адреса подключений), то можно использовать PowerShell:
Get-CimInstance Win32_LogonSession -Filter "LogonType = 10" |
ForEach-Object {
$logon = $_
Get-CimAssociatedInstance -InputObject $logon -ResultClassName Win32_LoggedOnUser |
ForEach-Object {
[PSCustomObject]@{
User = $_.Antecedent.Name
Domain = $_.Antecedent.Domain
LogonId = $logon.LogonId
StartTime = $logon.StartTime
}
}
}
А если нужно посмотреть, с какого IP-шника юзер коннектится, то тут уже помогает журнал событий:
Get-WinEvent -LogName "Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational" |
Where-Object { $_.Id -eq 1149 } |
Select-Object TimeCreated, @{n='User';e={$_.Properties[1].Value}}, @{n='IP';e={$_.Properties[2].Value}} |
Sort-Object TimeCreated -Descending | Select-Object -First 10
👉 @win_sysadmin
👍8🔥6
👋 Привет, админы!
Мини-лайфхак из области hardening. Один из первых шагов при проверке безопасности сервера - убедиться, что в локальной группе Administrators нет лишних пользователей. Иногдп туда "по ошибке" добавляют кого угодно - от сервисных аккаунтов до обычных юзеров.
🛠️ Проверить состав группы можно так:
Команда сразу покажет всех участников: локальных пользователей, группы и даже доменные аккаунты, если машина в AD.
Для быстрой проверки в доменной среде удобно прогнать скрипт сразу по всем серверам:
Так можно сразу отловить "левые" учётки на всех узлах.
💡Добавьте регулярный аудит этой группы в свои скрипты мониторинга или через GPO/Defender for Identity. Часто именно здесь прячется backdoor.
👉 @win_sysadmin
Мини-лайфхак из области hardening. Один из первых шагов при проверке безопасности сервера - убедиться, что в локальной группе Administrators нет лишних пользователей. Иногдп туда "по ошибке" добавляют кого угодно - от сервисных аккаунтов до обычных юзеров.
🛠️ Проверить состав группы можно так:
Get-LocalGroupMember -Group "Administrators"
Команда сразу покажет всех участников: локальных пользователей, группы и даже доменные аккаунты, если машина в AD.
Для быстрой проверки в доменной среде удобно прогнать скрипт сразу по всем серверам:
$servers = @("srv01","srv02","srv03")
foreach ($s in $servers) {
Invoke-Command -ComputerName $s -ScriptBlock {
Write-Host "===== $env:COMPUTERNAME ====="
Get-LocalGroupMember -Group "Administrators"
}
}
Так можно сразу отловить "левые" учётки на всех узлах.
💡Добавьте регулярный аудит этой группы в свои скрипты мониторинга или через GPO/Defender for Identity. Часто именно здесь прячется backdoor.
👉 @win_sysadmin
👍6🔥2
👋 Привет, админы!
Бывает такое, что сервер достался “по наследству”, всё вроде работает, но внутри - куча сюрпризов. Один из самых частых - в локальных администраторах сидят учётки, о которых никто и не помнит.
🔥 Для быстрой диагностики можно прогнать вот такой скрипт:
Здесь сразу видно: это локальный пользователь, доменный, или кто-то притащен через группу. Поле
А если нужно найти только “подозрительных” локальных юзеров, можно сделать так:
👌 Очень полезно проверять такие вещи на серверах после изменений или перед аудитом безопасности. У меня однажды всплыл старый техаккаунт с правами админа, который никто не использовал уже несколько лет.
👉 @win_sysadmin
Бывает такое, что сервер достался “по наследству”, всё вроде работает, но внутри - куча сюрпризов. Один из самых частых - в локальных администраторах сидят учётки, о которых никто и не помнит.
🔥 Для быстрой диагностики можно прогнать вот такой скрипт:
$admins = Get-LocalGroupMember -Group "Administrators"
$admins | Select-Object Name, ObjectClass, PrincipalSource
Здесь сразу видно: это локальный пользователь, доменный, или кто-то притащен через группу. Поле
PrincipalSource подскажет, откуда взялся доступ.А если нужно найти только “подозрительных” локальных юзеров, можно сделать так:
$admins | Where-Object { $_.ObjectClass -eq 'User' -and $_.PrincipalSource -eq 'Local' }
👌 Очень полезно проверять такие вещи на серверах после изменений или перед аудитом безопасности. У меня однажды всплыл старый техаккаунт с правами админа, который никто не использовал уже несколько лет.
👉 @win_sysadmin
👍9
👋 Привет, админы!
На днях поймал «скрытый» источник проблем: сервер вроде живой, патчи ставятся, но после обновлений часть софта ведёт себя странно. Виновник - ожидающая перезагрузка (pending reboot), про которую забыли. Решил поделиться быстрой проверкой по паре десятков машин.
🔥 Функция PowerShell, которая показывает признаки pending reboot локально или удалённо (через WinRM):
⚙️ Пример использования по списку серверов и экспорт в отчёт:
💡Аккуратный перезапуск только тех, у кого
Итог: такой мини-аудит часто спасает от «мистики» после патчей и помогает планировать окна на рестарт.
💬 А вы как отслеживаете pending reboot в проде - через Zabbix/PRTG, скриптами по расписанию или отдаёте это WSUS/Intune? Поделитесь практикой!
👉 @win_sysadmin
На днях поймал «скрытый» источник проблем: сервер вроде живой, патчи ставятся, но после обновлений часть софта ведёт себя странно. Виновник - ожидающая перезагрузка (pending reboot), про которую забыли. Решил поделиться быстрой проверкой по паре десятков машин.
🔥 Функция PowerShell, которая показывает признаки pending reboot локально или удалённо (через WinRM):
function Test-PendingReboot {
[CmdletBinding()]
param(
[string[]]$ComputerName = $env:COMPUTERNAME
)
Invoke-Command -ComputerName $ComputerName -ScriptBlock {
$cbs = Test-Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending'
$wu = Test-Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired'
$pfr = (Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager' `
-Name 'PendingFileRenameOperations' -ErrorAction SilentlyContinue
).PendingFileRenameOperations
$pendingFile = ($pfr -is [array] -and $pfr.Count -gt 0) -or ($pfr -is [string] -and $pfr.Length -gt 0)
$rename = (Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName' `
-Name 'ComputerName' -ErrorAction SilentlyContinue
).ComputerName -ne
(Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName' `
-Name 'ComputerName' -ErrorAction SilentlyContinue
).ComputerName
[PSCustomObject]@{
ComputerName = $env:COMPUTERNAME
CBS = $cbs
WindowsUpdate = $wu
PendingFile = $pendingFile
Rename = $rename
Pending = $cbs -or $wu -or $pendingFile -or $rename
}
} | Sort-Object Pending -Descending, ComputerName
}
⚙️ Пример использования по списку серверов и экспорт в отчёт:
$servers = 'srv01','srv02','srv03'
Test-PendingReboot -ComputerName $servers |
Tee-Object -FilePath .\PendingReboot.csv
💡Аккуратный перезапуск только тех, у кого
Pending -eq $true (сначала обязательно с -WhatIf!):
$toReboot = Test-PendingReboot -ComputerName $servers | Where-Object Pending
$toReboot.ComputerName | Restart-Computer -Force -Wait -For PowerShell -Timeout 600 -Delay 5 -WhatIf
Итог: такой мини-аудит часто спасает от «мистики» после патчей и помогает планировать окна на рестарт.
💬 А вы как отслеживаете pending reboot в проде - через Zabbix/PRTG, скриптами по расписанию или отдаёте это WSUS/Intune? Поделитесь практикой!
👉 @win_sysadmin
👍6
👋 Привет, админы!
Недавно был случай: RDP сессия вроде поднимается, но сразу выкидывает ошибку. Пользователь уверен, что "сервер умер", но на деле виновата была… сетевая политика шифрования.
Когда возникают такие проблемы, я начинаю с базовой диагностики:
1️⃣ Проверяю, что на сервере реально включен RDP:
Если вернёт
2️⃣ Проверяю, не задушил ли доступ фаервол:
Все правила должны быть включены (
3️⃣ И финальная проверка - соответствует ли клиент требуемому уровню шифрования. Иногда помогает понизить уровень на сервере:
(где
🔥 Итог: в моём случае стояло
💬 А у вас часто встречаются проблемы именно из-за криптополитик и сертификатов при RDP? Или в проде сразу подкручиваете свои шаблоны GPO?
👉 @win_sysadmin
Недавно был случай: RDP сессия вроде поднимается, но сразу выкидывает ошибку. Пользователь уверен, что "сервер умер", но на деле виновата была… сетевая политика шифрования.
Когда возникают такие проблемы, я начинаю с базовой диагностики:
1️⃣ Проверяю, что на сервере реально включен RDP:
(Get-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server").fDenyTSConnections
Если вернёт
1 - значит подключения запрещены. Лечим так:
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server" -Name fDenyTSConnections -Value 0
2️⃣ Проверяю, не задушил ли доступ фаервол:
Get-NetFirewallRule -DisplayGroup "Remote Desktop"
Все правила должны быть включены (
Enabled : True).3️⃣ И финальная проверка - соответствует ли клиент требуемому уровню шифрования. Иногда помогает понизить уровень на сервере:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name SecurityLayer -Value 1
(где
0 – без шифрования, 1 – RDP Security Layer, 2 – SSL).🔥 Итог: в моём случае стояло
2 (SSL), а сертификат был битый. Переключил на 1, и вход сразу заработал.💬 А у вас часто встречаются проблемы именно из-за криптополитик и сертификатов при RDP? Или в проде сразу подкручиваете свои шаблоны GPO?
👉 @win_sysadmin
👍8