Ayuda a un novato

22/02/2006 - 01:26 por Macleod | Informe spam
Hola, tengo un servidor de dominio 2003 y mis clietnes son XP, intento
automatizar la conexión de impresoras a una predeterminada con un script que
bajé de la página de scripts de microsoft y el mismo es el siguiente:

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "oot\cimv2")

Set colInstalledPrinters = objWMIService.ExecQuery _
("Select * from Win32_Printer Where Name = 'ScriptedPrinter'")

For Each objPrinter in colInstalledPrinters
objPrinter.SetDefaultPrinter()
Next

LO QUE YO HAYO ES CAMBIAR EN DONDE DICE

("Select * from Win32_Printer Where Name = 'ScriptedPrinter'")

YO PONGO EL NOMBRE DE MI IMPRESORA:

("Select * from Win32_Printer Where Name = Lex_02'")

PERO NO FUNCIONA, NO GENERA ERROR PERO NO HACE NADA. SI LO HAGO ASÍ...

("Select * from Win32_Printer Where Name = '\incon1\Lex02'")

QUE ES EL NOMBRE DE MI SERVIDOR Y MI IMPRESORA ME ENVIA EL SIGUIENTE ERROR:

Error: 0x80041017
Código: 80041017
Origen: (null)

SERIA ALGUIEN TAN AMABLE DE EXPLICARME QUÉ ESTÁ MAL.
GRACIAS!!

Preguntas similare

Leer las respuestas

#1 Enrique de la Garza
22/02/2006 - 06:59 | Informe spam
Unas preguntas, ¿tienes compartida la impresora del servidor?
¿Los usuarios tienen los provilegios y permisos para accesar la impresora?

Saludos,

Enrique Javier de la Garza Vidaurri
DeGarvi Consultores
"Macleod" escribió en el mensaje
news:
Hola, tengo un servidor de dominio 2003 y mis clietnes son XP, intento
automatizar la conexión de impresoras a una predeterminada con un script


que
bajé de la página de scripts de microsoft y el mismo es el siguiente:

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "oot\cimv2")

Set colInstalledPrinters = objWMIService.ExecQuery _
("Select * from Win32_Printer Where Name = 'ScriptedPrinter'")

For Each objPrinter in colInstalledPrinters
objPrinter.SetDefaultPrinter()
Next

LO QUE YO HAYO ES CAMBIAR EN DONDE DICE

("Select * from Win32_Printer Where Name = 'ScriptedPrinter'")

YO PONGO EL NOMBRE DE MI IMPRESORA:

("Select * from Win32_Printer Where Name = Lex_02'")

PERO NO FUNCIONA, NO GENERA ERROR PERO NO HACE NADA. SI LO HAGO ASÍ...

("Select * from Win32_Printer Where Name = '\incon1\Lex02'")

QUE ES EL NOMBRE DE MI SERVIDOR Y MI IMPRESORA ME ENVIA EL SIGUIENTE


ERROR:

Error: 0x80041017
Código: 80041017
Origen: (null)

SERIA ALGUIEN TAN AMABLE DE EXPLICARME QUÉ ESTÁ MAL.
GRACIAS!!
Respuesta Responder a este mensaje
#2 Juansa [MS MVP]
22/02/2006 - 15:41 | Informe spam
Intenta con éste:
*principio
Set WshNetwork = CreateObject("WScript.Network")
PrinterPath = "\ombre servidorombre recurso compartido"
PrinterDriver = "nombre del controlador"
WshNetwork.AddWindowsPrinterConnection PrinterPath, PrinterDriver
WshNetwork.SetDefaultPrinter "\ombre servidorombre recurso compartido"
fin*

nombre de recurso compartido=impresora.
nombre del controlador=nombre que aparece en la ficha de la impresora del controlador

Espero serte de ayuda.
Salu2!
You'll never walk alone!

Juansa
MS MVP Windows Server Networking
[Spain]
http://www.msmvps.com/blogs/juansa/default.aspx
http://spaces.msn.com/members/jsllopis/
http://www.juansa.net

"La vida es fascinante: sólo hay que mirarla a través de las gafas
correctas".
Alejandro Dumas (1803-1870); escritor francés

