Foros del Web » Soporte técnico » Sistemas Operativos »

Dominio

Estas en el tema de Dominio en el foro de Sistemas Operativos en Foros del Web. Que tal, espero me puedan ayudar, resulta que necesito ejecutar un archivo en maquinas que se encuentran en un dominio pero quisiera saber si hay ...
  #1 (permalink)  
Antiguo 01/08/2008, 01:00
Avatar de chernobyl  
Fecha de Ingreso: abril-2006
Mensajes: 44
Antigüedad: 18 años
Puntos: 0
Pregunta Dominio

Que tal, espero me puedan ayudar, resulta que necesito ejecutar un archivo en maquinas que se encuentran en un dominio pero quisiera saber si hay manera de hacerlo mediante mi controlador de dominio y de esta manera no tenga que realizarlo maquina por maquina. Hay alguna manera de hacer esto?? Como puedo hacerle para que las maquinas puedan tomar esta archivo y ejecutarlo en determinado momento??

Gracias por su atención.
__________________
"Lo imposible son solo sueños que se llevan en la mente esperando volverese realidad, algunos llegan a serlo y los demas solo siguen siendo eso, sueños...."
  #2 (permalink)  
Antiguo 01/08/2008, 12:40
Avatar de dogduck  
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 18 años, 3 meses
Puntos: 19
Respuesta: Dominio

Puedes usar este script en vbs.
Para ejecutar un comando en cada equipo del dominio

Código:
'Script Name: ExecuteAll.vbs

Option Explicit

Dim oDomain, oService, oItem, oShell
Dim strDomain, strSpec, strCommand, intButton
Dim oArgs, strFinalCommand, oRegEx, boolConfirm

' Prepare to execute commands & do popups
Set oShell = CreateObject("WScript.Shell")

GetArguments

' Access the domain so we can traverse objects
WScript.Echo "Accessing NT Domain " & strDomain
Set oDomain = GetObject("WinNT://" & strDomain)

' Initiate our regular expression support
Set oRegEx = New RegExp
oRegEx.Pattern = strSpec
oRegEx.IgnoreCase = True

' Traverse each computer (WinNT) object in the domain
WScript.Echo "Searching for " & strSpec
oDomain.Filter = Array("Computer") ' only look at computers
For Each oItem In oDomain
If oRegEx.Test(oItem.Name) Then
WScript.Echo " Matched " & oItem.Name
strFinalCommand = Replace(strCommand, "$n", oItem.Name)

intButton = vbNo
If boolConfirm Then
intButton = oShell.Popup("Execute " & strFinalCommand & "?",,_
"System " & oItem.Name, vbYesno + vbQuestion)
End If
If (boolConfirm = False) Or (intButton = vbYes) Then
WScript.Echo " Executing: " & strFinalCommand
execute strFinalCommand
End If
End If
Next

' All done; clean up
Set oItem = Nothing
Set oRegEx = Nothing
Set oDomain = Nothing
Set oShell = Nothing
Set oArgs = Nothing

'
' Glean the arguments for our run from the command line, if provided.
' If any are missing, prompt for input. A blank input signals an abort.
'
' /Y is an optional last argument
Sub GetArguments
Dim i, strConfirm, intButton
Set oArgs = WScript.Arguments

boolConfirm = True ' assume always confirm
strDomain = "" ' domain to be traversed
strSpec = "" ' name specification to be matched
strCommand = "" ' command to be executed on each match
strConfirm = "" ' track prompting for confirmation setting

' Look for our optional 4th argument
If oArgs.Length = 4 Then
If UCase(oArgs.Item(3)) = "/Y" Then
boolConfirm = False
strConfirm = "/Y" ' don't prompt below
End If
End If

' Look for any specified arguments, in order
If oArgs.Length >= 1 Then strDomain = oArgs(0)
If oArgs.Length >= 2 Then strSpec = oArgs(1)
If oArgs.Length >= 3 Then strCommand = oArgs(2)

' Prompt for any arguments not specified on the command line
If strDomain = "" Then
strDomain = InputBox _
("Enter the name of the NT Domain to be traversed", _
"NT Domain")
End If
If strDomain = "" Then WScript.Quit
strDomain = UCase(strDomain)

If strSpec = "" Then
strSpec = InputBox _
("Enter your name specification for the computer(s) " & _
"that will be matched within the " & strDomain & " Domain." & _
vbCrlf & "Regular Expressions are acceptable.", _
"Name Specification")
End If
If strSpec = "" Then WScript.Quit

If strCommand = "" Then
strCommand = InputBox _
("Enter the command to be executed on each computer matching " & _
strSpec & " within the " & strDomain & " Domain." & _
vbCrlf & "$n will be substituted for the computer name.", _
"Command to Execute")
End If
If strCommand = "" Then WScript.Quit

If strConfirm = "" Then
intButton = oShell.Popup("Confirm each command prior to execution?",,_
"Confirm?", vbYesNo + vbQuestion)
If intButton = vbNo Then
boolConfirm = False
End If
End If
End Sub

' Execute a command. Each is always run under a new instance of the command
' processor. This allows the use of built-in commands and I/O redirection.
'
' We won't wait for command completion.
Sub Execute(strCommand)
Dim RetVal

strCommand = "%COMSPEC% /c " & strCommand

RetVal = oShell.Run(strCommand, 1, False)
End Sub
se ejecutaria tal que:

inicio > ejecutar > ExecuteAll.vbs midominio * "start \\servidor\compartida\lotes.bat"

pruebalo y nos cuentas, pero yo que tu 1º haria una prueba light, hay que ser prudente con ejecutar cosas en todo un dominio.

Otra forma seria deifinir en el script de incicio de sesion de cada usuario una llamada a lo que quieras ejecutar.

Si fuera un script de inicio de sesion con .bat o .cmd, seria simplemente:

start \\servidor\compartida\lotes.bat

salu2
  #3 (permalink)  
Antiguo 02/08/2008, 01:53
Avatar de chernobyl  
Fecha de Ingreso: abril-2006
Mensajes: 44
Antigüedad: 18 años
Puntos: 0
Pregunta Respuesta: Dominio

Gracias dogduck por la respuesta solo tengo una duda:
este script lo ejecuto individualmente en cada maquina o lo puedo hacer desde el controlador de dominio de manera general para cada una de las mismas???

Gracias.
__________________
"Lo imposible son solo sueños que se llevan en la mente esperando volverese realidad, algunos llegan a serlo y los demas solo siguen siendo eso, sueños...."
  #4 (permalink)  
Antiguo 02/08/2008, 02:15
Avatar de dogduck  
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 18 años, 3 meses
Puntos: 19
Respuesta: Dominio

se ejecutaria validado como administrador del dominio desde una maquina. Y si analizas el código, el script busca en el dominio especificado todos los ordenadores que se parezcan al 2º parametro, en este caso la expresion regular *, o sea todos los pcs de ese dominio.

Si tienes dudas con el código o como ejecutarlo, lo postearia en el foro de programación (VB o VBS)

salu2
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:05.