dim $Printers, $oService,$oPrinter,$iTotal,$strMsg,$oLocator
$strServer="***.***.***"
$strUser="username"
$strPassword="******"
; Устанавливаем перехватчик COM-ошибок
$oMyError = ObjEvent("AutoIt.Error","MyErrFunc")
; Подключение к службе WMI. Создаем объект SwbemLocator
$oLocator = ObjCreate("WbemScripting.SWbemLocator")
If @error Then MsgBox(0,'','Не удалось создать объект: WbemScripting.SWbemLocator')
; Вызываем метод ConnectServer(), который возвращает нам объект SwbemServices
; Данный олбъект можно использовать для выполнения запросов WQL, получения ссылок на объекты WMI и т. п.
$oService = $oLocator.ConnectServer($strServer, "root\cimv2", $strUser, $strPassword)
; Если подключение удалось то получаем список принтеров
$Printers = $oService.InstancesOf("Win32_Printer")
; Бежим по списку принтеров
$iTotal = 0 ; Общее количество принтеров
For $oPrinter in $Printers
$iTotal = $iTotal + 1
; Составляем строку для выводна на экран
$strMsg=$strMsg & _
"Имя сервера: " & $strServer & Chr(10) & _
"Имя принтера: " & $oPrinter.DeviceID & Chr(10) & _
"Имя общей папки: " & $oPrinter.ShareName & Chr(10) & _
"Имя драйвера: " & $oPrinter.DriverName & Chr(10) & _
"Имя порта: " & $oPrinter.PortName & Chr(10) & _
" " & Chr(10)
next
$strMsg=$strMsg & "Общее количество принтеров" & $iTotal
; Вывод на экран
MsgBox (0,'',$strMsg)
Exit
Func MyErrFunc()
$HexNumber=hex($oMyError.number,8)
Msgbox(0,"Внимание COM Error!", ""& _
"err.description is: " & @TAB & $oMyError.description & @CRLF & _
"err.windescription:" & @TAB & $oMyError.windescription & @CRLF & _
"err.number is: " & @TAB & $HexNumber & @CRLF & _
"err.lastdllerror is: " & @TAB & $oMyError.lastdllerror & @CRLF & _
"err.scriptline is: " & @TAB & $oMyError.scriptline & @CRLF & _
"err.source is: " & @TAB & $oMyError.source & @CRLF & _
"err.helpfile is: " & @TAB & $oMyError.helpfile & @CRLF & _
"err.helpcontext is: " & @TAB & $oMyError.helpcontext _
)
Exit
EndFunc