"Aprender sin pensar es inútil. Pensar sin aprender, peligroso".
"Learning without thought is labor lost; thought without learning is
perilous."
Confucio (551-479 a. C.); filósofo chino.

"Un error no se convierte en verdad por el hecho de que todo el mundo
crea en él, tampoco una verdad puede transformarse en error cuando nadie se
adhiere a ella".
Mahatma Gandhi (1869-1948); político y pensador indio.
"Macleod" escribió en el mensaje news:
Hola, tengo un servidor de dominio 2003 y mis clietnes son XP, intento
automatizar la conexión de impresoras a una predeterminada con un script que
bajé de la página de scripts de microsoft y el mismo es el siguiente:

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "oot\cimv2")

Set colInstalledPrinters = objWMIService.ExecQuery _
("Select * from Win32_Printer Where Name = 'ScriptedPrinter'")

For Each objPrinter in colInstalledPrinters
objPrinter.SetDefaultPrinter()
Next

LO QUE YO HAYO ES CAMBIAR EN DONDE DICE

("Select * from Win32_Printer Where Name = 'ScriptedPrinter'")

YO PONGO EL NOMBRE DE MI IMPRESORA:

("Select * from Win32_Printer Where Name = Lex_02'")

PERO NO FUNCIONA, NO GENERA ERROR PERO NO HACE NADA. SI LO HAGO ASÍ...

("Select * from Win32_Printer Where Name = '\incon1\Lex02'")

QUE ES EL NOMBRE DE MI SERVIDOR Y MI IMPRESORA ME ENVIA EL SIGUIENTE ERROR:

Error: 0x80041017
Código: 80041017
Origen: (null)

SERIA ALGUIEN TAN AMABLE DE EXPLICARME QUÉ ESTÁ MAL.
GRACIAS!!
Respuesta Responder a este mensaje
#3 Macleod
23/02/2006 - 00:54 | Informe spam
Gracias a ambos, trataré este y + tarde comento lo que pasó. Son muy amables

"Juansa [MS MVP]" escribió:

Intenta con éste:
*principio
Set WshNetwork = CreateObject("WScript.Network")
PrinterPath = "\ombre servidorombre recurso compartido"
PrinterDriver = "nombre del controlador"
WshNetwork.AddWindowsPrinterConnection PrinterPath, PrinterDriver
WshNetwork.SetDefaultPrinter "\ombre servidorombre recurso compartido"
fin*

nombre de recurso compartido=impresora.
nombre del controlador=nombre que aparece en la ficha de la impresora del controlador

Espero serte de ayuda.
Salu2!
You'll never walk alone!

Juansa
MS MVP Windows Server Networking
[Spain]
http://www.msmvps.com/blogs/juansa/default.aspx
http://spaces.msn.com/members/jsllopis/
http://www.juansa.net

"La vida es fascinante: sólo hay que mirarla a través de las gafas
correctas".
Alejandro Dumas (1803-1870); escritor francés

"Aprender sin pensar es inútil. Pensar sin aprender, peligroso".
"Learning without thought is labor lost; thought without learning is
perilous."
Confucio (551-479 a. C.); filósofo chino.

"Un error no se convierte en verdad por el hecho de que todo el mundo
crea en él, tampoco una verdad puede transformarse en error cuando nadie se
adhiere a ella".
Mahatma Gandhi (1869-1948); político y pensador indio.
"Macleod" escribió en el mensaje news:
> Hola, tengo un servidor de dominio 2003 y mis clietnes son XP, intento
> automatizar la conexión de impresoras a una predeterminada con un script que
> bajé de la página de scripts de microsoft y el mismo es el siguiente:
>
> strComputer = "."
> Set objWMIService = GetObject("winmgmts:" _
> & "{impersonationLevel=impersonate}!\\" & strComputer & "oot\cimv2")
>
> Set colInstalledPrinters = objWMIService.ExecQuery _
> ("Select * from Win32_Printer Where Name = 'ScriptedPrinter'")
>
> For Each objPrinter in colInstalledPrinters
> objPrinter.SetDefaultPrinter()
> Next
>
> LO QUE YO HAYO ES CAMBIAR EN DONDE DICE
>
> ("Select * from Win32_Printer Where Name = 'ScriptedPrinter'")
>
> YO PONGO EL NOMBRE DE MI IMPRESORA:
>
> ("Select * from Win32_Printer Where Name = Lex_02'")
>
> PERO NO FUNCIONA, NO GENERA ERROR PERO NO HACE NADA. SI LO HAGO ASÍ...
>
> ("Select * from Win32_Printer Where Name = '\incon1\Lex02'")
>
> QUE ES EL NOMBRE DE MI SERVIDOR Y MI IMPRESORA ME ENVIA EL SIGUIENTE ERROR:
>
> Error: 0x80041017
> Código: 80041017
> Origen: (null)
>
> SERIA ALGUIEN TAN AMABLE DE EXPLICARME QUÉ ESTÁ MAL.
> GRACIAS!!

