👋 Привет, админы!
Сегодня хочу поднять тему, которая периодически спасает админскую жизнь — зависшие службы 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
👍9🔥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
👍10
👋 Привет, админы!
На днях поймал «скрытый» источник проблем: сервер вроде живой, патчи ставятся, но после обновлений часть софта ведёт себя странно. Виновник - ожидающая перезагрузка (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
🚀 Подборка полезных 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 Типичный Сисадмин
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 Свежие новости Москвы
Системное администрирование, 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 Типичный Сисадмин
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 Свежие новости Москвы
MAX
Bash Советы - Bash Scripting | Linux Terminal & Shell. Скри…
Укроти командную строку. Пишем эффективные Bash-скрипты для сервера и десктопа. Магия текстовой обработки: Grep, Sed, Awk и регулярные выражения (Regex). Настр…
👎10👍2
👋 Привет, админы!
Накидал быстрый чек-скриптl, который опрашивает хосты/порты и показывает, когда сертификат сгорит.
Быстрый чек одного хоста
Скан нескольких целей + статус
Плюс: можно крутить по расписанию в Task Scheduler и слать уведомления, если
👉 @win_sysadmin
Накидал быстрый чек-скриптl, который опрашивает хосты/порты и показывает, когда сертификат сгорит.
Быстрый чек одного хоста
$HostName = 'site.contoso.com'
$Port = 443
$tcp = [Net.Sockets.TcpClient]::new($HostName, $Port)
$ssl = [Net.Security.SslStream]::new($tcp.GetStream(), $false, { $true })
$ssl.AuthenticateAsClient($HostName)
$cert = [Security.Cryptography.X509Certificates.X509Certificate2]::new($ssl.RemoteCertificate)
[pscustomobject]@{
Host = $HostName
Port = $Port
Subject = $cert.Subject
NotAfter = $cert.NotAfter
DaysLeft = [math]::Floor(($cert.NotAfter - (Get-Date)).TotalDays)
}
$ssl.Dispose(); $tcp.Close()
Скан нескольких целей + статус
$targets = @(
'site1.contoso.com:443',
'mail.contoso.com:993',
'rdgw.contoso.com:443'
)
$result = foreach ($t in $targets) {
$host,$port = $t.Split(':',2)
try {
$tcp = [Net.Sockets.TcpClient]::new($host,[int]$port)
$ssl = [Net.Security.SslStream]::new($tcp.GetStream(), $false, { $true })
$ssl.AuthenticateAsClient($host)
$cert = [Security.Cryptography.X509Certificates.X509Certificate2]::new($ssl.RemoteCertificate)
$days = [math]::Floor(($cert.NotAfter - (Get-Date)).TotalDays)
[pscustomobject]@{
Host = $host
Port = [int]$port
CN = $cert.GetNameInfo('SimpleName',$false)
NotAfter = $cert.NotAfter
DaysLeft = $days
Status = if ($days -le 14) { '🔥 expiring ≤14d' }
elseif ($days -le 30) { '⚠️ <30d' }
else { '✅ ok' }
}
}
catch {
[pscustomobject]@{
Host=$host; Port=[int]$port; CN=$null; NotAfter=$null; DaysLeft=$null
Status="❌ error: $($_.Exception.Message)"
}
}
finally {
if ($ssl) { $ssl.Dispose() }
if ($tcp) { $tcp.Close() }
}
}
$result | Sort-Object DaysLeft | Format-Table -AutoSize
# Для отчёта:
# $result | Export-Csv .\tls_report.csv -NoTypeInformation -Encoding UTF8
Плюс: можно крутить по расписанию в Task Scheduler и слать уведомления, если
DaysLeft ≤ 30. Спасает от «неожиданных» падений продакшна.👉 @win_sysadmin
👍7🔥2
👋 Привет, админы!
Сегодня хочу поделиться полезным набором приёмов из PowerShell, которые помогают собирать информацию о компьютерах в сети. Часто это нужно при инвентаризации, аудитах или когда приходится быстро проверить состояние сразу нескольких машин.
🔥 Пример базового скрипта для сбора информации:
👉 Такой скрипт выдаст:
- имя и модель ПК,
- производителя,
- объём RAM,
- версию ОС, разрядность,
- время последней загрузки.
💡 Если нужно массово собирать данные, удобнее результаты складывать в CSV:
В итоге получаем аккуратный файл с данными по всем машинам, который можно открыть в Excel и фильтровать по любым параметрам.
💬 А как вы ведёте инвентаризацию парка машин? Excel, CMDB, Intune, SCCM или свои самописные скрипты?
👉 @win_sysadmin
Сегодня хочу поделиться полезным набором приёмов из PowerShell, которые помогают собирать информацию о компьютерах в сети. Часто это нужно при инвентаризации, аудитах или когда приходится быстро проверить состояние сразу нескольких машин.
🔥 Пример базового скрипта для сбора информации:
$computers = "PC1","PC2","PC3"
foreach ($c in $computers) {
Write-Host "Собираю данные с $c..."
Get-WmiObject -Class Win32_ComputerSystem -ComputerName $c |
Select-Object Name, Manufacturer, Model, TotalPhysicalMemory
Get-WmiObject -Class Win32_OperatingSystem -ComputerName $c |
Select-Object Caption, Version, OSArchitecture, LastBootUpTime
}
👉 Такой скрипт выдаст:
- имя и модель ПК,
- производителя,
- объём RAM,
- версию ОС, разрядность,
- время последней загрузки.
💡 Если нужно массово собирать данные, удобнее результаты складывать в CSV:
$results = foreach ($c in $computers) {
Get-WmiObject -Class Win32_OperatingSystem -ComputerName $c |
Select-Object PSComputerName, Caption, Version, LastBootUpTime
}
$results | Export-Csv "C:\Temp\computers.csv" -NoTypeInformation -Encoding UTF8
В итоге получаем аккуратный файл с данными по всем машинам, который можно открыть в Excel и фильтровать по любым параметрам.
💬 А как вы ведёте инвентаризацию парка машин? Excel, CMDB, Intune, SCCM или свои самописные скрипты?
👉 @win_sysadmin
👍9🔥2
👋 Всем админам доброго вечера!
Сегодня поделюсь приёмом, который реально спасает, когда пользователи жалуются на «медленный интернет» или «сетевые лаги». Чаще всего виноват вовсе не провайдер, а перегруженные сетевые интерфейсы на самом сервере.
🔥 Проверить статистику адаптеров можно так:
Команда показывает количество принятых/отправленных байт и ошибки на интерфейсе. Если видите рост
А если нужно онлайн-мониторинг, можно добавить цикл:
Так можно «подсматривать» за интерфейсом в реальном времени.
👉 @win_sysadmin
Сегодня поделюсь приёмом, который реально спасает, когда пользователи жалуются на «медленный интернет» или «сетевые лаги». Чаще всего виноват вовсе не провайдер, а перегруженные сетевые интерфейсы на самом сервере.
🔥 Проверить статистику адаптеров можно так:
Get-NetAdapterStatistics | Select-Object Name, ReceivedBytes, SentBytes, ReceivedErrors, OutboundErrors
Команда показывает количество принятых/отправленных байт и ошибки на интерфейсе. Если видите рост
ReceivedErrors или OutboundErrors - значит, проблемы в железе, драйвере или кабеле.А если нужно онлайн-мониторинг, можно добавить цикл:
while ($true) {
Get-NetAdapterStatistics -Name "Ethernet0" |
Select-Object Name, ReceivedErrors, OutboundErrors
Start-Sleep -Seconds 5
}
Так можно «подсматривать» за интерфейсом в реальном времени.
👉 @win_sysadmin
👍12🔥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 и др.
https://max.ru/tipsysdmin Типичный Сисадмин
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 Свежие новости Москвы
Системное администрирование, 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 Типичный Сисадмин
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 Свежие новости Москвы
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). Раб…
💩9👍1
👋 Привет, админы!
Сегодня расскажу о небольшом, но полезном трюке для мониторинга дисков в Windows через PowerShell. Иногда места на сервере внезапно становится критически мало, и если не отследить вовремя - можно получить падение сервисов или невозможность сохранить логи.
Он показывает:
- Имя диска
- Свободное место (ГБ)
- Процент занятости
Можно добавить в планировщик задач и получать отчёт на почту или писать лог. А если подключить это к мониторингу (например, через Zabbix/PRTG), то сервер сам предупредит о критическом заполнении.
👉 @win_sysadmin
Сегодня расскажу о небольшом, но полезном трюке для мониторинга дисков в Windows через PowerShell. Иногда места на сервере внезапно становится критически мало, и если не отследить вовремя - можно получить падение сервисов или невозможность сохранить логи.
Get-PSDrive -PSProvider FileSystem | Select-Object Name,@{n="FreeGB";e={[math]::Round($_.Free/1GB,2)}},@{n="Used%";e={[math]::Round(100-($_.Free/$_.Used+ $_.Free)*100,2)}}
Он показывает:
- Имя диска
- Свободное место (ГБ)
- Процент занятости
Можно добавить в планировщик задач и получать отчёт на почту или писать лог. А если подключить это к мониторингу (например, через Zabbix/PRTG), то сервер сам предупредит о критическом заполнении.
👉 @win_sysadmin
👍5
👋 Админы, всем доброго понедельника!
Сегодня напомню про недооценённый инструмент - PowerShell-диски (PSDrive). Это логические “диски” к разным хранилищам: файловая система (
🧭 Базовые команды:
(И да,
🧩 Создание своих “дисков”:
⚠️ Такие диски живут в текущей сессии. Хотите постоянно - добавьте
🧹 Удаление:
Нельзя удалить диск, если вы “на нём” (сначала
💡 Лайфхаки из практики:
- Держите короткие алиасы на длинные ветки реестра для быстрых правок.
- Для огляда системы делайте
- В профиле храните свои стандартные монтирования для админских задач.
👉 @win_sysadmin
Сегодня напомню про недооценённый инструмент - PowerShell-диски (PSDrive). Это логические “диски” к разным хранилищам: файловая система (
C:), реестр (HKCU:/HKLM:), сертификаты (Cert:) и т.д. С ними удобно навигироваться одинаково, одной логикой командлетов Location. 🧭 Базовые команды:
# Показать все доступные PSDrive
Get-PSDrive
# Отфильтровать только файловую систему
Get-PSDrive -PSProvider FileSystem
# Навигация по реестру как по папкам
Set-Location HKLM:\SOFTWARE
Push-Location .\Microsoft
Get-Location
(И да,
Get-PSDrive покажет и провайдеры вроде Registry/Certificate/Environment - удобно для обзора). 🧩 Создание своих “дисков”:
# Монтируем удобный ярлык на папку
New-PSDrive -Name Tools -PSProvider FileSystem -Root "C:\Admin\Tools"
# Короткий путь к важной ветке реестра
New-PSDrive -Name CV -PSProvider Registry -Root HKLM:\Software\Microsoft\Windows\CurrentVersion
⚠️ Такие диски живут в текущей сессии. Хотите постоянно - добавьте
New-PSDrive в профиль ($PROFILE).🧹 Удаление:
Remove-PSDrive -Name Tools
Нельзя удалить диск, если вы “на нём” (сначала
Set-Location в другое место). 💡 Лайфхаки из практики:
- Держите короткие алиасы на длинные ветки реестра для быстрых правок.
- Для огляда системы делайте
Get-PSDrive | Format-Table Name,Provider,Root -Auto.- В профиле храните свои стандартные монтирования для админских задач.
👉 @win_sysadmin
👍7🔥3
🚀 Подборка полезных 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 Типичный Сисадмин
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 Свежие новости Москвы
Системное администрирование, 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 Типичный Сисадмин
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 Свежие новости Москвы
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). Раб…
👎8
👋 Всем админам доброго утра!
Продолжаю тему теневых копий в Windows - на этот раз чисто PowerShell-практика. Теневые копии (VSS) не раз спасали меня, когда нужно быстро вернуть удалённый файл без полноценного восстановления из бэкапа. Ниже - мой минималистичный «набор выживальщика»: создать снапшот, смонтировать, вытащить файл, почистить и настроить расписание.
🚀 Базовые операции VSS через PowerShell
Создать теневую копию тома C:
Список доступных теневых копий:
Смонтировать самую свежую копию в папку (удобно лазить по снапшоту проводником):
Вытянуть конкретный файл из последней копии (без монтирования):
Удалить конкретную теневую копию:
🧠 Управление хранилищем теневых копий
Проверить и ограничить размер:
👉 Если места мало - VSS начнёт сносить самые старые копии. Планируйте «MaxSize».
⏰ Планирование ежедневного снапшота (02:00)
🔒 Безопасность и мониторинг
- Рансомварь любит грохать VSS: ищите команды вроде
Логи: включите аудит создания процессов (Sysmon Event ID 1) и подпишите правила под эти утилиты и ключевые слова в командной строке.
- Ограничьте утилиты: на рабочих станциях, где VSS админам не нужен — AppLocker/WDAC для
- Журналы VSS: заглядывайте в Application и Microsoft-Windows-Volume Shadow Copy/Operational при сбоях провайдера.
🧩 Типичные затыки и лайфхаки
- Доступа нет к путям снапшота — добавляйте
- Недостаточно места — расширьте
- Нужны «предыдущие версии» для пользователей - ставьте
👉 @win_sysadmin
Продолжаю тему теневых копий в Windows - на этот раз чисто PowerShell-практика. Теневые копии (VSS) не раз спасали меня, когда нужно быстро вернуть удалённый файл без полноценного восстановления из бэкапа. Ниже - мой минималистичный «набор выживальщика»: создать снапшот, смонтировать, вытащить файл, почистить и настроить расписание.
🚀 Базовые операции VSS через PowerShell
Создать теневую копию тома C:
# PS 5.1/7+ (через CIM)
Invoke-CimMethod -ClassName Win32_ShadowCopy -MethodName Create `
-Arguments @{ Volume = 'C:\'; Context = 'ClientAccessible' } | Out-Null
Список доступных теневых копий:
Get-CimInstance Win32_ShadowCopy |
Sort-Object InstallDate -Descending |
Format-Table ID, VolumeName, InstallDate, ClientAccessible, DeviceObject -Auto
Смонтировать самую свежую копию в папку (удобно лазить по снапшоту проводником):
$sh = Get-CimInstance Win32_ShadowCopy | Sort-Object InstallDate -Desc | Select-Object -First 1
$mount = 'C:\ShadowMounts\C_latest'
New-Item -ItemType Directory -Path $mount -Force | Out-Null
$dev = ($sh.DeviceObject.TrimEnd('\')) + '\'
cmd /c "mklink /d `"$mount`" `"$dev`""
# Готово: открывайте C:\ShadowMounts\C_latest
Вытянуть конкретный файл из последней копии (без монтирования):
$path = 'C:\Data\report.xlsx' # что хотим вернуть
$sh = Get-CimInstance Win32_ShadowCopy | Sort-Object InstallDate -Desc | Select-Object -First 1
$rel = $path -replace '^[A-Za-z]:\\','' # убрать "C:\"
$src = Join-Path ( ($sh.DeviceObject.TrimEnd('\')) + '\' ) $rel
Copy-Item $src $path -Force
Удалить конкретную теневую копию:
$sh | Remove-CimInstance
🧠 Управление хранилищем теневых копий
Проверить и ограничить размер:
vssadmin list shadowstorage
vssadmin resize shadowstorage /For=C: /On=C: /MaxSize=20%
👉 Если места мало - VSS начнёт сносить самые старые копии. Планируйте «MaxSize».
⏰ Планирование ежедневного снапшота (02:00)
$cmd = 'powershell.exe'
$arg = '-NoProfile -WindowStyle Hidden -Command "Invoke-CimMethod -ClassName Win32_ShadowCopy -MethodName Create -Arguments @{Volume=''C:\'';Context=''ClientAccessible''} | Out-Null"'
$action = New-ScheduledTaskAction -Execute $cmd -Argument $arg
$trigger = New-ScheduledTaskTrigger -Daily -At 02:00
Register-ScheduledTask -TaskName 'Daily-VSS-C' -Action $action -Trigger $trigger -RunLevel Highest
На серверах с PowerShell 7 можно заменитьpowershell.exeнаpwsh.exe.
🔒 Безопасность и мониторинг
- Рансомварь любит грохать VSS: ищите команды вроде
vssadmin delete shadows /all /quiet, wmic shadowcopy delete, diskshadow.exe.Логи: включите аудит создания процессов (Sysmon Event ID 1) и подпишите правила под эти утилиты и ключевые слова в командной строке.
- Ограничьте утилиты: на рабочих станциях, где VSS админам не нужен — AppLocker/WDAC для
vssadmin.exe, wmic.exe, diskshadow.exe.- Журналы VSS: заглядывайте в Application и Microsoft-Windows-Volume Shadow Copy/Operational при сбоях провайдера.
🧩 Типичные затыки и лайфхаки
- Доступа нет к путям снапшота — добавляйте
\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopyN\ в исключения антивируса на время операций.- Недостаточно места — расширьте
shadowstorage или поменяйте диск-хранилище: /For=C: /On=D:.- Нужны «предыдущие версии» для пользователей - ставьте
Context='ClientAccessible' (или ClientAccessibleWriters для VSS-aware приложений).👉 @win_sysadmin
👍5🔥5❤1🙏1
👋 Всем админам доброго утра!
Сегодня разберем автоматическое обновление групповых политик (GPO) на клиентах без необходимости ждать стандартного обновления (которое бывает раз в 90 минут + случайное отклонение до 30 минут).
🔥 Если вам нужно срочно применить новую политику, используйте:
Но что, если нужно обновить политику на всех компьютерах домена сразу? Тут поможет PowerShell:
А если нужно массово обновить политики на всех машинах в OU? Тогда можно так:
🔹 gpupdate
🔹 Invoke-GPUpdate - удобен для удаленного обновления GPO.
🔹 Комбинация с Get-ADComputer - идеальна для массового обновления в домене.
👉 @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
👍15❤3
👋 Привет, админы!
Сегодня разберем одну из самых неприятных ситуаций – когда пользователи жалуются, что их учетные записи блокируются без видимых причин. Разбираешься в логах – а там Event ID 4740 с минимумом информации. Что делать?
🔥 PowerShell спасает! Вот скрипт, который поможет быстро найти источник блокировки:
Этот код просканирует журнал безопасности, найдет все события 4740 (блокировка учетной записи) и покажет кто именно заблокировал пользователя. Если видите странные IP-адреса или подозрительные устройства – пора разбираться!
💡 Если хотите автоматически мониторить блокировки и получать уведомления, можно настроить Scheduled Task с этим скриптом или завязать на SIEM.
👉 @win_sysadmin
Сегодня разберем одну из самых неприятных ситуаций – когда пользователи жалуются, что их учетные записи блокируются без видимых причин. Разбираешься в логах – а там Event ID 4740 с минимумом информации. Что делать?
🔥 PowerShell спасает! Вот скрипт, который поможет быстро найти источник блокировки:
$LockedUser = "user@domain.com" # Замените на нужный аккаунт
Get-WinEvent -LogName Security | Where-Object {
$_.Id -eq 4740 -and $_.Message -match $LockedUser
} | Select-Object TimeCreated, @{n="Источник";e={($_.Properties[1].Value)}}
Этот код просканирует журнал безопасности, найдет все события 4740 (блокировка учетной записи) и покажет кто именно заблокировал пользователя. Если видите странные IP-адреса или подозрительные устройства – пора разбираться!
💡 Если хотите автоматически мониторить блокировки и получать уведомления, можно настроить Scheduled Task с этим скриптом или завязать на SIEM.
👉 @win_sysadmin
👍8🔥5❤1
👋 Привет, админы!
Сегодня разберем скрытых пожирателей ресурсов в Windows и как их быстро выявить.
Бывает, сервер вроде бы работает, но периодически подтормаживает. CPU не загружен, RAM в норме, диск не трещит, а лаги есть. В таких случаях я первым делом проверяю скрытые потребители ресурсов, которых не видно в обычном диспетчере задач.
🔥 Вот парочка полезных команд в PowerShell, которые помогут найти виновника:
1️⃣ Процессы с аномально высоким потреблением дескрипторов (например, утечки в сервисах):
Если видите процесс с сотнями тысяч дескрипторов – это тревожный звоночек.
2️⃣ Проверка использования сети процессами (чтобы вычислить неожиданно болтливые службы):
Выяснит, какие процессы держат максимум соединений. Особенно полезно, если сервер внезапно грузит сеть.
3️⃣ Файлы, которые держит процесс (можно отследить, кто блокирует файлы или грузит диск):
Это поможет найти виновника, если диск занят, но не ясно, кто именно активничает.
👉 @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
👍8🔥2❤1💯1