Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Узнать список доменных пользователей с админскими правами

Ответить
Настройки темы
Любой язык - Узнать список доменных пользователей с админскими правами

Старожил


Сообщения: 161
Благодарности: 1

Профиль | Отправить PM | Цитировать


День добрый знатоки.

Необходимо удалённо, на множестве компов (около 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

 

Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6491
Благодарности: 1465

Профиль | Отправить 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 '"'
""
}

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 16:44, 14-02-2020 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 161
Благодарности: 1

Профиль | Отправить PM | Цитировать


что-то ругается что прав нету:


Gwmi : Отказано в доступе. (Исключение из HRESULT: 0x80070005 (E_ACCESSDENIED))
строка:34 знак:2
+ (Gwmi win32_groupuser -ComputerName $comp |? {$_.groupcomponent -matc ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: ( [Get-WmiObject], UnauthorizedA
ccessException
+ FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.Pow
erShell.Commands.GetWmiObjectCommand

Отправлено: 18:37, 14-02-2020 | #3


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6491
Благодарности: 1465

Профиль | Отправить PM | Цитировать


Ну так надо запускать от того, у кого есть права на все компьютеры, обычно это администратор домена.

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 18:50, 14-02-2020 | #4


Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


Цитата DJ Mogarych:
обычно это администратор домена. »
DJ Mogarych, как раз если так - то это не очень хорошо (вроде по бестпрактис весьма хорошо когда доменный администратор не имеет прав локального админа на не контроллерах, лучше для этого делать отдельную группу).
Ololosh, для этого можно завести отдельную учетку, запретить ей вход как локальный так и по RDP и запустить от ее имени, если так уж хочется запускать именно вручную, но это не оптимальный вариант (держать такую учетку - не есть хорошо, кроме того не факт что на момент запуска все компьютеры будут включены и в сети). Если нужно собрать такую информацию наверняка, то можно например так:
1. Создать шару
2. Дать на эту шару права на запись для Domain Computers (достаточно на запись, чтение не обязательно, без удаления тоже обойдемся)
3. Научить скрипт складывать результат на эту шару (есть много способов, в т.ч. много вариантов именования файлов. лично мне нравится в качестве имени файла использовать дату, а файл складывать в папку имени компьютера)
4. Создать через групповые политики таск запускающийся, ну например через минут десять после старта включения компьютера (чтобы гарантированно всё нормально запустилось и могло достучаться туда куда нужно). Таск должен запускаться от имени NT AUTHORITY\SYSTEM
5. На несколько дней, а то и недель забыть об этом.
6. Проверить получившийся результат и сделать с ним то что хочется

Ну и наконец совсем классный вариант это использовать для этого то, что специально для этого предназначено, здесь тоже видится два варианта (как минимум):
1. Жестко вычищать группу локальных админов добавляя туда только доменную группу с правами локальных админов и/или избранные учетки. (имеет свои минусы, например т.о. нельзя добавить человеку права локального админа даже если это нужно, т.к. при ближайшем обновлении политик группа вычистится).
2. Использовать для мониторинга админских учеток специализированный софт (емнип SCCM это умеет)

Отправлено: 09:40, 17-02-2020 | #5


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6491
Благодарности: 1465

Профиль | Отправить PM | Цитировать


Цитата Elven:
вроде по бестпрактис весьма хорошо когда доменный администратор не имеет прав локального админа на не контроллерах, лучше для этого делать отдельную группу »
У кого такие бестпрактис? Дайте ссылку почитать.

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 13:37, 17-02-2020 | #6


Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


DJ Mogarych, ссылка почитать.
Пожалуй я выразлися не совсем корректно: не то чтобы это были именно бестпрактис, но рекомендации в эту сторону есть. Когда-то я еще напарывался на весьма хорошую статью на русском, с довольно неплохими аргументами, но вспомнить их формулировки я пожалуй не осилю, а статья, к сожалению, не нашлась.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:23, 17-02-2020 | #7


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата Elven:
3. Научить скрипт складывать результат на эту шару (есть много способов, в т.ч. много вариантов именования файлов. лично мне нравится в качестве имени файла использовать дату, а файл складывать в папку имени компьютера) »
Удалённая база данных. Плюсом будет накапливание по датам.

Отправлено: 18:31, 17-02-2020 | #8


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6491
Благодарности: 1465

Профиль | Отправить PM | Цитировать


Elven, это рекомендации по вложенности групп, при чём здесь права доменного админа на локальных тачках?

Так или иначе, скрипт надо запускать от той учётки, которая имеет права на локальных машинах.

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 19:43, 17-02-2020 | #9


Аватара для Charg

Ветеран


Сообщения: 2798
Благодарности: 469

Профиль | Отправить PM | Цитировать


Цитата Elven:
2. Использовать для мониторинга админских учеток специализированный софт »
Никогда не устану рекомендовать PDQ Inventory для этих целей.
Базовый функционал (которого для этой задачи с головой хватает) вообще бесплатен.
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:44, 17-02-2020 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Узнать список доменных пользователей с админскими правами

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход