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

Общие обсуждения
-
Всем здрасьте!!!!
Задача.
Всем Пользователям домена у которых указано что домашняя директория находится на сетевом диске на определенном сервере поменять на новое место по другому сетевому пути.
В принципе все сделал но при выполнении
strHome=objUser.Get("homeDirectory")
выдается ошибка у тех пользователей у которых не установлена галка что домашняя папка находится на сетевом ресурсе.
Вот как ее проверить????
Нашел только вот это
http://www.microsoft.com/technet/scriptcenter/resources/qanda/sept05/hey0908.mspx
но там как ее поменять а вот как вытащить значение ничего не могу найти.
естественно проверки на accountdisable и т.п. уже все стоят, не хватает только вот этой проверки для нормальной работы скрипта.
Заранее спасибо!!!- Изменен тип ILYA [ sie ] SazonovModerator 9 ноября 2010 г. 12:45
25 декабря 2008 г. 9:42
Все ответы
-
Если ошибка выскачила, значит пользователь под условие не подподает?
тогда можно использовать следующее:
Code SnippetOn Error Resume Next
If Err.Number Then
Err.ClearElsе
ваши действия
end if25 декабря 2008 г. 12:23 -
Ну про это я знаю On Error Resume Next
Но все равно скрипт не выполняет то что надо.
Просто выполняется с нулевым результатом.30 декабря 2008 г. 7:53 -
McLeod095 написано: Всем здрасьте!!!!
Задача.
Всем Пользователям домена у которых указано что домашняя директория находится на сетевом диске на определенном сервере поменять на новое место по другому сетевому пути.
выдается ошибка у тех пользователей у которых не установлена галка что домашняя папка находится на сетевом ресурсе.
Заранее спасибо!!!В прошлом посте я уже спрашивал у вас, подподают ли пользователи с ошибкой, под условие.
Судя по фразам, выделиеым жирным, не подподают.
У пользователей, у которых домашняя директория не на сетевом диске -
Code Snippetobjuser.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