Respuesta Responder a este mensaje
#4 Macleod
23/02/2006 - 01:03 | Informe spam
Funciona Perfectamente MUCHAS GRACIAS!!
Ahora si no es mucha molestia y abusando de tu amabilidad y conocimientos...
como puedo hacer para que dependiento del grupo al que pertenece un usuario
de Active Directory le conecte a tal o cual impresora?

"Juansa [MS MVP]" escribió:

Intenta con éste:
*principio
Set WshNetwork = CreateObject("WScript.Network")
PrinterPath = "\ombre servidorombre recurso compartido"
PrinterDriver = "nombre del controlador"
WshNetwork.AddWindowsPrinterConnection PrinterPath, PrinterDriver
WshNetwork.SetDefaultPrinter "\ombre servidorombre recurso compartido"
fin*

nombre de recurso compartido=impresora.
nombre del controlador=nombre que aparece en la ficha de la impresora del controlador

Espero serte de ayuda.
Salu2!
You'll never walk alone!

Juansa
MS MVP Windows Server Networking
[Spain]
http://www.msmvps.com/blogs/juansa/default.aspx
http://spaces.msn.com/members/jsllopis/
http://www.juansa.net

"La vida es fascinante: sólo hay que mirarla a través de las gafas
correctas".
Alejandro Dumas (1803-1870); escritor francés

"Aprender sin pensar es inútil. Pensar sin aprender, peligroso".
"Learning without thought is labor lost; thought without learning is
perilous."
Confucio (551-479 a. C.); filósofo chino.

"Un error no se convierte en verdad por el hecho de que todo el mundo
crea en él, tampoco una verdad puede transformarse en error cuando nadie se
adhiere a ella".
Mahatma Gandhi (1869-1948); político y pensador indio.
"Macleod" escribió en el mensaje news:
> Hola, tengo un servidor de dominio 2003 y mis clietnes son XP, intento
> automatizar la conexión de impresoras a una predeterminada con un script que
> bajé de la página de scripts de microsoft y el mismo es el siguiente:
>
> strComputer = "."
> Set objWMIService = GetObject("winmgmts:" _
> & "{impersonationLevel=impersonate}!\\" & strComputer & "oot\cimv2")
>
> Set colInstalledPrinters = objWMIService.ExecQuery _
> ("Select * from Win32_Printer Where Name = 'ScriptedPrinter'")
>
> For Each objPrinter in colInstalledPrinters
> objPrinter.SetDefaultPrinter()
> Next
>
> LO QUE YO HAYO ES CAMBIAR EN DONDE DICE
>
> ("Select * from Win32_Printer Where Name = 'ScriptedPrinter'")
>
> YO PONGO EL NOMBRE DE MI IMPRESORA:
>
> ("Select * from Win32_Printer Where Name = Lex_02'")
>
> PERO NO FUNCIONA, NO GENERA ERROR PERO NO HACE NADA. SI LO HAGO ASÍ...
>
> ("Select * from Win32_Printer Where Name = '\incon1\Lex02'")
>
> QUE ES EL NOMBRE DE MI SERVIDOR Y MI IMPRESORA ME ENVIA EL SIGUIENTE ERROR:
>
> Error: 0x80041017
> Código: 80041017
> Origen: (null)
>
> SERIA ALGUIEN TAN AMABLE DE EXPLICARME QUÉ ESTÁ MAL.
> GRACIAS!!

