|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Узнать список доменных пользователей с админскими правами |
|
|
Любой язык - Узнать список доменных пользователей с админскими правами
|
Старожил Сообщения: 161 |
День добрый знатоки.
Необходимо удалённо, на множестве компов (около 100) узнать, если ли у локальных и доменных пользователя админские права (входит ли они в группу локальных админов или доменных). нашёл некий скрипт: $ExportFile = "C:\папка_для_лога\remotes.txt" $SearchBase = "OU=ALL_Users,DC=contoso,DC=com" $AdminList = @{} $ToCSV = "" function Get-LocalAdmin { param ($strcomputer) try { $users = Gwmi win32_groupuser –computer $strcomputer -ErrorAction Stop } catch { Write-Host $strcomputer } if ($users) { $admins = $users |? { ($_.groupcomponent –match 'Администраторы') -or ($_.groupcomponent –match 'Administrators') } $return = $admins |% { $_.partcomponent –match “.+Domain\=(.+)\,Name\=(.+)$” > $nul $matches[1].trim('"') + “\” + $matches[2].trim('"') } return $return } } $ServersList = Get-ADComputer -SearchBase $SearchBase -Filter * -Properties OperatingSystem | Where { $_.OperatingSystem -match "Windows" } $ServersList | Select-Object Name | ForEach-Object { $UserList = Get-LocalAdmin $_.Name if ($UserList) { $AdminList[$_.Name] = $UserList } } $AdminList.Keys | % { $ServerName = $_ $AdminUsers = $AdminList[$ServerName] $ToCSV += "$ServerName;$AdminUsers`r`n" } if (Test-Path $ExportFile) { Remove-Item $ExportFile } $ToCSV >> $ExportFile Как можно добавить проверку на группу локальных админов, а также добавить проверку локальных юзеров на админские права? |
|
Отправлено: 16:24, 14-02-2020 |
fascinating rhythm Сообщения: 6626
|
Профиль | Отправить PM | Цитировать Примерно так:
foreach ($comp in (Get-ADComputer -filter 'enabled -eq "True"' -Properties OperatingSystem |? OperatingSystem -match "Windows").name) { $comp (Gwmi win32_groupuser -ComputerName $comp |? {$_.groupcomponent -match "Администраторы|Administrators" -and $_.partcomponent -notmatch "Administrator|Администратор|Администраторы домена|Domain admins"}).partcomponent -replace "^.*=" -replace '"' "" } |
------- Отправлено: 16:44, 14-02-2020 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 161
|
Профиль | Отправить PM | Цитировать что-то ругается что прав нету:
Gwmi : Отказано в доступе. (Исключение из HRESULT: 0x80070005 (E_ACCESSDENIED)) строка:34 знак:2 + (Gwmi win32_groupuser -ComputerName $comp |? {$_.groupcomponent -matc ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: ( ![]() ccessException + FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.Pow erShell.Commands.GetWmiObjectCommand |
Отправлено: 18:37, 14-02-2020 | #3 |
fascinating rhythm Сообщения: 6626
|
Профиль | Отправить PM | Цитировать Ну так надо запускать от того, у кого есть права на все компьютеры, обычно это администратор домена.
|
------- Отправлено: 18:50, 14-02-2020 | #4 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать Цитата DJ Mogarych:
Ololosh, для этого можно завести отдельную учетку, запретить ей вход как локальный так и по RDP и запустить от ее имени, если так уж хочется запускать именно вручную, но это не оптимальный вариант (держать такую учетку - не есть хорошо, кроме того не факт что на момент запуска все компьютеры будут включены и в сети). Если нужно собрать такую информацию наверняка, то можно например так: 1. Создать шару 2. Дать на эту шару права на запись для Domain Computers (достаточно на запись, чтение не обязательно, без удаления тоже обойдемся) 3. Научить скрипт складывать результат на эту шару (есть много способов, в т.ч. много вариантов именования файлов. лично мне нравится в качестве имени файла использовать дату, а файл складывать в папку имени компьютера) 4. Создать через групповые политики таск запускающийся, ну например через минут десять после старта включения компьютера (чтобы гарантированно всё нормально запустилось и могло достучаться туда куда нужно). Таск должен запускаться от имени NT AUTHORITY\SYSTEM 5. На несколько дней, а то и недель забыть об этом. 6. Проверить получившийся результат и сделать с ним то что хочется ![]() Ну и наконец совсем классный вариант это использовать для этого то, что специально для этого предназначено, здесь тоже видится два варианта (как минимум): 1. Жестко вычищать группу локальных админов добавляя туда только доменную группу с правами локальных админов и/или избранные учетки. (имеет свои минусы, например т.о. нельзя добавить человеку права локального админа даже если это нужно, т.к. при ближайшем обновлении политик группа вычистится). 2. Использовать для мониторинга админских учеток специализированный софт (емнип SCCM это умеет) |
||
Отправлено: 09:40, 17-02-2020 | #5 |
fascinating rhythm Сообщения: 6626
|
Профиль | Отправить PM | Цитировать Цитата Elven:
|
|
------- Отправлено: 13:37, 17-02-2020 | #6 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать DJ Mogarych, ссылка почитать.
Пожалуй я выразлися не совсем корректно: не то чтобы это были именно бестпрактис, но рекомендации в эту сторону есть. Когда-то я еще напарывался на весьма хорошую статью на русском, с довольно неплохими аргументами, но вспомнить их формулировки я пожалуй не осилю, а статья, к сожалению, не нашлась. |
Отправлено: 15:23, 17-02-2020 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Elven:
|
|
Отправлено: 18:31, 17-02-2020 | #8 |
fascinating rhythm Сообщения: 6626
|
Профиль | Отправить PM | Цитировать Elven, это рекомендации по вложенности групп, при чём здесь права доменного админа на локальных тачках?
Так или иначе, скрипт надо запускать от той учётки, которая имеет права на локальных машинах. |
------- Отправлено: 19:43, 17-02-2020 | #9 |
![]() Ветеран Сообщения: 2798
|
Профиль | Отправить PM | Цитировать Цитата Elven:
Базовый функционал (которого для этой задачи с головой хватает) вообще бесплатен. |
|
Отправлено: 19:44, 17-02-2020 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
2012 - Запуск bat через групповые политики с админскими правами | anhol | Windows Server 2012/2012 R2 | 10 | 03-04-2015 09:43 | |
Создание локального пользователя с админскими правами через контроллер домена | R.i.m.s.k.y. | Microsoft Windows NT/2000/2003 | 5 | 14-10-2014 21:27 | |
2008 - Помогите разобратся с админскими правами в Win 2008 | mr.R | Windows Server 2008/2008 R2 | 1 | 26-09-2009 13:06 | |
Citrix Program Neighborhood подключается только с админскими правами | monartoi | Microsoft Windows NT/2000/2003 | 3 | 27-08-2009 10:54 | |
Ошибка - [решено] Проблема с админскими правами | SSvetofor | Microsoft Windows 2000/XP | 2 | 29-01-2008 09:22 |
|