Скрипт для отображения имени пользователя

Windows Script Host (WSH), WMI, vbs скрипты и т.д. Создание и применение скриптов.

Модератор: Модераторы

Он здесь живет
Сообщения: 2394
Зарегистрирован: 19 дек 2003, 20:43
Откуда: Москва

Сообщение Harry33 » 21 ноя 2005, 21:58

Admin
Для решения нетревиальных задачь! И обмена опытом, а не озвучивания хелпов!
Знания, которые нельзя применить - бесполезны

Активный пользователь
Сообщения: 185
Зарегистрирован: 09 дек 2004, 17:12
Откуда: Жуковский

Сообщение Admin » 05 дек 2005, 15:23

В общем методом проб и ошибок сделал я такой скрипт, вот он собственно:

Set objWMIService = GetObject("winmgmts:")
Set colSoftware = objWMIService.ExecQuery _
("Select * FROM Win32_Service WHERE Name ='Lanmanserver'" )
For Each objSoftware in colSoftware
objSoftware.StopService()
Next

set WSHShell = WScript.CreateObject("WScript.Shell")
Set WshNetwork = CreateObject("WScript.Network")
info = "Имя пользователя: " & WshNetwork.UserName
WSHShell.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters\srvcomment", info

Set objWMIService = GetObject("winmgmts:")
Set colSoftware = objWMIService.ExecQuery _
("Select * FROM Win32_Service WHERE Name ='Lanmanserver'" )
For Each objSoftware in colSoftware
objSoftware.StartService()
Next

Может это немного коряво но начальство осталось довольно. Если будут предложения по увеличению функциональности этого скрипта, буду рад выслушать.
Всем спасибо.

Активный пользователь
Сообщения: 185
Зарегистрирован: 09 дек 2004, 17:12
Откуда: Жуковский

Сообщение Admin » 05 дек 2005, 16:49

А знает кто нить как сделать так чтобы в выше описанном скрипте выводился не логин пользователя а его полное имя например Иванов И. Иванович?Не могу разобраться еще с этим моментом :(

Администратор
Сообщения: 3444
Зарегистрирован: 19 дек 2003, 13:36
Откуда: Москва

Сообщение domovoy » 06 дек 2005, 14:33

Попробуй такой вариант

Код
' Определяем контекст пользовалеля в АД
Set WSHNetwork = CreateObject("WScript.Network")
On Error Resume Next
Path = WSHNetwork.UserName
Set objSysInfo = CreateObject("ADSystemInfo")
strUserDN = objSysInfo.UserName
Set objUser = GetObject("LDAP://" & strUserDN)

' Остановка службы сервер для внесения данных о пользователе

Set objWMIService = GetObject("winmgmts:")
Set colSoftware = objWMIService.ExecQuery _
("Select * FROM Win32_Service WHERE Name ='Lanmanserver'" )
For Each objSoftware in colSoftware
objSoftware.StopService()
Next

' Внесение данных о пользователе в свойcтва компьютера

Set WSHShell = WScript.CreateObject("WScript.Shell")
Set WshNetwork = CreateObject("WScript.Network")
WSHShell.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters\srvcomment", objUser.DisplayName

' Перезапуск службы сервер

Set objWMIService = GetObject("winmgmts:")
Set colSoftware = objWMIService.ExecQuery _
("Select * FROM Win32_Service WHERE Name ='Lanmanserver'" )
For Each objSoftware in colSoftware
objSoftware.StartService()
Next
[/code]


Вместо objUser.DisplayName можно использовать:
objUser.givenName - First name пользователя
User.sn - Last Name пользователя
Правильно заданный вопрос - это уже половина ответа.

Активный пользователь
Сообщения: 185
Зарегистрирован: 09 дек 2004, 17:12
Откуда: Жуковский

Сообщение Admin » 06 дек 2005, 15:27

domovoy Огромное спасибо.

хм...
Аватара пользователя
Сообщения: 611
Зарегистрирован: 07 апр 2004, 17:10
Откуда: ссср

Сообщение Stratofortress » 12 дек 2005, 14:09

;) а пермишены?

или у вас, Admin, пользователи есть локал админы?
всё-таки, всем подряд править реестр… я бы не дал. ;))
нет времени разбираться — наймите того, кто знает.

Администратор
Сообщения: 3444
Зарегистрирован: 19 дек 2003, 13:36
Откуда: Москва

Сообщение domovoy » 12 дек 2005, 15:12

Stratofortress
Правильно, я когда смотрел это тоже заметил, не хватает пермишенов ;-)

Обсудим вариант статьи с учетом этого требования.

http://www.networkdoc.ru/files/insop/wh ... cript.html

Сразу как дополнение, необходимо исключить терминальные сессии пользователй из скрипта. (вариант готовится)
Правильно заданный вопрос - это уже половина ответа.

хм...
Аватара пользователя
Сообщения: 611
Зарегистрирован: 07 апр 2004, 17:10
Откуда: ссср

Сообщение Stratofortress » 12 дек 2005, 20:59

а вот ещё. ;))
Цитата
A network resource is announced every 12 minutes. If the Master Browser does not hear an announcement for 3 x 12 = 36 minutes then the resource is dropped. The Master Browser sends out the resource list to the Backup Browsers every 15 minutes. It is conceivable that a resource could be down for 36 + 15 = 51 minutes before it is finally removed from the resource list and no longer displayed in Explorer.
[/quote]


понятно — к чему это я? ;)
нет времени разбираться — наймите того, кто знает.

Администратор
Сообщения: 3444
Зарегистрирован: 19 дек 2003, 13:36
Откуда: Москва

Сообщение domovoy » 12 дек 2005, 21:03

Stratofortress
Да есть такой нюанс, но боюсь в данном случае мы его преодалеть не сможем увы.
Правильно заданный вопрос - это уже половина ответа.

хм...
Аватара пользователя
Сообщения: 611
Зарегистрирован: 07 апр 2004, 17:10
Откуда: ссср

Сообщение Stratofortress » 12 дек 2005, 21:08

domovoy
выходит, что «не должно множить сущее без необходимости» © ;)

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

Пред.След.

Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7