Respuesta Responder a este mensaje
#5 Juansa [MS MVP]
23/02/2006 - 13:08 | Informe spam
Puedes adaptar alguno de los que pego abajo

''
' VBScript Source File -- Created with SAPIEN Technologies PrimalSCRIPT(TM)
'
' NAME: <filename>
'
' AUTHOR: Bryan Nyce , Home
' DATE : 4/10/2003
'
' COMMENT: <comment>
'
'Option Explicit
On Error Resume Next


Dim oFSO, oWshNetwork, oGroupDict


'Map drives based on Group memberships
If IsMember("Group1") Then
MapDrive "S:", "\\Server\Share"
End If


If IsMember("Group2") Then
MapDrive "T:", "\\Server\Share1"
MapDrive "P:", "\\Server2\Share2"
End If


'Supporting function to enumerate group memberships
Function IsMember(sGroup)
Dim sAdsPath, oUser, oGroup


If IsEmpty(oGroupDict) Then
Set oGroupDict CreateObject("Scripting.Dictionary")
oGroupDict.CompareMode vbTextCompare


sAdsPath oNet.UserDomain & "/" & oNet.UserName
Set oUser GetObject("WinNT://" & sAdsPath & ",user")


For Each oGroup In oUser.Groups
oGroupDict.Add oGroup.Name, "-"
Next


Set oUser Nothing
End If


IsMember CBool(oGroupDict.Exists(sGroup))


End Function


'Supporting function to Map drives
'If drive letter is in use, attempts to remove connection.
'Returns True if drive mapped, False otherwise.
Function MapDrive(sDrive, sShare)
Dim oDrive


On Error Resume Next
Err.Clear


If oFSO.DriveExists(sDrive) Then
Set oDrive oFSO.GetDrive(sDrive)
If Err.Number <> 0 Then
Err.Clear




Function fl_Es_Miembro(str_Grupo)
'**************************************************************************­************************
'
'Autor: Fernando Reyes
'
'Esta función tiene por finalidad encontrar la pertenencia a un determinado grupo (que se recibe
'como parámetro) de el usuario que lanza el script. La devolución es booleana: en caso de que el
'usuario pertenezca al grupo devuelve True; en caso de no pertenencia devuelve False.
'
'**************************************************************************­************************


Dim str_ADs_Path 'Cadena utilizada para generar la ruta ADSI del usuario
Dim obj_Usuario 'Objeto que se cargará con la información del usuario
Dim obj_Grupo 'Objeto para cada cargar la información de un grupo
Dim obj_Net 'Objeto Network del que partimos para obtener el objeto usuario


'Creamos el objeto Network
Set obj_Net = CreateObject("Wscript.Network")


'Montamos la ruta ADSI del usuario y creamos el objeto de usuario
str_ADs_Path = obj_Net.UserDomain & "/" & obj_Net.UserName
Set obj_User = GetObject("WinNT://" & str_ADs_Path & ",user")


'En este bucle vamos recorriendo uno a uno los grupos a los que pertenece el usuario
For Each obj_Grupo In obj_User.Groups


'Si el grupo coincide con el recibido como parámetro salimos de la función
'devolviendo True
If StrComp(str_Grupo, obj_Grupo.Name, vbTextCompare) = 0 Then
fl_Es_Miembro =True
Exit Function
End If


Next


'Si hemos terminado el bucle, es porque no se ha encontrado el grupo recibido entre
'aquellos a los que pertenece el usuario, por tanto la devolución de esta función
'será False
fl_Es_Miembro = False


End Function


'Ejemplo de cómo se utilizaría la función para montar una unidad "S: "a los usuarios del grupo "Esclavos de Tercera"


If fl_Es_Miembro("Esclavos de Tercera")=True Then


'creamos el objeto NetWork que utilizaremos para montar la unidad
Set obj_Net = CreateObject("Wscript.Network")


'Mapeamos la unidad
obj_Net.MapNetworkDrive "s:", "\\servidor\carpeta_de_los_esclavos_de_tercera"


EnD If


