У цій статті ми розглянемо, як отримати списки користувачів та груп, які надають права місцевих адміністраторів на комп'ютерах та серверах Windows у вашій мережі.
Зміст:
- Переглянути місцевих адміністраторів на місцевому комп’ютері
- Отримайте список адміністраторів на віддалених комп'ютерах Windows
- Видаліть користувачів з групи місцевих адміністраторів Windows
Переглянути місцевих адміністраторів на місцевому комп’ютері
У Windows ви можете переглядати, додавати або видалити користувачів у місцевих адміністраторів групи за допомогою комп'ютерного обладнання ( Компроміс.MSC
). Розширити Управління комп’ютером -> Місцеві користувачі та група -> Група. Виберіть групу Адміністратор.
За замовчуванням Windows, який був доданий до домену Active Directory, надається місцевим адміністраторам та групам домену Доменні адміністратори.
Усі інші користувачі або групи додаються до групи адміністраторів окремо (вручну, групові політики, сценарії тощо.D.).
Щоб отримати композицію адміністраторів місцевої групи, ви можете використовувати командира Get-localgroupmember З вбудованого модуля Microsoft.PowerShell.LocalIccounts.
Get -localgroupmember -group "адміністратори"
Зверніть увагу, що корпусний параметр вказує на джерело цього користувача/групи. Це може бути локальний, активний каталог або Azure Ad.
Щоб відкликати лише місцевих користувачів з правами адміністратора:
Get-localgroupmeber адміністратори | Що -Object (get -localuser $ _.Sid -rororaction SilenyContinue).Увімкнено
Можна відфільтрувати лише користувачі з AD:
Get-localgroupmeber адміністратори | Що -Object $ _.Principipalsource -eq "ActiveDirectory" | Виберіть Principipalsource, клас, ім'я, SID
Якщо комп'ютер встановлений на комп'ютері Active Directory для Windows PowerShell з пакету RSAT, ви можете отримати додаткову інформацію про користувачів або групи оголошень для їх SID.
У цьому прикладі сценарій отримає членів усіх груп Active Directory, які є частиною місцевих адміністраторів (ми отримуємо список користувачів у групі оголошень за допомогою команди Get-dgroupmember). Потім, використовуючи Get-Duser, ми отримуємо SamaccountName та статус облікового запису (увімкнено = true/false)
$ admins = get -localgroupMeber Адміністратори | Що -Object $ _.PriveralSource -eq "ActiveDirectory"
Foreach ($ admin in $ адміністратори)
Якщо ($ адміністратор.ObjectClass -eq "користувач") get -douser $ admin.SID | Виберіть SamaccountName, увімкнено
Якщо ($ адміністратор.ObjectClass -eq "група") get -dgroupmember $ admin.Сид | Foreach get -douser $ _ | Виберіть -Object SamaccountName, увімкнено
Ви можете експортувати отриманий список користувачів та груп у файл CSV за допомогою експорту CSV:
Результати $ | Експорт-CSV "C: \ PS \ адміністратори.CSV "-notypeInformation -Encoding UTF8
Ви можете опитувати багато комп’ютерів або доменних серверів. У цьому прикладі я хочу отримати список адміністраторів на всіх серверах Windows у AD. Ми отримуємо список комп’ютерів за допомогою Get-Domputer:
$ Computers = (get -dcoputer -filter 'eperatingsstym -like "*windows server*" -і увімкнено -eq "true"').Назва
Тепер ми просимо композицію групи адміністраторів на кожному хості:$ Results = inloke -Command -ComputErname $ computers -ScriptBlock get -localgroupmeber 'адміністратори' | були $ _ $ _.Ім'я -NOTIFOW "*Домен адміністрації*" | Виберіть ім'я, ObjectClass, PrincipipalSource -Проророримен
Видаліть користувачів з групи місцевих адміністраторів Windows
Для адміністраторів підприємства надзвичайно важливо контролювати композицію групи місцевих адміністраторів до станції Windows Worker. Необхідно мінімізувати кількість користувачів з правами адміністраторів.
Для автоматичного додавання користувачів до групи локальних адміністраторів Windows рекомендується використовувати групову політику та групи з обмеженим доступом. Такі групові політики автоматично додадуть необхідних користувачів до групи адміністраторів та виключають усіх інших (додано вручну).Щоб вручну видалити користувача з групи локальних адміністраторів, ви можете використовувати команду:
Видаліть -localgroupMeber -Group Administrators -Mmber імені користувача
Ви можете видалити користувача з групи віддалено:
Elloke -Command -ComputErname Wks -T1122 -ScriptBlock lede -LocalGroupMember -Group Adminies -mmber Imame
Але ви можете використовувати більш вдосконалений сценарій. Припустимо, ви сформували список користувачів з правами адміністраторів на комп’ютерах та зберегли його у змінних результатах $.
$ RESULSE = Invoke-Comand WKS-11, WKS-22 -ScriptBlock get-localgroupMeber -Name 'Adminies' | де $ _.Ім'я -NOTIFO «*Домен адміністрації*» | Виберіть Ім'я, ObjectClass, Principipalsource, SID
Тоді ми відобразимо список користувачів та комп’ютерів у вигляді міста:
$ privans_to_remove = $ результати | OUT -CITY -TITLE "Виберіть Основний, щоб видалити з локальних адміністраторів" -utputMode
Тепер ви повинні вибрати в таблиці користувачів, які потрібно видалити з групи адміністраторів (натисніть Ctrl, Щоб вибрати кілька рядків у таблиці) та виконати код:
Foreach ($ основна сума в $ priancals_to_remove)
Закінчити, довірик $.Pscoputername -scriptblock lede -localgroupmeber -group amdistrators -mmber $ за допомогою: основна.Ім'я
$ Використання: Основний.Назва
Дозволяє передати значення локальної змінної з комп'ютера до віддаленого сеансу PSRemoting.Як результат, вибраних вами користувачі будуть видалені з груп локальних адміністраторів на віддалених комп'ютерах Windows.