wwladimir
Full Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору ' ' NAME: Login.vbs ' ' AUTHOR: Max ' DATE : 16.04.2007 ' ' COMMENT: Скрипт вешается на логон. Записывает в АД имя раб. станции пользователя, ' на которой тот залогинился, и прописывает полное имя в описание компа, на котором этот пользователь сидит ' (полезно для Ideal Administrator'a 'Изменения DivinWW@mail.ru '========================================================================== Dim WshNetwork, dn, UserName, strComputer, colItems, objUser Const wbemFlagReturnImmediately = &h10 Const wbemFlagForwardOnly = &h20 Set WshNetwork = CreateObject("WScript.Network") On Error Resume Next Path = WSHNetwork.ComputerName Set objSysInfo = CreateObject("ADSystemInfo") strComputerDN = objSysInfo.ComputerName Set objComputer = GetObject("LDAP://" & strComputerDN) ' для серверов мы установили значение DescriptionLocation = "serverroom" 'MsgBox objComputer.Get("Location") Select Case objComputer.Get("Location") Case "serverroom" ' Скрипт не нужно выполнять, производим выход Wscript.Quit Case Else End Select 'Select Case objComputer.Get("Description") 'MsgBox objComputer.Get("operatingSystem") ' для серверов мы установили значение DescriptionLocation = "serverroom" 'Select Case objComputer.Get("Description") Select Case objComputer.Get("operatingSystem") Case "Windows Server 2003" ' Скрипт не нужно выполнять, производим выход Wscript.Quit Case "Windows 2000 Server" ' Скрипт не нужно выполнять, производим выход Wscript.Quit Case "Windows Server® 2008 Enterprise" Wscript.Quit Case Else 'Скрипт нужен производим выполнение End Select ' берем имя компа и пользователя раб станции Set WshNetwork = WScript.CreateObject ("WScript.Network") strComputer = WshNetwork.ComputerName UserName = WshNetwork.UserName ' вытаскиваем distinguishedName пользователя Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\directory\LDAP") Set colItems = objWMIService.ExecQuery("SELECT * FROM ads_user WHERE DS_sAMAccountName='" & UserName & "'", "WQL", _ wbemFlagReturnImmediately + wbemFlagForwardOnly) For Each objItem In colItems FullName = objItem.DS_Name dn = objItem.DS_distinguishedName Next ' подключаемся к АД и вносим имя компа в поле userWorkstations пользователя Set objUser = GetObject ("LDAP://" & dn) objUser.Put "wWWHomePage",strComputer objUser.SetInfo 'Прописываем пользователя в описание машины AD Set objComputer = GetObject("LDAP://" & strComputer) objComputer.Put "description", FullName 'objComputer.Description = UserName & " " & Now objComputer.SetInfo 'Прописываем пользователя в описание локальной машины k = 34 ' ASCII-код кавычек kk = Chr(k) ' преобразуем в символ для корректного применения в строке Set WshShell = WScript.CreateObject ("WScript.Shell") Set net = WshShell.Exec ("net config server /srvcomment:" & kk & FullName & kk) пишет имя залогинившегося юзера (имеющего право записи в описание компа, для удобства обзора в сетевом окружении XP, в 7 это убрано) и в консоли 'AD пользователи и компьютеры" компам в поле описание- последнего пользователя, а юзером имя компа в поле "веб-страница". Работает, ставил года четыре назад- может что и упускаю. | Всего записей: 527 | Зарегистр. 08-11-2006 | Отправлено: 15:10 19-06-2012 | Исправлено: wwladimir, 15:23 19-06-2012 |
|