Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - заполнить "описание компьютера"

Ответить
Настройки темы
CMD/BAT - заполнить "описание компьютера"
exo exo вне форума

Аватара для exo

Ветеран


Сообщения: 12417
Благодарности: 1442


Конфигурация

Профиль | Отправить PM | Цитировать


Добрый день.
Есть доменная сеть на 2003 сервере.
Есть клиенты ХР SP3.
Однако не у всех клиентов в описании компьютера стоят их Ф.И.О.
Что хочу, в GPO положить скрипт, который менял бы описание компьютера согласно "полному имени" в свойствах учётной записи.
Т.е. кто зашёл в систему, тот и отобразился в описании.
К сожалению у простых пользователей нет прав менять описание, поэтому нужно как-то повысить права.
Где-то я встречал подобный скрипт, но где? не помню...
Спасибо.

-------
Вежливый клиент всегда прав!


Отправлено: 12:49, 27-10-2010

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата exo:
Где-то я встречал подобный скрипт, но где? не помню... »
Возможно, здесь: Отображение имени пользователя работающего на компьютере в сетевом окружении.*-*Сборник документов и материалов в помощь IT специалисту. Хотя лично мне способ с рестартом таких служб категорически не нравится.
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:46, 27-10-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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

exo exo вне форума Автор темы

Аватара для exo

Ветеран


Сообщения: 12417
Благодарности: 1442

Профиль | Отправить PM | Цитировать


Iska, не, не то. там было проще и без служб.

-------
Вежливый клиент всегда прав!


Отправлено: 10:37, 28-10-2010 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


exo, если Вы внимательно прочитали ту статью, то должны понимать, что другого подхода нет — в любом случае, за описание компьютера в сетевом окружении отвечает служба LanManServer. Вот Вам ещё:
Код: Выделить весь код
net config server /srvcomment:"Моё описание"
Работает ли эта команда от имени учётной записи с не административными полномочиями — проверять Вам.
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:31, 28-10-2010 | #4

exo exo вне форума Автор темы

Аватара для exo

Ветеран


Сообщения: 12417
Благодарности: 1442

Профиль | Отправить PM | Цитировать


не поленился, без надежды пустился в перебор своих сообщений, я же помню где-то было... и нашёл.

Цитата cameron:
есть вагон скриптов менябщих дескрипшен компа
http://forum.oszone.net/post-1426214-6.html
вот пример: только я не пойму - он закончен?
читать дальше »
Цитата:
Dim rootDSE,strDomainDN,objConnection
Dim strSubContainer,objCommand,objRecordSet
Dim strMsg, arrDescription, strAccountProp, objComputer, strLoggedOnUser, strLoggedOnUserFullName
Const SPLITER = ","
Const ADS_SCOPE_SUBTREE = 2
Const ADS_SCOPE_ONELEVEL = 3
Const ADS_UF_ACCOUNTDISABLE = 2
'
strSubContainer="OU=Отделы" 'указываем OU в котором будем искать
Set rootDSE = GetObject("LDAP://SERVER.domain.ru/RootDSE") 'Указываем домен с которым работаем
strDomainDN = rootDSE.Get("defaultNamingContext")
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection
'Внимательно смотрим и меняем имя домена с DC=domain,DC=ru на нужное
objCommand.CommandText = "Select Name, operatingSystem, operatingSystemServicePack, Description, userAccountControl, distinguishedName from 'LDAP://" + strSubContainer + ",DC=domain,DC=ru' " & "where objectClass='computer'"
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_ONELEVEL 'ADS_SCOPE_SUBTREE
Set objRecordSet = objCommand.Execute
If objRecordSet.RecordCount<1 Then
WScript.Echo "No computer accounts found in "&strContainer&strDomainDN
WScript.Quit
End If
objRecordSet.MoveFirst
Do Until objRecordSet.EOF
' ''Перебираем только те компы, у котрых Account установлен в Enabled
If (objRecordSet.Fields("userAccountControl").Value And ADS_UF_ACCOUNTDISABLE)=0 Then
strMsg = objRecordSet.Fields("Name").Value & _
SPLITER & objRecordSet.Fields("operatingSystem").Value & _
SPLITER & strAccountProp
arrDescription = objRecordSet.Fields("Description").Value
If Not IsNull (arrDescription) Then
strMsg = strMsg & SPLITER & arrDescription(0)
End If
'WScript.Echo strMsg
strLoggedOnUser = fnGetUserName (objRecordSet.Fields("Name").Value)
strLoggedOnUserFullName = fnGetUserFullName (strLoggedOnUser)
If (Not IsEmpty(strLoggedOnUser)) And (Not IsNull (strLoggedOnUser)) Then
Set objComputer = GetObject("LDAP://"&objRecordSet.Fields("distinguishedName").Value)
objComputer.Put "Description" , strLoggedOnUserFullName
objComputer.SetInfo
End If
End If
objRecordSet.MoveNext
Loop
WScript.Echo "Хау! Я кончил!"
'
'Функция, возвращающая имя текущего залогоненого пользователя на заданном компьютере
Function fnGetUserName (strComputer)
On Error Resume Next
Dim objWMIService, colItems, objItem
Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem", "WQL", _
wbemFlagReturnImmediately + wbemFlagForwardOnly)

