🪟 Windows: Ищем «тяжелые» файлы через PowerShell за секунду 📂
Когда на файловом сервере внезапно кончается место, стандартный поиск Windows Explorer — это боль. Пока он проиндексирует миллион файлов, пройдет вечность.
Скрипт для поиска ТОП-10 самых больших файлов:
Ты можешь запустить это удаленно через Invoke-Command сразу на 10 серверах и узнать, где завалялся забытый ISO-образ или гигантский лог Exchange.
#windows #powershell #sysadmin #diskspace #automation #server #maintenance
Когда на файловом сервере внезапно кончается место, стандартный поиск Windows Explorer — это боль. Пока он проиндексирует миллион файлов, пройдет вечность.
PowerShell делает это быстрее и сразу выдает результат в удобном виде.
Скрипт для поиска ТОП-10 самых больших файлов:
Get-ChildItem -Path "C:\Data" -Recurse -File -ErrorAction SilentlyContinue |
Sort-Object Length -Descending |
Select-Object Name, @{Name="Size(GB)";Expression={$_.Length / 1GB}}, Directory |
Select-Object -First 10 |
Format-Table -AutoSize
Ты можешь запустить это удаленно через Invoke-Command сразу на 10 серверах и узнать, где завалялся забытый ISO-образ или гигантский лог Exchange.
#windows #powershell #sysadmin #diskspace #automation #server #maintenance
Иллюзия вечного стресса, или как вести 5 проектов 🧘♂️
В IT-тусовке есть стереотип: если у тебя больше одной работы, то ты спишь по три часа в обнимку с сервером, питаешься энергетиками и дергаешься от каждого пуша в телефоне.
Давайте разрушим этот миф. Пять работ — это вообще не про стресс. Это про грамотную архитектуру и автоматизацию. Если твоя инфраструктура заставляет тебя потеть и седеть — значит, ты просто плохо её настроил.
Как выглядит работа здорового человека:
В идеале, твой рабочий день — это выйти на балкон, спокойно выкурить Chapman Compact, посмотреть на зеленые дашборды в Grafana и пойти заниматься своими делами.Сисадмин работает не когда он стучит по клавиатуре, а когда система работает без него.
#жиза #sysadmin #worklifebalance #automation #admin_future
В IT-тусовке есть стереотип: если у тебя больше одной работы, то ты спишь по три часа в обнимку с сервером, питаешься энергетиками и дергаешься от каждого пуша в телефоне.
Давайте разрушим этот миф. Пять работ — это вообще не про стресс. Это про грамотную архитектуру и автоматизацию. Если твоя инфраструктура заставляет тебя потеть и седеть — значит, ты просто плохо её настроил.
Как выглядит работа здорового человека:
1. Ты потратил месяц, чтобы выстроить всё через IaC (Ansible/Terraform).
2. Ты настроил алерты так, чтобы они срабатывали до того, как всё рухнет.
3. Ты научил пользователей заводить тикеты, а не писать в личку «тут всё сломалось».
В идеале, твой рабочий день — это выйти на балкон, спокойно выкурить Chapman Compact, посмотреть на зеленые дашборды в Grafana и пойти заниматься своими делами.
#жиза #sysadmin #worklifebalance #automation #admin_future
🚀 DevOps: Очистка старых Docker-образов по расписанию 🧹
Если твой сервер внезапно перестал отвечать, проверь место на диске. Часто причиной становятся гигабайты «висячих» (dangling) слоев и старых образов Docker, которые копятся после каждого деплоя. В 2026-м ручная чистка — это моветон.
Техническое решение:
Команда для тотальной, но безопасной чистки:
Фильтр until=168h удалит только те образы, которые старше недели, оставив свежие билды для быстрого отката (rollback).
#docker #devops #optimization #linux #cleanup #sysadmin #automation #admin_future
Если твой сервер внезапно перестал отвечать, проверь место на диске. Часто причиной становятся гигабайты «висячих» (dangling) слоев и старых образов Docker, которые копятся после каждого деплоя. В 2026-м ручная чистка — это моветон.
Техническое решение:
Используем встроенную систему очистки Docker с фильтрами, чтобы не снести лишнее.
Команда для тотальной, но безопасной чистки:
# Удалить все неиспользуемые контейнеры, сети и образы (dangling)
docker system prune -f
# Удалить вообще все образы, которые не используются ни одним запущенным контейнером
docker image prune -a --force --filter "until=168h"
Фильтр until=168h удалит только те образы, которые старше недели, оставив свежие билды для быстрого отката (rollback).
#docker #devops #optimization #linux #cleanup #sysadmin #automation #admin_future
🪟 Windows Server: Гроза «зависших» сессий — PowerShell-скрипт для очистки RDP 🧹
Знакомая ситуация: ты пытаешься зайти на сервер по RDP, а он тебе: «Превышено максимальное число подключений». Кто-то из коллег просто закрыл крестиком окно вместо Log off, и сессия висит «призраком», занимая слот.
Не нужно гадать, кто это. Выбиваем бездельников одной командой.
Сниппет для поиска и завершения зависших сессий:
Админский совет: Настрой этот скрипт в планировщике задач на контроллерах домена и терминальных серверах. Пусть система сама чистит за теми, кто забывает разлогиниться.
#windows #powershell #rdp #sysadmin #automation #server #admin_future
Знакомая ситуация: ты пытаешься зайти на сервер по RDP, а он тебе: «Превышено максимальное число подключений». Кто-то из коллег просто закрыл крестиком окно вместо Log off, и сессия висит «призраком», занимая слот.
Не нужно гадать, кто это. Выбиваем бездельников одной командой.
Сниппет для поиска и завершения зависших сессий:
# Показать все сессии, которые висят в статусе "Disconnected" более 2 часов
$sessions = qwinsta /server:localhost | Append-Output | Select-String "Disc"
foreach ($sess in $sessions) {
$sessId = ($sess -split '\s+')[2]
rwinsta $sessId /server:localhost
Write-Host "Сессия $sessId принудительно завершена." -ForegroundColor Yellow
}
Админский совет: Настрой этот скрипт в планировщике задач на контроллерах домена и терминальных серверах. Пусть система сама чистит за теми, кто забывает разлогиниться.
#windows #powershell #rdp #sysadmin #automation #server #admin_future
🪟 Windows: Понедельник — день «Locked Out». Спасаем пользователей массово 🔓
Утро понедельника у хелпдеска всегда одинаковое: "Я вводил пароль правильно, но оно не пускает!". После выходных пальцы пользователей забывают моторику, Caps Lock нажимается случайно, и половина офиса сидит с заблокированными учетками.
Не надо кликать мышкой в ADUC каждого страдальца. PowerShell спасет твой утренний кофе.
#windows #powershell #activedirectory #monday #automation #sysadmin #admin_future
Утро понедельника у хелпдеска всегда одинаковое: "Я вводил пароль правильно, но оно не пускает!". После выходных пальцы пользователей забывают моторику, Caps Lock нажимается случайно, и половина офиса сидит с заблокированными учетками.
Не надо кликать мышкой в ADUC каждого страдальца. PowerShell спасет твой утренний кофе.
# Найти всех, кто заблокировался, и показать время блокировки
Search-ADAccount -LockedOut | Select-Object Name, SamAccountName, LockedOutTime | Format-Table -AutoSize
# Если ты чувствуешь себя великодушным — разблокировать ВСЕХ одной командой
Search-ADAccount -LockedOut | Unlock-ADAccount
Только убедись перед массовой разблокировкой, что это реальные пользователи, а не брутфорс-атака на RDP!
#windows #powershell #activedirectory #monday #automation #sysadmin #admin_future
🪟 Windows: Ищем «протухающие» сертификаты через PowerShell
Забытый SSL-сертификат на внутреннем веб-сервере или в хранилище `LocalMachine` — это классический повод для экстренного вызова админа из отпуска. Чтобы этого не случилось, давай автоматизируем проверку.
Сниппет для поиска проблем:
#windows #powershell #security #pki #certificates #automation #admin_future
Забытый SSL-сертификат на внутреннем веб-сервере или в хранилище `LocalMachine` — это классический повод для экстренного вызова админа из отпуска. Чтобы этого не случилось, давай автоматизируем проверку.
Технический разбор:
В Windows есть встроенный провайдер `Cert:`, который позволяет работать с сертификатами как с обычными файлами.
Сниппет для поиска проблем:
# Найти все сертификаты в личном хранилище компьютера,
# срок действия которых истекает в ближайшие 30 дней
Get-ChildItem -Path Cert:\LocalMachine\My |
Where-Object { $_.NotAfter -lt (Get-Date).AddDays(30) -and $_.NotAfter -gt (Get-Date) } |
Select-Object Subject, NotAfter, Thumbprint |
Format-Table -AutoSize
Зачем это нужно: Закинь этот скрипт в ежедневный Task Scheduler с отправкой письма на почту, и ты никогда не пропустишь момент, когда пора обновлять сертификат на твоем AD FS или IIS.
#windows #powershell #security #pki #certificates #automation #admin_future
🪟 Windows: WinGet Configuration — настраиваем рабочее место через YAML 📝
В 2026 году ручная установка софта в Windows — это моветон. Microsoft активно развивает WinGet Configuration (на базе Desired State Configuration — DSC). Теперь ты можешь описать всё состояние системы в одном YAML-файле и применить его на новом сервере или ноутбуке сотрудника.
Пример конфигурационного файла (config.yaml):
Команда для применения:
Зачем это нужно: Это «Terraform для локальной Windows».
Один файл — и через 5 минут у тебя настроенная машина со всеми админскими утилитами.
#windows #automation #winget #dsc #devops #sysadmin #admin_future
В 2026 году ручная установка софта в Windows — это моветон. Microsoft активно развивает WinGet Configuration (на базе Desired State Configuration — DSC). Теперь ты можешь описать всё состояние системы в одном YAML-файле и применить его на новом сервере или ноутбуке сотрудника.
Техническая суть:
Ты описываешь не только список программ, но и настройки системы, реестра и функций Windows.
Пример конфигурационного файла (config.yaml):
# yaml-language-server: $schema=https://aka.ms/configuration-dsc-schema/0.2
properties:
resources:
- resource: Microsoft.WinGet.DSC/WinGetPackage
directives:
description: Install VS Code
settings:
id: Microsoft.VisualStudioCode
source: winget
- resource: Microsoft.Windows.Developer/DeveloperMode
settings:
Enabled: true
configurationVersion: 0.2
Команда для применения:
# Проверить файл и применить настройки
winget configure config.yaml
Зачем это нужно: Это «Terraform для локальной Windows».
Один файл — и через 5 минут у тебя настроенная машина со всеми админскими утилитами.
#windows #automation #winget #dsc #devops #sysadmin #admin_future
🔥3
🪟 Windows: Разгоняем PowerShell через параллельную обработку 🏎️
Утро пятницы — время для регулярных отчетов. Если тебе нужно опросить 100+ серверов через `Get-Service` или проверить наличие файла на 500 рабочих станциях, обычный цикл `foreach` будет работать вечно. В PowerShell 7+ есть киллер-фича: Parallel Processing.
Пример быстрого чека сервиса на списке хостов:
Результат: Задача, которая раньше занимала 10 минут, теперь выполняется за 30 секунд. Твой утренний кофе даже не успеет остыть.
#windows #powershell #automation #sysadmin #efficiency #admin_future
Утро пятницы — время для регулярных отчетов. Если тебе нужно опросить 100+ серверов через `Get-Service` или проверить наличие файла на 500 рабочих станциях, обычный цикл `foreach` будет работать вечно. В PowerShell 7+ есть киллер-фича: Parallel Processing.
Техническая суть:
Параметр `-Parallel` в командлете `ForEach-Object` позволяет запускать скрипт-блоки одновременно в разных потоках. Лимит потоков можно задать через `-ThrottleLimit`.
Пример быстрого чека сервиса на списке хостов:
$servers = Get-ADComputer -Filter 'OperatingSystem -like "*Server*"' | Select-Object -ExpandProperty Name
# Опрашиваем по 20 серверов одновременно
$servers | ForEach-Object -Parallel {
Get-Service -Name "Spooler" -ComputerName $_ | Select-Object Machinename, Status
} -ThrottleLimit 20
Результат: Задача, которая раньше занимала 10 минут, теперь выполняется за 30 секунд. Твой утренний кофе даже не успеет остыть.
#windows #powershell #automation #sysadmin #efficiency #admin_future
❤2
🪟 Windows: SecretManagement — Смерть паролей в открытом коде
Коллеги, на дворе 2026 год. Если при проверке ваших PowerShell-скриптов безопасник находит переменную `$password = "12345"`, он имеет полное право заблокировать вашу учетку до конца квартала. Скрыть пароль в base64 — это не защита, это костыль из прошлого десятилетия.
Техническая суть:
Практика:
Настраиваем локальное защищенное хранилище и используем его в автоматизации:
Зачем это нужно:
#windows #powershell #security #automation #secretmanagement #admin_future
Коллеги, на дворе 2026 год. Если при проверке ваших PowerShell-скриптов безопасник находит переменную `$password = "12345"`, он имеет полное право заблокировать вашу учетку до конца квартала. Скрыть пароль в base64 — это не защита, это костыль из прошлого десятилетия.
Техническая суть:
Используем нативный модуль Microsoft.PowerShell.SecretManagement. Это абстрактный слой, который позволяет скриптам запрашивать секреты, не зная, где они лежат: в локальном зашифрованном Vault, в KeePassXC или в корпоративном HashiCorp Vault.
Под капотом: Модуль отделяет логику скрипта от реализации хранилища. Скрипт просит «дай мне пароль от сервиса X», а SecretManagement сам идет в зарегистрированное расширение (Extension Vault) и достает его. В памяти скрипта секрет живет только в виде объекта `SecureString`.
Практика:
Настраиваем локальное защищенное хранилище и используем его в автоматизации:
# 1. Устанавливаем необходимые модули
Install-Module Microsoft.PowerShell.SecretManagement, Microsoft.PowerShell.SecretStore -Force
# 2. Регистрируем локальный защищенный сейф (требует мастер-пароль или привязку к сессии)
Register-SecretVault -Name LocalSafe -ModuleName Microsoft.PowerShell.SecretStore -DefaultVault
# 3. Сохраняем секрет один раз (интерактивно)
Set-Secret -Name "Service_DB_Prod" -Secret "MySuperSecurePassword2026!"
# 4. В скрипте теперь только чистая логика:
$dbSecret = Get-Secret -Name "Service_DB_Prod" -AsPlainText # Используйте plain text только для передачи в API!
Invoke-Sqlcmd -ServerInstance "DB-SRV-01" -Password $dbSecret -Query "SELECT 1"
Зачем это нужно:
Ваши `.ps1` файлы теперь абсолютно чисты. Их можно спокойно пушить в Git, передавать коллегам и не бояться, что при увольнении придется ротировать сотню паролей, которые вы «где-то там» прописали.
#windows #powershell #security #automation #secretmanagement #admin_future
👍1
🪟 Windows: CLI-первенство. Управляем сервером без «тяжелых» окон
Коллеги, в 2026 году открывать RDP-сессию, чтобы просто проверить свободное место на диске или перезапустить службу — это признак дурного тона и лишняя нагрузка на канал связи. В условиях жестких требований безопасности каждое RDP-подключение — это лишнее окно в твою «цифровую крепость».
Техническая суть:
Практика:
Забудь про «Пуск -> Выполнить». Открывай терминал:
Зачем это нужно:
#windows #powershell #winrm #automation #sysadmin #admin_future
Коллеги, в 2026 году открывать RDP-сессию, чтобы просто проверить свободное место на диске или перезапустить службу — это признак дурного тона и лишняя нагрузка на канал связи. В условиях жестких требований безопасности каждое RDP-подключение — это лишнее окно в твою «цифровую крепость».
Техническая суть:
Используем PowerShell Remoting (WinRM) через CLI. Это позволяет выполнять команды на сотнях серверов одновременно, не видя перед собой ни одного рабочего стола.
Под капотом: WinRM работает через HTTP/HTTPS (порты 5985/5986). В 2026-м мы настраиваем его на работу по TLS 1.3 с авторизацией по сертификатам. Это безопаснее, быстрее и позволяет автоматизировать рутину через обычные текстовые команды.
Практика:
Забудь про «Пуск -> Выполнить». Открывай терминал:
# 1. Подключаемся к удаленному Server Core узлу (интерактивно)
Enter-PSSession -ComputerName "SRV-DB-01"
# 2. Магия: узнаем свободное место на дисках сразу на всей группе серверов
Invoke-Command -ComputerName "SRV-APP-01", "SRV-APP-02", "SRV-APP-03" -ScriptBlock {
Get-Volume | Select-Object DriveLetter, FileSystemLabel,
@{Name="FreeGB";Expression={[Math]::Round($_.SizeRemaining / 1GB, 2)}}
}
# 3. Перезапускаем службу только если она "висит"
Invoke-Command -ComputerName "SRV-PRINT-01" -ScriptBlock {
Restart-Service -Name "Spooler" -Force
}
Зачем это нужно:
Скорость и масштабируемость. Пока твой коллега ждет прогрузки графики в RDP, ты уже собрал отчет по всем серверам в сегменте и ушел пить кофе.
#windows #powershell #winrm #automation #sysadmin #admin_future
🔥3
🧹 Windows: Автоматическая чистка старых файлов через PowerShell
Коллеги, признавайтесь: у кого на сервере есть папка Temp или Backup, которая незаметно разрастается до терабайта, пока однажды диск С: не загорается красным? В 2026-м админ не должен удалять мусор руками. Это работа для простого скрипта, который будет делать уборку за тебя каждую ночь.
Скрипт для планировщика задач:
Зачем это нужно:
#windows #powershell #cleanup #automation #sysadmin #admin_future
Коллеги, признавайтесь: у кого на сервере есть папка Temp или Backup, которая незаметно разрастается до терабайта, пока однажды диск С: не загорается красным? В 2026-м админ не должен удалять мусор руками. Это работа для простого скрипта, который будет делать уборку за тебя каждую ночь.
Мы напишем скрипт, который находит файлы старше 30 дней в конкретной папке и удаляет их, не трогая всё остальное.
Скрипт для планировщика задач:
# Путь к папке, где нужно прибраться
$Path = "C:\Backups\Daily"
# Срок хранения в днях
$Days = 30
$TargetDate = (Get-Date).AddDays(-$Days)
# Ищем файлы и удаляем их
Get-ChildItem -Path $Path -File -Recurse |
Where-Object { $_.LastWriteTime -lt $TargetDate } |
Remove-Item -Force -Verbose
Зачем это нужно:
Для спокойного сна. Настрой этот скрипт в Task Scheduler (Планировщике задач) на запуск раз в сутки. Больше тебе не придется судорожно удалять старые архивы, когда место на сервере внезапно закончится в разгар рабочего дня.
#windows #powershell #cleanup #automation #sysadmin #admin_future
🔥2
🚀 Skills: Платформенный инженер — Эволюция сисадмина
Мир меняется. В 2026 году границы между админом, DevOps и SRE окончательно размылись, породив концепцию Platform Engineering. Если ты до сих пор вручную создаешь виртуалки по заявкам в Jira, ты рискуешь стать «узким местом» для всей компании.
Кто такой платформенный инженер:
Как сменить фокус:
Зачем это нужно:
#skills #platformengineering #devops #career #automation #admin_future
Мир меняется. В 2026 году границы между админом, DevOps и SRE окончательно размылись, породив концепцию Platform Engineering. Если ты до сих пор вручную создаешь виртуалки по заявкам в Jira, ты рискуешь стать «узким местом» для всей компании.
Кто такой платформенный инженер:
Это админ, который не делает работу за других, а создает инструменты (Self-Service), чтобы другие могли сделать её сами.
Как сменить фокус:
1. От заявок к API: Вместо «напиши мне скрипт для бэкапа», дай разработчику кнопку в интерфейсе или CLI-утилиту, которая сделает это по шаблону.
2. Внутренний продукт: Твои «пользователи» — это другие айтишники в компании. Твоя задача — сделать их жизнь проще, создав надежную платформу (IDP — Internal Developer Platform).
3. Стандартизация: Вместо зоопарка из разных версий ОС и БД, создай «золотые образы» и шаблоны конфигураций, которые обновляются автоматически.
Зачем это нужно:
Чтобы не сгореть на работе. Платформенный подход позволяет одному человеку управлять инфраструктурой для сотен разработчиков без хаоса и ночных звонков. Это путь от «тушителя пожаров» к архитектору систем.
#skills #platformengineering #devops #career #automation #admin_future
🪟 Windows: Обновляем весь зоопарк софта одной командой через WinGet
Раньше для централизованного обновления стороннего софта (браузеры, архиваторы, мессенджеры) на парке машин мы использовали тяжеловесные решения вроде SCCM, сторонние патч-менеджеры или писали километровые скрипты-обертки.
Сейчас все стало гораздо элегантнее. Встроенный пакетный менеджер WinGet давно оброс мускулами и отлично справляется с этой задачей через консоль.
Скрипт для PowerShell (запускать от администратора):
Как это работает:
Уязвимости нулевого дня в браузерах и PDF-читалках — это любимый вектор атак шифровальщиков. Повесьте этот скрипт в Планировщик задач на компьютерах пользователей, например, на обеденное время среды. Система сама закроет 90% дыр в стороннем софте без вашего ручного вмешательства.
#windows #powershell #winget #automation #sysadmin #admin_future
Раньше для централизованного обновления стороннего софта (браузеры, архиваторы, мессенджеры) на парке машин мы использовали тяжеловесные решения вроде SCCM, сторонние патч-менеджеры или писали километровые скрипты-обертки.
Сейчас все стало гораздо элегантнее. Встроенный пакетный менеджер WinGet давно оброс мускулами и отлично справляется с этой задачей через консоль.
Скрипт для PowerShell (запускать от администратора):
winget upgrade --all --silent --accept-package-agreements --accept-source-agreements
Как это работает:
Команда проверяет абсолютно все установленные приложения, сравнивает их версии с официальными репозиториями и в тихом режиме (без окон установки) накатывает свежие патчи, автоматически соглашаясь с лицензионными условиями.
Уязвимости нулевого дня в браузерах и PDF-читалках — это любимый вектор атак шифровальщиков. Повесьте этот скрипт в Планировщик задач на компьютерах пользователей, например, на обеденное время среды. Система сама закроет 90% дыр в стороннем софте без вашего ручного вмешательства.
#windows #powershell #winget #automation #sysadmin #admin_future
❤2