NetworkDoc.Ru В помощь системному администратору

Harry33
Harry33
Offline
0
Есть: список пользователей AD
Нужно: получить список ПК, на которых логинились эти пользователи.
Responses (8)
  • Accepted Answer

    lp13
    lp13
    Offline
    Thursday, April 25 2013, 01:34 PM - #permalink
    0
    Это мне кажется в область программирования
    Я бы предложил написать скрипт и повесить его через групповые политики запускаться на каждом компьютере.
    Можно пойти исходя из следующего. Когда пользователь логинится на компьютере в папке C:\Users создается папка с его logon name.
    Соответственно скрипт при запуске может проверять имена этих папок и делать запись в какой-нибудь файл на сетевом ресурсе в формате hostname | username
    Дальше в этом файле можно будет увидеть на каких машинах кто когда-либо логинился.

    Есть еще такая вещь как SCCM, но это уже полноценный сервер, который позволяет управлять компьютерами в домене и вести аудит.
    Like
    The reply is currently minimized Show
  • Accepted Answer

    lp13
    lp13
    Offline
    Thursday, April 25 2013, 04:32 PM - #permalink
    0
    Посмотри такой вариант:
    http://www.manageengine.com/products/active-directory-audit/index.html?ADAPID=2&kw=active%20directory%20changes&adId=4596990437&gclid=CKX1kYHI5rECFcQNfAodNFYAuw
    Там 30 дней триала есть. Система аудита полноценная, думаю она может вести логирование событий.
    The reply is currently minimized Show
  • Accepted Answer

    Ydacha
    Ydacha
    Offline
    Friday, April 26 2013, 12:30 PM - #permalink
    0
    АД не хранит данную инфу, её можно забрать непосредственно с машины, например так:
    @echo off
    echo --------------------------------------
    set /p node=Введите IP или hostname: 
    wmic /node:%node% ENVIRONMENT get username
    
    The reply is currently minimized Show
  • Accepted Answer

    HFShak
    HFShak
    Offline
    Friday, April 26 2013, 04:39 PM - #permalink
    1
    Попробуй этот скрипт.
    Сначало выбири файл со списком ПК, затем файл со списком пользователей.
    Вывод будет в файл log.txt

    @echo off
    CHCP 1251 >nul
    set PATH=%SYSTEMROOT%;%SYSTEMROOT%\SYSTEM32;%SYSTEMROOT%\SYSTEM32\WBEM;
    del %~dp0Log.txt /F
    
    for /f "usebackq delims=" %%i in (
        `@"%systemroot%\system32\mshta.exe" "about:document.forms[0].elements[0].click();var F=document.forms[0].elements[0].value;try {new ActiveXObject
    
    ('Scripting.FileSystemObject').GetStandardStream(1).Write(F)};catch (e){};close();" ^
        1^|more`
    ) do set FilePCSource=%%i
    
    for /f "usebackq delims=" %%i in (
        `@"%systemroot%\system32\mshta.exe" "about:document.forms[0].elements[0].click();var F=document.forms[0].elements[0].value;try {new ActiveXObject
    
    ('Scripting.FileSystemObject').GetStandardStream(1).Write(F)};catch (e){};close();" ^
        1^|more`
    ) do set FileUserSource=%%i
    
    :Start
    pushd "%~dp0Logs"
    rd /S /Q "%~dp0Logs"
    popd
    
    echo PC File:   %sFilePCSource%
    echo User File: %sFileUserSource%
    md "%~dp0Logs"
    
    for /F "usebackq tokens=*" %%f in (%FilePCSource%) do call :users_on_pc "%%~f"
    pause
    
    :Finish
    exit /b
    
    :users_on_pc
    set pc=%~1
    for /F "Tokens=*" %%A In ('Reg Query "\\%~1\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /s^|Find /i "ProfileList\S-"') Do (
    	for /F "Tokens=2*" %%B In ('Reg Query "\\%~1\%%A" /s^|Find /i "ProfileImagePath"') Do echo %%~nC >> "%~dp0Logs\%~1.txt"
    )
    for /F "usebackq tokens=*" %%f in (%FileUserSource%) do call :find_user_on_pc "%%~f"
    goto :eof
    
    :find_user_on_pc
    find "%~1" "%~dp0Logs\%pc%.txt"
    IF %errorlevel%==0 (
      echo %~1 - %pc% >> Log.txt
    )
    goto :eof
    The reply is currently minimized Show
  • Accepted Answer

    Harry33
    Harry33
    Offline
    Thursday, May 16 2013, 06:01 PM - #permalink
    0
    У меня нет файла со списком ПК, его надо получить, зато есть список пользователей.
    The reply is currently minimized Show
  • Accepted Answer

    lp13
    lp13
    Offline
    Monday, May 20 2013, 10:25 AM - #permalink
    0
    а компьютеры у тебя в домен введены? Если да, то у тебя есть список компьютеров. Если нет, тебе для начало нужно просканировать свою корпоративную сеть. Можно использовать что-нибудь на подобие утилиты Nmap. Там есть большое количество опций почитать можно в интернете. В том числе можно определить имена компьютеров и записать результат сканирования в файл. Дальше уже, если на них конечно стоит один пароль локального администратора, можно воспользоваться советом от HFShak.
    The reply is currently minimized Show
  • Accepted Answer

    lp13
    lp13
    Offline
    Monday, May 20 2013, 10:29 AM - #permalink
    0
    Хотя стоп, исходя из задачи все компьютеры у тебя должны быть заведены в домен. Вытащи список компов из AD. Как это сделать много статей в интернете, можешь попробовать эту: http://habrahabr.ru/post/124386/
    Дальше уже можно попробовать совет от HFShak
    The reply is currently minimized Show
  • Accepted Answer

    HFShak
    HFShak
    Offline
    Monday, May 27 2013, 03:08 PM - #permalink
    0
    Для получения списка ПК используй скрипт powershell:
    import-module ActiveDirectory
    Get-ADComputer `
    -Filter * `
    -SearchBase 'DC=CONTOSO,DC=ru' `
    -SearchScope Subtree `
    -Properties `
    Name `
    | select-object `
    -property `
    @{Name = "Name"; Expression = {$_.Name;}} `
    | out-File C:\AD_PC.txt
    



    Вместо CONTOSO введи свой домен и вставь скрипт в ps консоль
    The reply is currently minimized Show
Your Reply
Сеть
Сеть
6 post(s)
VOIP
VOIP
4 post(s)
Loading ...

Joomla! Debug Console

Errors

Session

Profile Information

Memory Usage

Database Queries