none
vbs установка Homedirectory для пользователей у которых он содержит определенную строку RRS feed

  • Общие обсуждения

  • Всем здрасьте!!!!

    Задача.
    Всем Пользователям домена у которых указано что домашняя директория находится на сетевом диске на определенном сервере поменять на новое место по другому сетевому пути.
    В принципе все сделал но при выполнении
    strHome=objUser.Get("homeDirectory")
    выдается ошибка у тех пользователей у которых не установлена галка что домашняя папка находится на сетевом ресурсе.
    Вот как ее проверить????
    Нашел только вот это
    http://www.microsoft.com/technet/scriptcenter/resources/qanda/sept05/hey0908.mspx
    но там как ее поменять а вот как вытащить значение ничего не могу найти.

    естественно проверки на accountdisable и т.п. уже все стоят, не хватает только вот этой проверки для нормальной работы скрипта.

    Заранее спасибо!!!
    25 декабря 2008 г. 9:42

Все ответы

  • Если ошибка выскачила, значит пользователь под условие не подподает?

    тогда можно использовать следующее:

     

    Code Snippet

    On Error Resume Next

    If Err.Number Then
    Err.Clear

    Elsе

    ваши действия
    end if

     

     

    25 декабря 2008 г. 12:23
  • Ну про это я знаю On Error Resume Next
    Но все равно скрипт не выполняет то что надо.
    Просто выполняется с нулевым результатом.
    30 декабря 2008 г. 7:53
  •  McLeod095 написано:
    Всем здрасьте!!!!

    Задача.
    Всем Пользователям домена у которых указано что домашняя директория находится на сетевом диске на определенном сервере поменять на новое место по другому сетевому пути.
    выдается ошибка у тех пользователей у которых не установлена галка что домашняя папка находится на сетевом ресурсе.
    Заранее спасибо!!!

     

    В прошлом посте я уже спрашивал у вас, подподают ли пользователи с ошибкой, под условие.

    Судя по фразам, выделиеым жирным, не подподают.

    У пользователей, у которых домашняя директория не на сетевом диске -

    Code Snippet
    objuser.homeDrive = ""

     

     

    Можете использовать это как условие проверки

    30 декабря 2008 г. 8:40
  • приведу лучше пример скрипта

    Dim objUser
    Dim strUserDn
    Dim icount
    Dim dis
    dis=0
    icount=0
    Const ACCOUNTDISABLE = &H2
    On Error Resume Next 

    set objRootDSE=GetObject("LDAP://RootDSE")
    set objConn=CreateObject("ADODB.Connection")
    objConn.Provider="ADsDSOObject"
    objConn.Open "Active Directory Provider"
    set objComm=CreateObject("ADODB.Command")
    set objComm.ActiveConnection=objConn
    objComm.CommandText="<GC://" & objRootDSE.Get("defaultNamingContext") & ">;(objectCategory=User);cn;distinguishedName,sAMAccountName,ADsPath;subtree"
    objComm.Properties("Page Size")=5000
    set objRS=objComm.Execute

    objRS.MoveFirst
       
    while(not objRS.EOF)
        if (objRS.Fields("sAMAccountName").Value <> "") then
            Set objUser=GetObject(objRS.Fields("ADsPath"))
            intUAC=objUser.Get("userAccountControl")
            if ACCOUNTDISABLE And intUAC Then
                dis=dis+1
            else
                strHome=objUser.Get("homeDirectory")
                if Err.Number then
                    WScript.echo Err.Number
                    Err.Clear
                else
                    strHome=LCase(strHome)
                    if (strHome="\\server1\homedir") then
                        objUser.Put "homeDirectory","\\server\root\disk\I"
                        objUser.SetInfo
                        icount=icount+1
                    end if
                end if
            end if
        end if
        objRS.moveNext
    wend
    msgbox icount
    msgbox dis

    C Наступающим НГ.
    Думаю встретимся уже в следующем году

    30 декабря 2008 г. 14:54