New We are sorting MAX channels into categories and territories. Read the news
Public channel ID 76989017757736

Системный Администратор Windows

🖥️ Windows для системных администраторов: управление, оптимизация, безопасность. Полезные советы, лайфхаки, PowerShell-скрипты, автоматизация и практические решения для работы с серверами и рабочими станциями.

Авторский канал.

Open in MAX

Posts for the period

By reactions

Search and the whole feed — after free registration. Custom dates — with a subscription; the channel owner sees them for free. Sorting by reactions — with a subscription. Sign up

Loading…

👋 Привет, админы!

Сегодня расскажу про один неприятный и коварный момент, с которым столкнулся буквально на днях - невозможность запустить скрипт PowerShell из планировщика задач, хотя руками он работает идеально.

🧩 Суть:
Есть скрипт .ps1, который делает бэкап и отправляет отчёт по почте. Запускаешь вручную — всё отлично. Но через Task Scheduler - тишина, никакой ошибки, ничего не происходит.

🔍 Что помогло выяснить причину:

1. В Action указывал не сам скрипт, а запуск powershell.exe с аргументами:


-ExecutionPolicy Bypass -File "C:\Scripts\Backup.ps1"

2. Обязательно указал "Start in" (рабочую папку), иначе относительные пути внутри скрипта не работали.

3. Заменил powershell.exe на powershell.exe -NoProfile, чтобы избежать подвисаний из-за пользовательского профиля.

4. В General поставил галочку "Run with highest privileges" - без этого не было доступа к сетевым путям и не выполнялись некоторые команды.

💡В итоге: Task Scheduler штука капризная, особенно с PowerShell. Поэтому всегда логируйте выход скрипта в файл, добавляйте Start-Transcript и Stop-Transcript, и не забывайте про -NoProfile.

📌 Полный пример команды в задаче:

Program/script: powershell.exe
Add arguments: -NoProfile -ExecutionPolicy Bypass -File "C:\Scripts\Backup.ps1"
Start in: C:\Scripts


👉 @channel_win_sysadmin
Views: 167
Go to post Open in MAX Report an inaccuracy
👋 Привет, админы!

Попался мне на днях любопытный случай: один из пользователей жаловался, что после входа в систему медленно прогружается рабочий стол, хотя железо бодрое и диск в порядке.

🔍 Начал копать — и довольно быстро нашёл виновника: в автозагрузке сидела куча мусора, но особенно отличился один Group Policy скрипт, который пытался смонтировать сетевой ресурс, которого уже не существует.

📌 Чтобы быстро проверить, какие групповые политики срабатывают при входе, и сколько времени они занимают, запустил на клиенте:

Get-WinEvent -LogName Microsoft-Windows-GroupPolicy/Operational |
Where-Object { $_.Id -eq 4016 -or $_.Id -eq 5312 } |
Select-Object TimeCreated, Id, Message | Sort-Object TimeCreated -Descending

🕵️ ID 4016 — начало применения политики,
🕵️ ID 5312 — завершение.

Так можно выловить тормоза и даже понять, какой GPO затягивает загрузку. В моем случае один скрипт отрабатывал почти 90 секунд — удалил его, и всё полетело.

👉 @channel_win_sysadmin
Views: 361
Go to post Open in MAX Report an inaccuracy
👋 Привет, админы!

Недавно один из серверов начал ругаться на нехватку места на диске. Визуально всё в порядке, но свободного осталось меньше 1 ГБ. Надо было срочно найти, кто пожрал диск. Делюсь простым, но мощным PowerShell-способом найти самые тяжёлые файлы:

📦 Поиск топ-10 самых больших файлов на диске:

Get-ChildItem -Path C:\ -Recurse -ErrorAction SilentlyContinue |
Where-Object { -not $_.PSIsContainer } |
Sort-Object Length -Descending |
Select-Object FullName, @{Name="SizeMB";Expression={"{0:N2}" -f ($_.Length / 1MB)}} -First 10


Что делает скрипт:

* Рекурсивно обходит все файлы (-Recurse)
* Отбрасывает каталоги (Where-Object { -not $_.PSIsContainer })
* Сортирует по размеру
* Показывает путь и размер в МБ

📍 Хочешь ограничить область поиска? Просто меняй -Path, например:

-Path "C:\Users", "D:\Temp"

⚡ Очень выручает, когда надо быстро понять, где «накапало» мусора, особенно в TEMP, профилях пользователей или логах каких-нибудь нестабильных приложений.

👉 @channel_win_sysadmin
Views: 513
Go to post Open in MAX Report an inaccuracy
👋 Привет, админы!

