none
Como faço para verificar se uma impressora existe? RRS feed

  • Pergunta

  • Estou escrevendo um script para remoção e inserção de impressoras com log de quais usuários tiveram a impressora instalada. Como não quero repetir a informação, preciso verificar se a impressora a ser instalada já existe no computador do usuário para não gerar informação duplicada no log.

     

    O Script:

     

    strComputer = "."

    Set objNetwork = WScript.CreateObject("WScript.Network")
    UserName = objNetwork.Username
    PcName = UCase(objNetwork.Computername)

    strPath = ".\"
    strFileName = strPath & "PRINTERS-LOG.LOG"

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    If objFSO.FileExists(strFileName) Then
    Else
     Set objTextFile = CreateTextFile(strFileName, ForAppending, True)
    End If

    Set objTextFile = objFSO.OpenTextFile(strFileName, ForAppending, True)

     

    objNetwork.RemovePrinterConnection "\\OLDPRINT\HP-1500"  
    Set objSysInfo = CreateObject("ADSystemInfo")
    Set objNetwork = CreateObject("Wscript.Network")

    strUserPath = "LDAP://" & objSysInfo.UserName
    Set objUser = GetObject(strUserPath)

    For Each strGroup in objUser.MemberOf
        strGroupPath = "LDAP://" & strGroup
        Set objGroup = GetObject(strGroupPath)
        strGroupName = objGroup.CN

        Select Case strGroupName
            Case "INFORMATICA"
         strPrinter = "\\PRINTSRV\HP-1510
    "
                objNetwork.AddWindowsPrinterConnection "\\PRINTSRV\HP-1510
    "
     
     End Select
    Next

    objTextFile.WriteLine "Impressora " & strPrinter & " foi instalada no computador " & PcName & " para o usuário " & UserName & "."

    objFSO.Close
    objTextFile.Close

    quinta-feira, 21 de junho de 2007 17:49

Respostas

  • Não testei, mas segue o link do script que usei como ref.
    http://www.microsoft.com/technet/scriptcenter/guide/sas_prn_cmrk.mspx?mfr=true


    Code Snippet

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colInstalledPrinters = objWMIService.ExecQuery _
    ("SELECT * FROM Win32_PrinterConfiguration")
    For Each objPrinter in colInstalledPrinters
    Wscript.Echo "Name: " & objPrinter.Name
    If objPrinter.Name = "IMPRESSORA" Then
    executa a ação
    Wscript.Echo "IMPRESSORA ECONTRADA"
    End if

    Next


    sábado, 23 de junho de 2007 00:11