Espero serte de ayuda.
Salu2!
You'll never walk alone!


Juansa
MS MVP Windows Server Networking
[Spain]
http://www.msmvps.com/blogs/juansa/default.aspx
http://spaces.msn.com/members/jsllopis/
http://www.juansa.net

"La vida es fascinante: sólo hay que mirarla a través de las gafas
correctas".
Alejandro Dumas (1803-1870); escritor francés

"Aprender sin pensar es inútil. Pensar sin aprender, peligroso".
"Learning without thought is labor lost; thought without learning is
perilous."
Confucio (551-479 a. C.); filósofo chino.

"Un error no se convierte en verdad por el hecho de que todo el mundo
crea en él, tampoco una verdad puede transformarse en error cuando nadie se
adhiere a ella".
Mahatma Gandhi (1869-1948); político y pensador indio.
"Macleod" escribió en el mensaje news:
Funciona Perfectamente MUCHAS GRACIAS!!
Ahora si no es mucha molestia y abusando de tu amabilidad y conocimientos...
como puedo hacer para que dependiento del grupo al que pertenece un usuario
de Active Directory le conecte a tal o cual impresora?

"Juansa [MS MVP]" escribió:

Intenta con éste:
*principio
Set WshNetwork = CreateObject("WScript.Network")
PrinterPath = "\ombre servidorombre recurso compartido"
PrinterDriver = "nombre del controlador"
WshNetwork.AddWindowsPrinterConnection PrinterPath, PrinterDriver
WshNetwork.SetDefaultPrinter "\ombre servidorombre recurso compartido"
fin*

nombre de recurso compartido=impresora.
nombre del controlador=nombre que aparece en la ficha de la impresora del controlador

Espero serte de ayuda.
Salu2!
You'll never walk alone!

Juansa
MS MVP Windows Server Networking
[Spain]
http://www.msmvps.com/blogs/juansa/default.aspx
http://spaces.msn.com/members/jsllopis/
http://www.juansa.net

"La vida es fascinante: sólo hay que mirarla a través de las gafas
correctas".
Alejandro Dumas (1803-1870); escritor francés

"Aprender sin pensar es inútil. Pensar sin aprender, peligroso".
"Learning without thought is labor lost; thought without learning is
perilous."
Confucio (551-479 a. C.); filósofo chino.

"Un error no se convierte en verdad por el hecho de que todo el mundo
crea en él, tampoco una verdad puede transformarse en error cuando nadie se
adhiere a ella".
Mahatma Gandhi (1869-1948); político y pensador indio.
"Macleod" escribió en el mensaje news:
> Hola, tengo un servidor de dominio 2003 y mis clietnes son XP, intento
> automatizar la conexión de impresoras a una predeterminada con un script que
> bajé de la página de scripts de microsoft y el mismo es el siguiente:
>
> strComputer = "."
> Set objWMIService = GetObject("winmgmts:" _
> & "{impersonationLevel=impersonate}!\\" & strComputer & "oot\cimv2")
>
> Set colInstalledPrinters = objWMIService.ExecQuery _
> ("Select * from Win32_Printer Where Name = 'ScriptedPrinter'")
>
> For Each objPrinter in colInstalledPrinters
> objPrinter.SetDefaultPrinter()
> Next
>
> LO QUE YO HAYO ES CAMBIAR EN DONDE DICE
>
> ("Select * from Win32_Printer Where Name = 'ScriptedPrinter'")
>
> YO PONGO EL NOMBRE DE MI IMPRESORA:
>
> ("Select * from Win32_Printer Where Name = Lex_02'")
>
> PERO NO FUNCIONA, NO GENERA ERROR PERO NO HACE NADA. SI LO HAGO ASÍ...
>
> ("Select * from Win32_Printer Where Name = '\incon1\Lex02'")
>
> QUE ES EL NOMBRE DE MI SERVIDOR Y MI IMPRESORA ME ENVIA EL SIGUIENTE ERROR:
>
> Error: 0x80041017
> Código: 80041017
> Origen: (null)
>
> SERIA ALGUIEN TAN AMABLE DE EXPLICARME QUÉ ESTÁ MAL.
> GRACIAS!!

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida