Насчет разрешений это прописывается в Групповых политиках (Я думал что все догадаются ).Даются права доступа пользователю на редактирование одной веточки реестра, и права на запуск останов служб "Сервер" и "Обозреватель компьютеров".У меня все работает, пока.
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]
понятно — к чему это я? [/quote]
А вот этот момент я не понял?????
Нельзя ли по русски?
Admin Stratofortress Предлагаю небольшую модификацию скрипта.
Изменения: скрипт не выполняется при работе пользователя на серверах, как терминальных так и остальных.
Для этого у свойствах серверов в АД использовано поле Location (Размещение)
Код
'Определяем значание поля Location (Размещение)компьютера
Set WshNetwork = CreateObject("WScript.Network")
On Error Resume Next
Path = WSHNetwork.ComputerName
Set objSysInfo = CreateObject("ADSystemInfo")
strComputerDN = objSysInfo.ComputerName
Set objComputer = GetObject("LDAP://" & strComputerDN)
'Исходя из этого назначаем выполнение скрипта
' В примере для серверов мы установили значение Location = "Серверная"
Select Case objComputer.Get("Location")
Case "Серверная"
' Скрипт не нужно выполнять, производим выход
Wscript.Quit
Case Else
'Скрипт нужен производим выполнение
' Определяем контекст пользователя в АД
Set WshNetwork = CreateObject("WScript.Network")
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
End Select
[/code]
В принципе вместо поля "Location" можно использовать поле описания "Description"
Тогда участок кода скрипта будет выглядеть так
Код
Select Case objComputer.Get("Description")
[/code]
После принятия варианта внесу изменения в статью на сайте.
Правильно заданный вопрос - это уже половина ответа.
если пользователь — разработчик и его рабочее окружение именно сервер? например.
[/quote]
Если он работет непосредственно на нем, то есть смысл отображать его имя.
НО если это скажем файловый серевер или сервер баз данных и при логине на него пользователя (администратора, разрабочика) его имя в сетевом окружении будкт постоянно менятся это просто внесет хаос и непонятки при просмотре.
Для фильтации таких серверов и прописывается или поле "Location" или поле описания "Description" в учетных данных этих серверов в АД.
Цитата
способ фильтрации серверов не красивый.
[/quote]
Хм, предложи более красивый и оптимальный.
Правильно заданный вопрос - это уже половина ответа.
если это скажем файловый серевер или сервер баз данных и при логине на него пользователя (администратора, разрабочика) его имя в сетевом окружении будкт постоянно менятся это просто внесет хаос и непонятки при просмотре
[/quote]
всё правильно. думаем как автоматизировать определение роли сервера. ну, с dc, gc и прочим ещё как-то разобраться можно. можно. а вот файловый это сервер, бд или ещё чего…
да. а если все сотрудники — разработчитки? )
а если отключить netbios? )
а если политиками закрыть службу сервера?
а если это всё — вместе?
нет времени разбираться — наймите того, кто знает.
Тогда просто оставить скрипт как он есть и не париться, пусть в сетевом окружении отображаются все пользователи где бы они не работали.
А в остальном, пустое.Слишком много "если".Нельзя создать решение которое идеально подходит для всех.Считаю что крайняя редакция domovo`го подойдет для большинства.
А еще помоему дальнейшим усовершенствованием данного скрипта будет еще и указания времени проведенного пользователем за компом. Попробую что нить такое сочинить.