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

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

Googler


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

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


Цитата mitiya:
это по прежнему актуально »
исправил
Цитата mitiya:
я так понял что подключенные-то пользователи как раз появляются в user со своим сидом , так что нужно как-то только проверить подключен ли он сейчас , наверно можно с помощью errorlevel »
где-то так (пока без замены), исправил ошибки, тестируйте:
Код: Выделить весь код
@Echo Off
Set $Home=%cd%
Set $Root=.

Set FileIncl=%$Home%FileIncl.txt
Set UserExcl=%$Home%UserExcl.txt
Set HKCUIncl=%$Home%HKCUIncl.txt

PushD %$Root%
If Exist users RD /S /Q users
MD Users
CD Users
For /F "Tokens=1,2" %%i In ('WMIC UserAccount Where LocalAccount^=True Get Name^,SID^,Status^|FindStr /IERC:"OK *"') Do Call :CopyUserProfile %%i %%j
PopD
Exit

:CopyUserProfile
:: -------------
:: %1 - User Name
:: %2 - User SID
:: -------------
 CHCP 1251 >Nul
:: Сверка имени со списком исключения
 FindStr /IXC:"%~1" %UserExcl%
 If Not ErrorLevel 1 GoTo :EOF
:: Получение пути к профилю пользователя
 Set $UserProfile=
 For /F "Tokens=1,2*" %%i In ('2^>Nul REG Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\%~2"^|FindStr /BIRC:" *ProfileImagePath"') Do Call Set $UserProfile=%%k
 If "%$UserProfile%"=="" GoTo :EOF
:: Копирование файлов/каталогов по списку
 For /F "UseBackQ Tokens=* Delims=" %%A In ("%FileIncl%") Do Call :CopyUserFile "%$UserProfile%\%%A" "%~1\Files\%%A"
:: Копирование веток реестра по списку
 REG Load HKU\TEMP "%$UserProfile%\NTUSER.DAT" >Nul 2>&1
 If Not ErrorLevel 1 (
    Call :CopyUserRegKeys "%~1" "HKU\TEMP"
    REG Unload HKU\TEMP >Nul
 )
 REG Query "HKU\%~2" >Nul 2>&1
 If Not ErrorLevel 1 Call :CopyUserRegKeys "%~1" "HKU\%~2"

 CHCP 866 >Nul
GoTo :EOF

:CopyUserFile
:: ----------------------------
:: %1 - Source File/Directory
:: %2 - Destination File/Folder
:: ----------------------------
 If Exist "%~1\" XCopy /E/H/Q "%~1" "%~2\" >Nul
 If Not Exist "%~1" GoTo :EOF
 @Echo F|XCopy /H/Q "%~1" "%~2" >Nul
GoTo :EOF

:CopyUserRegKeys
:: ------------------
:: %1 - User Name
:: %2 - Registry Hive
:: ------------------
 For /F "UseBackQ Delims=" %%i In ("%HKCUIncl%") Do (
    @Echo F|XCopy /R/V/Q "%~dpnx0" "%~1\Regis\%%i.reg" >Nul
    If Exist "%~1\Regis\%%i.reg" DEL /Q/F "%~1\Regis\%%i.reg"
    REG Export "%~2\%%i" "%~1\Regis\%%i.reg" >Nul 2>&1
 )
GoTo :EOF
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:30, 27-04-2009 | #6