Тема: VBScript: Как получить список сетевых принтеров, но не из AD
Есть скрипт, который получает список принтеров из AD и выгружает его в файл, затем получает принтер по умолчанию и его выгружает в другой файл:
Dim objRoot, objConnection, objCommand, objRSet
Dim intNumRecords, strDomain, strPrinters
'Запись данных в фаил
Dim fso, txtfile, txtfile1
Set fso = CreateObject("Scripting.FileSystemObject")
Set txtfile =fso.OpenTextFile("C:\PrintersAD.nmp", 8, True)
Set objRoot = GetObject("LDAP://RootDSE")
strDomain = objRoot.Get("DefaultNamingContext")
Set objRoot = Nothing
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand = CreateObject("ADODB.Command")
Set objCommand.ActiveConnection = objConnection
objCommand.CommandText = "<LDAP://" & strDomain & ">;(objectClass=printqueue);Name;Subtree"
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Timeout") = 30
Set objRSet = objCommand.Execute
intNumRecords = objRSet.RecordCount
If intNumRecords > 0 Then
'strPrinters = "Обнаружено записей: " & intNumRecords & vbNewLine & "===" & vbNewLine
objRSet.MoveFirst
Do Until objRSet.EOF
'strPrinters = strPrinters & objRSet.Fields("Name").Value & vbNewLine
txtfile.WriteLine(objRSet.Fields("Name").Value)
objRSet.MoveNext
Loop
'Wscript.Echo strPrinters
Else
'WScript.Echo "Ничего не обнаружено."
End If
txtfile.Close
'Найдём принтер по умолчанию
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & "." & "\root\cimv2")
Set colInstalledPrinters= objWMIService.ExecQuery ("Select * from Win32_Printer")
For Each objPrinter In colInstalledPrinters
if (UCase(objPrinter.Default)="ИСТИНА") or (UCase(objPrinter.Default)="TRUE") then
Set txtfile1 =fso.OpenTextFile("C:\DefaultPrinter.nmp", 8, True)
txtfile1.WriteLine(objPrinter.Name)
'Wscript.Echo "Обнаружен принтер по умолчанию " & objPrinter.Name & _
' " " & objPrinter.PortName & " " & objPrinter.Default
End if
Next
txtfile1.Close
Set objRSet = Nothing
Set objCommand = Nothing
Set objConnection = Nothing
WScript.Quit 0
Как переделать этот скрипт, чтобы он получал принтеры не из АД, а список навроди того, который выводится при ручной установке сетевого принтера?