Mapeo de impresoras en red por usuarioa

Iniciado por efer27, 24 Abril 2011, 17:00 PM

0 Miembros y 1 Visitante están viendo este tema.

efer27

Hola,

ya revise los permisos y estan correcto pero no logro que el error no salga, no me elimina las impresoras que tengo mapeadas para luego agregarlas, ufff debe ser algo tonto pero no lo veo aun.

saludos

Novlucker

Por si acaso abre una consola con permisos de administrador, y desde ahí ejecuta el script.

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

efer27

Hola,
si lo ejecute con permisos pero el error continua lo que hice fue lo siguiente.

Eliminar impresoras de RED

strComputer = "."
    Set WshNetwork = WScript.CreateObject("WScript.Network")
    Set objShell = CreateObject("Wscript.Shell")
    Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colInstalledPrinters = objWMIService.ExecQuery _
    ("Select * from Win32_Printer")
    For Each objPrinter in colInstalledPrinters
     if InStr(objPrinter.Name, "\\")> 0 then
        WshNetwork.RemovePrinterConnection objPrinter.Name
    end if
    Next

Ahora me falta agregarlas.

eh estado probando que leea desde un archivo plano pero no puedo lograrlo
es decir tengo el siguiente txt.

ouprueba1 \\server\printer
ouprueba2 \\server\printer
ouprueba3 \\server\printer

quiero que leea este archivo y lo compare con las ou que tengo en el active directory si pertenece el ou comparando con el txt que agregue la impresora.

a ver si me puedes ayudar yo sigo probando y te comento mis avances.

saludos

efer27

Hola,

eh estado revisando y es lo que tengo hasta el momento en algo me equivoco al momento de conectar

Elimina correctamente, hace el array pero no puedo agregarlo a ver si alguien me ayuda.

Gracias por la pasciencia.

-------------------------------------------------------------------------

'Set global script objects and variables
Set wshShell = WScript.CreateObject("WScript.Shell")
Set wshNetwork = WScript.CreateObject("WScript.Network")
Set wshObj = WScript.CreateObject("Scripting.FileSystemObject")

'Variables
strNetworkPath = "C:\Copia de impresoras1.txt"


'-----------------------------------------------------------------------------'
Eliminar impresora

'On Error Resume Next

Call DisconnectNetworkPrinters()
MsgBox "Ejecuta asignar prn"
Call ConnectPrinters(strNetworkPath, wshNetwork.computername)

Sub DisconnectNetworkPrinters()
  Set arPrinters = wshNetwork.EnumPrinterConnections

  For i = 0 to (arPrinters.Count - 1) Step 2
    If (Left(arPrinters.Item(i + 1), 2) = "\\") Then
      wshNetwork.RemovePrinterConnection arPrinters.Item(i + 1)
    End If
  Next
End Sub

'--------------------------------------------------------------------------------'
Conectar impresoras

Sub ConnectPrinters(strListFile, strCompname)
Dim arrLinParts()
Dim strCadTratar
  Set ListFile = wshObj.OpenTextFile(strListFile, 1)
 
  Do While ListFile.AtEndOfStream <> True
    strCadTratar = ListFile.ReadLine
    arrLineParts = Split(strCadTratar, Space(1))
   
    MsgBox strCompname & " " & strCadTratar
    If UCase(strCompname) = UCase(arrLineParts(0)) Then
   
      For i = 0 To UBound(arrLineParts)
        If arrLineParts(i) <> "" Then
          wshNetwork.AddWindowsPrinterConnection UCase(arrLineParts(i))
        End If
      Next
     
      If arrLineParts(1) <> "" Then
        wshNetwork.SetDefaultPrinter UCase(arrLineParts(1))
      End If
    End If
  Loop
 
  ListFile.Close
End Sub

efer27