none
замена домашнего каталога у пользователей AD RRS feed

  • Вопрос

  • возможно не в тот раздел, поэтому заранее извиняюсь)

    У пользователей в AD есть подключаемые каталоги, вида \\server1\[что_угодно_может_быть], появилась необходимость сделать \\server2\[что_угодно_может_быть] - то есть каталоги переезжают на другой сервер. Как я хотел сделать, без скриптов - получить имена всех пользователей домена через dsquery user   , дальше узнать их дом. папки dsget user [имя пользователя] -hmdir перенаправив вывод в текстовый файл, после чего через findstr сделать файл чисто с дом. каталогами и их уже подсунуть  dsmod.. Вообщем было бы всё хорошо, если бы не было пользователей без дом. каталогов - из за них получается несовпадение строк в файле с пользователями и в файле с дом. каталогами.  Может кто решал уже такую задачку ?

    8 февраля 2012 г. 10:07

Ответы

  • @echo off
    setlocal  ENABLEDELAYEDEXPANSION
    
    for /F "tokens=1,2*" %%i in ('dsquery user ^| dsget user -hmdir -samid ^| findstr "\\"') do (
    	set fh=%%j
    	echo  %%i !fh:\\server1=\\server2!
    	dsquery user -samid %%i | dsmod user -hmdir !fh:\\server1=\\server2!
    )
    pause
    
    
    Для получения всех пользователей у которых установлена домашняя папка,можно командой:
    
    dsquery user | dsget user -hmdir -samid | findstr "\\"

    • Помечено в качестве ответа gurd63 8 февраля 2012 г. 10:45
    8 февраля 2012 г. 10:36
    Отвечающий

Все ответы

  • @echo off
    setlocal  ENABLEDELAYEDEXPANSION
    
    for /F "tokens=1,2*" %%i in ('dsquery user ^| dsget user -hmdir -samid ^| findstr "\\"') do (
    	set fh=%%j
    	echo  %%i !fh:\\server1=\\server2!
    	dsquery user -samid %%i | dsmod user -hmdir !fh:\\server1=\\server2!
    )
    pause
    
    
    Для получения всех пользователей у которых установлена домашняя папка,можно командой:
    
    dsquery user | dsget user -hmdir -samid | findstr "\\"

    • Помечено в качестве ответа gurd63 8 февраля 2012 г. 10:45
    8 февраля 2012 г. 10:36
    Отвечающий
  • Вот спасибо!
    8 февраля 2012 г. 10:46

  • Для получения всех пользователей у которых установлена домашняя папка,можно командой:


    dsquery * DC=mydomain,DC=com -filter "(&(objectCategory=Person)(objectClass=User)(homeDirectory=\\*))"  -attr sAMAccountName homeDirectory displayName distinguishedName -l -limit 0

    так красивше, имхо:)
    8 февраля 2012 г. 17:00