For Each objItem In colItems
'Обрезаем нужное кол-во символов с начала имени пользователя дабы привести от DOMAIN\Username к виду Username
fnGetUserName = Mid (objItem.UserName,14,(Len(objItem.UserName)-13))

Next
On Error GoTo 0
End Function

'Опрашиваем AD на предмет ФИО данного юзера
Function fnGetUserFullName (strNNM)
On Error Resume Next
Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20

'Вместо Server подставьте имя компа к которому будите обрашаться за инфой
Set objWMIService = GetObject("winmgmts:\\" & "Server" & "\root\directory\LDAP")
Set colItems = objWMIService.ExecQuery("SELECT * FROM ads_user WHERE DS_sAMAccountName='" +strNNM+"'", "WQL", _
wbemFlagReturnImmediately + wbemFlagForwardOnly)

For Each objItem In colItems

' WScript.Echo "DS_sAMAccountName: " & objItem.DS_sAMAccountName
' WScript.Echo "Имя юзера: " & objitem.DS_displayName
fnGetUserFullName = objitem.DS_displayName
Next

End Function


Цитата Iska:
за описание компьютера в сетевом окружении отвечает служба »
Iska, если вы внимательно читали, то я ни слова про "описание в сетевом окружении " не сказал.
Я имел ввиду описание в свойствах "Моего компьютера". Хотя оно и отображается в сетевом окружении. Но это уже совсем другая история.

-------
Вежливый клиент всегда прав!


Отправлено: 22:58, 28-10-2010 | #5


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата exo:
Я имел ввиду описание в свойствах "Моего компьютера".»
значит это не тот скрипт, так как он меняет описание в свойствах учетной записи компьютера в AD

Отправлено: 03:49, 29-10-2010 | #6


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата exo:
Iska, если вы внимательно читали, то я ни слова про "описание в сетевом окружении " не сказал. »
Спасибо, ясно. Значит, мы друг друга не поняли.
Цитата exo:
Я имел ввиду описание в свойствах "Моего компьютера". Хотя оно и отображается в сетевом окружении. Но это уже совсем другая история. »
Я тоже имел в виду описание в свойствах системы на вкладке «Мой компьютер». Впрочем, не спорю: очевидно, Вам виднее.

Отправлено: 05:43, 29-10-2010 | #7

exo exo вне форума Автор темы

Аватара для exo

Ветеран


Сообщения: 12417
Благодарности: 1442

Профиль | Отправить PM | Цитировать


Цитата amel27:
так как он меняет описание в свойствах учетной записи компьютера в AD »
только там написано, что типа потом обратно это описание уже в свойствах "моего компьютера" меняет... ладно, буду искать дальше.

-------
Вежливый клиент всегда прав!


Отправлено: 08:24, 29-10-2010 | #8


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата exo:
только там написано…»
Где?

Отправлено: 09:26, 29-10-2010 | #9



Moderator


Сообщения: 53488
Благодарности: 15516

Профиль | Отправить PM | Цитировать


exo, в общем, есть набор заготовок:
  1. Q. How can I convert a user's logon name (sAMAccountName) into their distinguished name (distinguishedName)?
  2. Q: Как запустить программу от имени другого пользователя
  3. Цитата Iska:
    net config server /srvcomment:"Моё описание"
Можно слепить из этого нечто.
3-й батник зашифровать с помощью утилит из 2-й ссылки (чтобы юзеры не видели пароль админа). 1-й батник (чуть переделать) определяет полное имя пользователя и передает его 3-му в качестве параметра.
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:20, 29-10-2010 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - заполнить "описание компьютера"

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] "не включение" компьютера после очистки "пыльцы" yarcev20071 Непонятные проблемы с Железом 13 15-05-2010 01:26
7 / 2008 R2 - [решено] "-PC" вместо "-ПК" в имени компьютера Morpheus Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista 7 30-03-2010 21:17
RIS. Внесение изменений в "описание" компьютера на этапе "синих экранов" RIS'а PIL123 Автоматическая установка Windows 2000/XP/2003 0 25-06-2007 14:36
Запретить/удалить пункт "Programs" ("Программы") из меню кнопки "Start" ("Пуск") submaster Microsoft Windows NT/2000/2003 5 13-09-2006 12:29
[решено] Ищу ссылку на описание команд в "Пуск" -> "Выполнить" Volan Microsoft Windows 2000/XP 3 29-06-2006 15:50




 
Переход