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

Показать сообщение отдельно

Аватара для HOLY DIVER

Новый участник


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

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


Собственно, сделал предложенным способом, только немного модифицировал: скрипт не пробегает по всему домену, а запускается от каждого пользователя, причем с проверкой - если в дескрипшине у компьютера в АД уже есть такая же информация, которую он потенциально может записать, то ничего не делает. Если там что-то другое - то пишет.
Да, кстати, информацию по пользователю берет не из АД, а из реестра (правда, получается, что имя прошлого залогиненного пользователя).

Собственно, вот скрипт:

Код: Выделить весь код
@echo off
setlocal ENABLEDELAYEDEXPANSION

FOR /F "tokens=2* delims=	 " %%A IN ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserName') DO SET LastLogonUsername=%%B
ECHO Last Logon Username=%LastLogonUsername%

set domain=
set user=
	set comp=%computername%
        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=!LastLogonUsername!
			    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 -name "!comp!" | dsget computer -desc > c:\windows\temp\availabilty.txt
						for /F "eol=d tokens=1,2,3 delims= " %%i in (c:\windows\temp\availabilty.txt) do set availabilty=%%i %%j %%k && echo "!availabilty!" && echo "!display! "
						if "!availabilty!" NEQ "!display! " (
							dsquery computer domainroot -name "!comp!" -scope subtree -o dn | dsmod computer -desc "!display!" 2> nul && echo !comp! - !fullname! (!display!^)
						) else (
							echo Equal
							)
                    )
                )
            )
Это сообщение посчитали полезным следующие участники:

Отправлено: 07:08, 13-12-2010 | #4