воскресенье, 31 июля 2011 г.

Список компьютеров в AD и пользователей.

Встала задача составить актуальный список соответствий рабочих станций и пользователе которые работают за последними. Так как NetBOIS имена могу отражать прошлых владельцев ПК, либо отражать просто случайное имя. Есть два решения: обойти все компьютеры и сделать список вручную, либо попробовать получить данные из AD с помощью PowerShell. Первый способ не подходит, по причине НЕ TRU, второй так же не подходит, так как для того чтобы осуществить необходимое на PoSh необходимо, чтобы компьютеры домена имели установленный PoSh и командлеты для AD (only Windows 2008, Windows 7). Остается только VBS и CMD. Вот одно из решений которое я нашел в сети:




echo off
setlocal ENABLEDELAYEDEXPANSION
set domain=
set user=
for /f "delims=\ " %%i in ('net view ^| find "\\"') do (
    set comp=%%~i
    ping -n 1 -w 10 !comp! > nul 2>&1 && (
        for /f "tokens=2,3 delims==\" %%d in ('wmic /failfast:on /output:STDOUT /node:"!comp!" ComputerSystem get username /format:value 2^> nul ^| find "="') do (
            set user=%%~e
            set domain=%%~d
            set domain=!domain:~0!
            if /i "%userdomain%"=="!domain!" (
                set user=!user:~0,-1!
                net user "!user!" /domain > nul 2>&1 && (
                    for /f "delims=" %%u in ('dsquery user -samid "!user!" -scope subtree -o dn ^| dsget user -fn -mi -ln -display -L 2^> nul ^| find ": "') do (
                            set name=%%~u
                            set name=set !name:: ==!
                            !name!
                        )
                        set fullname=!fn! !mi! !ln!
                        set fullname=!fullname:"='!
                        set display=!display:"='!
                        dsquery computer domainroot -name "!comp!" -scope subtree -o dn | dsmod computer -desc "!fullname! (!display!)" 2> nul && echo !comp! - !fullname! (!display!^)
                    )
                )
            )
        )
    )


Помещаем скрипт в планировщик, и при просмотре контейнера Computers в поле описание у нас будут выводится пользователи залогиненные на ПК

Комментариев нет:

Отправить комментарий