Неприятая ситуацию - на проде перестали запускаться скрипты PowerShell через Task Scheduler. Причём руками всё работает, а в планировщике - ноль реакции. Думаю, многим знакома такая картина.

🔍 В чём была проблема:
Оказалось, после обновления безопасности Windows один из серверов начал блокировать запуск скриптов из-за политики исполнения (ExecutionPolicy). А в задаче стояло просто powershell.exe -File ..., без указания параметров.

🛠️ Решение простое, всегда явно указывай политику исполнения при запуске из планировщика:

powershell.exe -ExecutionPolicy Bypass -File "C:\Scripts\Backup.ps1"

И не забудь, что путь к скрипту должен быть абсолютным, иначе Task Scheduler не найдёт файл, особенно если он запускается от SYSTEM или другого сервиса без профиля.

📌 если нужно логирование, добавь вывод в файл:

powershell.exe -ExecutionPolicy Bypass -File "C:\Scripts\Backup.ps1" >> C:\Logs\backup.log 2>&1

👉 @channel_win_sysadmin
Views: 520
Go to post Open in MAX Report an inaccuracy
🚀 Подборка полезных 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 Типичный Сисадмин
https://max.ru/channel_win_sysadmin Системный Администратор Windows
https://max.ru/channel_linux_admin Linux: Системный администратор
https://max.ru/channel_linuxmod Linux
https://max.ru/channel_i_linux Системный администратор
https://max.ru/channel_devopslib DevOps, SRE, Sysadmin
https://max.ru/channel_devops_star DevOps Star (Звезда Девопса)

Excel лайфхак 📌
https://t.me/Excel_lifehack Excel лайфхак

Английский с нуля 🇬🇧
https://max.ru/UchuEnglish

1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С
https://max.ru/channel_DevLab1C 1С:Предприятие 8

Программирование C++📌
https://max.ru/cpp_lib Библиотека C/C++ разработчика
https://max.ru/channel_cpp_geek C++ geek

Программирование Go📌
https://max.ru/golang_lib Библиотека Go (Golang) разработчика

Программирование React📌
https://max.ru/react_lib React

Программирование Rust📌
https://max.ru/channel_rust_lib

Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика

Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика
https://max.ru/channel_java_geek Java Geek

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 Обучающие видео, книги по Физике и Математике

Вакансии в IT📌
https://max.ru/progjob
https://max.ru/channel_rabotait

Мир технологий 📌
https://max.ru/mir_teh Канал для любознательных

Городские📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
https://max.ru/piterspb Питер Новости: Санкт-Петербург / СПБ / ДТП
https://max.ru/channel_krasnodar_novosty Краснодар Новости
https://max.ru/channel_novosibirsk_novosti Новосибирск
https://max.ru/channel_samara_novosti Новости Самары
https://max.ru/channel_ekaterinburg_novosti Новости Екатеринбурга
https://max.ru/channel_kazan_novosti Новости Казани
https://max.ru/channel_omsk_novosti Новости Омска
https://max.ru/channel_moskva_24 Москва 24
Views: 519
Go to post Open in MAX Report an inaccuracy
👋 Привет, админы!

🔥 Делюсь скриптом, который создаёт и настраивает GPO, а потом линкует её к OU. Всё через PowerShell:

# Имя новой политики и OU
$gpoName = "WinRM Config"
$ou = "OU=Servers,DC=domain,DC=local"

# Создаём политику, если её ещё нет
if (-not (Get-GPO -Name $gpoName -ErrorAction SilentlyContinue)) {
New-GPO -Name $gpoName
}

# Настраиваем WinRM в этой политике
$gpo = Get-GPO -Name $gpoName
Set-GPRegistryValue -Name $gpo.DisplayName -Key "HKLM\SOFTWARE\Policies\Microsoft\Windows\WinRM\Service" `
-ValueName "AllowAutoConfig" -Type DWord -Value 1
Set-GPRegistryValue -Name $gpo.DisplayName -Key "HKLM\SOFTWARE\Policies\Microsoft\Windows\WinRM\Service" `
-ValueName "AllowUnencryptedTraffic" -Type DWord -Value 0

# Линкуем GPO к нужному OU
New-GPLink -Name $gpoName -Target $ou -Enforced $false
Под капотом это обычная настройка через Set-GPRegistryValue, но ты можешь добавлять туда любые параметры: фаервол, автологон, аудит и т.д.

👋 Привет, админы!

🔥 Делюсь скриптом, который создаёт и настраивает GPO, а потом линкует её к OU. Всё через PowerShell:

# Имя новой политики и OU
$gpoName = "WinRM Config"
$ou = "OU=Servers,DC=domain,DC=local"

# Создаём политику, если её ещё нет
if (-not (Get-GPO -Name $gpoName -ErrorAction SilentlyContinue)) {
New-GPO -Name $gpoName
}

# Настраиваем WinRM в этой политике
$gpo = Get-GPO -Name $gpoName
Set-GPRegistryValue -Name $gpo.DisplayName -Key "HKLM\SOFTWARE\Policies\Microsoft\Windows\WinRM\Service" `
-ValueName "AllowAutoConfig" -Type DWord -Value 1
Set-GPRegistryValue -Name $gpo.DisplayName -Key "HKLM\SOFTWARE\Policies\Microsoft\Windows\WinRM\Service" `
-ValueName "AllowUnencryptedTraffic" -Type DWord -Value 0

# Линкуем GPO к нужному OU
New-GPLink -Name $gpoName -Target $ou -Enforced $false

Под капотом это обычная настройка через Set-GPRegistryValue, но ты можешь добавлять туда любые параметры: фаервол, автологон, аудит и т.д.

👉 @channel_win_sysadmin
Views: 461
Go to post Open in MAX Report an inaccuracy
👋 Привет, админы!

Сегодня тема, которая не раз спасала мою нервную систему в пятницу вечером, это мгновенное восстановление объектов в Active Directory.

Бывало такое: случайно удалили не ту учетку, группу или, не дай бог, целую OU? Лезть в бэкапы (Veeam/WSB) ради одного объекта - это долго, муторно, да и простой для пользователя. Решаем проблему красиво.

Суть:
Многие забывают, что начиная с Server 2008 R2 в AD есть «Корзина» (AD Recycle Bin), но по умолчанию она выключена! Если она не активна, удаленный объект улетает в небытие (Tombstone), теряя атрибуты и членство в группах.

Как проверить и включить:
Запускаем PowerShell от админа. Проверяем статус:

Get-ADOptionalFeature -Filter {Name -like "Recycle Bin Feature"} | Select-Object Name, EnabledScopes

Если в EnabledScopes пусто, значит, корзина выключена. Включаем (учтите, действие необратимое, отключить потом нельзя, но оно и не нужно):

Enable-ADOptionalFeature 'Recycle Bin Feature' -Scope ForestOrConfigurationSet -Target 'yourdomain.com'

Как восстановить удаленное:
Допустим, снесли пользователя ivanov. Не нужно никаких сторонних утилит, одна строка вернет его со всеми группами и правами:

Get-ADObject -Filter 'Name -like "*ivanov*"' -IncludeDeletedObjects | Restore-ADObject

💡 Совет:
В новых версиях Windows Server (2012+) есть GUI для этого в Active Directory Administrative Center, но консоль грузится вечность. PowerShell отрабатывает за секунды. Проверьте прямо сейчас, включена ли у вас корзина, чтобы потом не кусать локти.

🛠️ #activedirectory #powershell #recovery #лайфхак

👉 @channel_win_sysadmin
Views: 481
Go to post Open in MAX Report an inaccuracy
👋 Привет, админы!

Однажды словил интересный баг с WinRM на новых машинах в домене. После настройки через GPO и попытки подключения по PowerShell Remoting - облом.

WinRM cannot process the request. The following error occurred while using Kerberos authentication: Cannot find the computer X. Verify that the computer exists on the network and that the name provided is spelled correctly.

Хотя DNS работает, ping проходит, GPO с настройками WinRM прилетела.

Где собака зарыта?

Проблема оказалась в отсутствии регистрации SPN для машины в AD. Без него Kerberos просто не может авторизовать подключение. Решается вот так:

setspn -S WSMAN/имя_компьютера имя_компьютера

Если машин много - автоматизируем через PowerShell:

$computers = Get-ADComputer -Filter * | Select-Object -ExpandProperty Name
foreach ($comp in $computers) {
setspn -S "WSMAN/$comp" $comp
}

⚠️Конечно, нужны права на запись SPN (обычно у админа домена). После регистрации SPN, всё взлетело без ошибок.

👉 @channel_win_sysadmin
Views: 526
Go to post Open in MAX Report an inaccuracy
VKontakte Telegram Odnoklassniki
Favorites at datool.ru

Follow the channel in your account

Sign up at datool.ru to add the channel “Системный Администратор Windows” to favorites and track its metrics.

Sign up
For channel owners

Verify your channel

Sign in or sign up at datool.ru, then add our bot to the channel following the instructions in your account. Once ownership is verified, the lock disappears and channel management becomes available.

Sign in or sign up

Report an inaccuracy

Describe what needs fixing. If you have a source, add a link.

You are leaving datool.ru

The link leads to an external website. datool.ru is not responsible for its content — check the address before entering passwords or payment details.

Redirecting in 10 s

Go