Войти

Показать полную графическую версию : Массовое изменение настроек пользователей в AD Win 2003


Fenia
22-06-2012, 15:41
Здравствуйте!
Очень нужна помощь в следующих вопросах.

Сначала я опишу, что мне приходиться делать "руками" и что хотелось бы делать массово:
1) Запускаю AD - пользователи и компьютеры.
2) Выбираю необходимого мне пользователя и захожу в свойства.
3) В свойствах я выбираю вкладку "Учётная запись", и изменяю "Имя входа пользователя" и "Имя входа пользователя(пред-Windows 2000)" на новые.
4) Разлогиниваюсь и Залогиниваюсь заново, во время разлогинивания у меня срабатывает скрипт для пользователя:


set logonserver
set username
rem %logonserver%\Pstools\psgetsid.exe %username% >c:\Logs\111.txt
\\nt-update\eiis\Pstools\psgetsid.exe fss78\%username% >c:\Logs\111.txt

for /f "skip=1 tokens=1 delims= " %%i in (c:\Logs\111.txt) do @echo %%i>c:\Logs\222.txt

for /f "tokens=1 delims=" %%i in ("%userprofile%") do @echo %%i>c:\Logs\444.txt
for /f "tokens=3 delims=:\" %%i in ("%userprofile%") do @echo %%i>c:\Logs\555.txt
for /f "tokens=1 delims= " %%i in ("%username%") do @echo %%i>c:\Logs\666.txt


5) После этого я запускаю GPM(group policy management) выбираю необходимую мне политику и добавлю в неё компьютер пользователя, далее срабатывает скрипт который по идее должен переименовывать папку пользователя в необходимую мне:


set /P SID=<c:\Logs\222.txt
set /P User_name=<c:\Logs\666.txt
set SID
set User_name

set /P old_prof=<c:\Logs\444.txt
set /P old_user=<c:\Logs\555.txt
if not "%old_user%"=="%User_name%" goto Change
goto End

:Change
if not "C:\Documents and Settings\%old_user%"=="%old_prof%" goto Change7
reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList\%SID%" /v ProfileImagePath /t REG_EXPAND_SZ /d "%%SystemDrive%%\Documents and Settings\%User_name%" /f
move /Y "%old_prof%" "C:\Documents and Settings\%User_name%" >>c:\Logs\change.txt
goto End

:Change7
reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList\%SID%" /v ProfileImagePath /t REG_EXPAND_SZ /d "%%SystemDrive%%\Users\%User_name%" /f
move /Y "%old_prof%" "C:\Users\%User_name%" >>c:\Logs\change.txt
goto End

:End
rem del /F /Q C:\Logs\*.*
goto :EOF

Но иногда это не происходит. Иногда появляется папка с имением пользователя, которая пустая. Но при этом на рабочем столе и в моих документах файлы с предыдущего профиля. Почему так и где файл или что нить что б отвечала за переадресацию на старый профиль я так и не понял.

Теперь задача состоит в том, чтоб всё это сделать с помощью одного скрипта. Эти скрипты писал не я, мне это всё в наследство.

cameron
22-06-2012, 18:09
при переименовании пользователя и так подхватится нужный профиль, потому что это привязыается через SID, а не %username%.

то есть, если у вас пользователь с логином vasya_pupkin у которого есть профиль на локальной машинке, вида
c:\documents and setting\vasya_pupkin\
то переменовав vasya_pupkin в John_johnson в AD вы не нарушите работу его локально профиля.
называться он будет всё так же vasya_pupkin, на тех хостах где он уже был.

Fenia
25-06-2012, 10:55
А теперь вопрос. А если у меня 3 пользователя на компе. называются они 1,2 и 3. Через некоторое время я переименовал 2 в vasya_pupkin, но папка не пере именовалась. Как мне в будущем понять, что папка 2 это папка vasya_pupkin`a?

cameron
25-06-2012, 11:09
Как мне в будущем понять, что папка 2 это папка vasya_pupkin`a? »
не могу понять причин по которым это нужно понимать, но всегда можно использовать %userprofile%, которая будет отрабатывать верно.
для создания костылей для решения прошлых костылей нужно понимаать по каким причинам бывает ошибки, для этого нужно смотреть в логах.

да, сделать это в один скрипт, скорее всего не получится, потому что вам нужно физическое создание нового профиля, а это логон.
хотя, наверно можно раскорячиться через RDP логон, логофф, запуск переименования.

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

Fenia
25-06-2012, 15:53
Это гос. учреждение в прошлом. Теперь уже не гос. =) Раньше у каждого пользователя был свой логин ввиде цифр. Но со временем этих пользователей стало так много, что ничего не разобрать. Особенно когда они меняются местами. На компьютере 4-5 папок пользователей и среди них надо найти нужный. На данный момент переводится всё на фио.

для создания костылей для решения прошлых костылей нужно понимаать по каким причинам бывает ошибки, для этого нужно смотреть в логах. »
Где это можно посмотреть? в каких логах?

не могу понять причин по которым это нужно понимать, но всегда можно использовать %userprofile%, которая будет отрабатывать верно. »
Например. Не понял если честно. Ситуация такая:
Есть пользователь X123, у него профиль X123, соответственно и папка в document and settings X123. Но если я поменяю "Имя входа пользователя" и в будущем он будет заходить по этому логину, то создаётся пустая папка. Совершенно пустая. Но переадресация всё равно на старую. Я честно говоря не понимаю как будет выглядить скрипт для копирания данных именно этого пользователя.

t3mk4
25-06-2012, 17:01
User State Migration Tool возможно Вам чем-то поможет.




© OSzone.net 2001-2012