![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - сканирование ПК на наличие установленных принтеров |
|
|
VBS/WSH/JS - сканирование ПК на наличие установленных принтеров
|
Пользователь Сообщения: 102 |
Добрый день!
мне в сети необходимо найти у кого установлен принтер с определенным IP адресом, компов порядка 300, ручками искать и по пользователям ходить не вариант ![]() хотелось бы что бы скрипт писал в файл "имя ПК" кто залогинен и список принтеров которые у него установлены p.s. задача от руководства ибо к нему на принтер иногда печатается текст за который он хочет наказать печатающего ![]() |
|
Отправлено: 10:28, 03-10-2012 |
Старожил Сообщения: 280
|
Профиль | Отправить PM | Цитировать Я так понимаю принтер подключен к компу руководства. Так в логах пишется кто печатал когда печатал и с какого ip печатали.
|
Отправлено: 12:33, 03-10-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 102
|
Профиль | Отправить PM | Цитировать на этом принтере я не нашел логи
![]() |
Отправлено: 13:52, 03-10-2012 | #3 |
Ветеран Сообщения: 700
|
Профиль | Отправить PM | Цитировать Anufriev, озвучьте каким образом принтер расшарен, ну можно и модель принтера в придачу
|
------- Отправлено: 15:08, 03-10-2012 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Anufriev:
Цитата Dmitrii:
|
|||
Отправлено: 17:47, 03-10-2012 | #5 |
Пользователь Сообщения: 102
|
Профиль | Отправить PM | Цитировать принтер HP 1212
он сетевой (к нему все подключаются по IP), у начальника на ПК он не расшарен, поэтому на компе логировать не чего! на самом принтере логов нет, поэтому и нужно вычислить у кого он установлен |
Отправлено: 06:01, 04-10-2012 | #6 |
Старожил Сообщения: 210
|
Профиль | Отправить PM | Цитировать Anufriev, у вас в организации домен? Если домен, то предлагаю в качестве опорной точки сценарий, решающий описанную задачу для одной станции. Если подобный подход устроит, то можно эту заготовку развивать в нужном направлении.
Dim objWMI, objCollection, objItem Dim objReg, arrValueNames, arrValueTypes Dim strComputer, strDomain, strUser, strSID, strList, strTemp Const HKU = &H80000003 Const strSubKeyName = "\Software\Microsoft\Windows NT\CurrentVersion\PrinterPorts" strComputer = "здесь - имя станции" If Available(strComputer) Then Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set objCollection = objWMI.ExecQuery("SELECT UserName FROM Win32_ComputerSystem") For Each objItem In objCollection strTemp = objItem.UserName If IsNull(strTemp) Then strTemp = vbNullString Next If Len(strTemp) > 0 Then strDomain = Split(strTemp, "\")(0) strUser = Split(strTemp, "\")(1) If StrComp(strComputer, strDomain, vbTextCompare) <> 0 Then Set objWMI = GetObject("winmgmts:\\.\root\cimv2") Else Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") End If Set objAccount = objWMI.Get("Win32_UserAccount.Domain='" & strDomain & "',Name='" & strUser & "'") strSID = objAccount.SID Set objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv") objReg.EnumValues HKU, strSID & strSubKeyName, arrValueNames, arrValueTypes For i = 0 To UBound(arrValueNames) If Left(arrValueNames(i), 2) = "\\" Then strList = strList & arrValueNames(i) & vbNewLine Next If Len(strList) > 0 Then WScript.Echo "Станция: " & strComputer & vbNewLine & "Пользователь: " & strTemp & vbNewLine & _ "Подключения к сетевым принтерам: " & vbNewLine & strList Else WScript.Echo "Не найдено ни одного подключения к сетевому принтеру." End If Else WScript.Echo "Сеанс не обнаружен." End If Else WScript.Echo "Станция не отвечает." End If WScript.Quit 0 '====== Function Available(strName) Dim objWMI, objItem Set objWMI = GetObject("winmgmts:").ExecQuery("SELECT StatusCode FROM Win32_PingStatus WHERE Address='" & strName & "'") For Each objItem In objWMI If IsNull(objItem.StatusCode) Or objItem.StatusCode <> 0 Then Available = False Else Available = True End If Next Set objItem = Nothing Set objWMI = Nothing End Function |
Отправлено: 14:56, 05-10-2012 | #7 |
Пользователь Сообщения: 102
|
Профиль | Отправить PM | Цитировать да у нас домен, можно было бы политикой запустить скрипт по всем машинкам, и собрать отчет
|
Отправлено: 07:13, 08-10-2012 | #8 |
Старожил Сообщения: 210
|
Профиль | Отправить PM | Цитировать Цитата Anufriev:
Dim objWMI, objWsNet, objAccount Dim objFS, objFile, strLog Dim arrValueNames, arrValueTypes Dim strDomain, strUser, strSID, strList Const HKU = &H80000003 Const strSubKeyName = "\Software\Microsoft\Windows NT\CurrentVersion\PrinterPorts" strLog = "_LanPrinters.log" Set objWsNet = CreateObject("WScript.Network") strComputer = objWsNet.ComputerName strDomain = objWsNet.UserDomain strUser = objWsNet.UserName Set objWsNet = Nothing On Error Resume Next Set objWMI = GetObject("winmgmts:\\.\root\cimv2") If Err.Number = 0 Then Set objAccount = objWMI.Get("Win32_UserAccount.Domain='" & strDomain & "',Name='" & strUser & "'") If Err.Number = 0 Then strSID = objAccount.SID If Err.Number = 0 Then Set objAccount = Nothing Set objWMI = GetObject("winmgmts:\\.\root\default:StdRegProv") If Err.Number = 0 Then objWMI.EnumValues HKU, strSID & strSubKeyName, arrValueNames, arrValueTypes If Err.Number = 0 Then For i = 0 To UBound(arrValueNames) If Left(arrValueNames(i), 2) = "\\" Then strList = strList & Mid(arrValueNames(i), 3) & ";" Next strLog = CreateObject("Shell.Application").NameSpace(&H1A).Self.Path & "\" & strUser & strLog Set objFS = CreateObject("Scripting.FileSystemObject") Set objFile = objFS.CreateTextFile(strLog, True) If Err.Number = 0 Then If Len(strList) > 0 Then If Right(strList, 1) = ";" Then strList = Mid(strList, 1, Len(strList) - 1) objFile.WriteLine strList End If objFile.Close Set objFile = Nothing Else Err.Clear End If Set objFS = Nothing Else Err.Clear End If Else Err.Clear End If Else Err.Clear End If Else Err.Clear End If Set objWMI = Nothing Else Err.Clear End If WScript.Quit 0 |
|
Отправлено: 13:43, 08-10-2012 | #9 |
Пользователь Сообщения: 102
|
Профиль | Отправить PM | Цитировать Цитата:
|
|
Отправлено: 07:05, 10-10-2012 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Безопасность - Сбор информации об установленных программах | volon_85 | Программное обеспечение Windows | 7 | 25-05-2013 20:21 | |
CMD/BAT - [решено] сканирование папки на наличие файла и его архивация | Anufriev | Скриптовые языки администрирования Windows | 34 | 14-09-2012 12:36 | |
CMD/BAT - [решено] Отсчет установленных обновлений | sov44 | Скриптовые языки администрирования Windows | 11 | 19-06-2011 12:06 | |
Flash - Как удалить драйвера установленных USB-устройств? | Vady | Накопители (SSD, HDD, USB Flash) | 2 | 13-11-2010 20:44 | |
Сканирование HDD на наличие bad секторов | dimon55 | Хочу все знать | 5 | 15-12-2003 15:36 |
|