Pregunta

Me gustaría tener un Windows 2003 server fuego una secuencia de comandos para disparar otra secuencia de comandos por separado, en un equipo con Windows Server 2008.

Me han dicho que Powershell puede hacer, y eso está bien, pero necesito más detalles específicos.

¿Alguien tiene algún consejo para esto?

Gracias!

¿Fue útil?

Solución

psexec de SysInternals

Otros consejos

Mira en la sintaxis para el comando AT. Se puede utilizar para programar un proceso para ejecutarse en una máquina remota.

Las programa comandos y programas de comandos AT que se ejecutan en una computadora en una hora y fecha especificada. El servicio de programación debe estar en ejecución para usar el comando AT.

AT [\\computername] [ [id] [/DELETE] | /DELETE [/YES]]
AT [\\computername] time [/INTERACTIVE]
    [ /EVERY:date[,...] | /NEXT:date[,...]] "command"

\\computername     Specifies a remote computer. Commands are scheduled on the
                   local computer if this parameter is omitted.
id                 Is an identification number assigned to a scheduled
                   command.
/delete            Cancels a scheduled command. If id is omitted, all the
                   scheduled commands on the computer are canceled.
/yes               Used with cancel all jobs command when no further
                   confirmation is desired.
time               Specifies the time when command is to run.
/interactive       Allows the job to interact with the desktop of the user
                   who is logged on at the time the job runs.
/every:date[,...]  Runs the command on each specified day(s) of the week or
                   month. If date is omitted, the current day of the month
                   is assumed.
/next:date[,...]   Runs the specified command on the next occurrence of the
                   day (for example, next Thursday).  If date is omitted, the
                   current day of the month is assumed.
"command"          Is the Windows NT command, or batch program to be run.

forma más fácil es que el uso será en dos pasos

a. instalar cygwin con un ordenador remoto

b. Hudson ejecutar ssh @ mcs '/cygdrive/c/path_to_script.bat'

Hablando de PsExec, Me gustaría fuertemente sugiero usar Cygwin/OpenSSH en su lugar.

SSH tiene múltiples ventajas (más de herramientas como PsExec o incluso por encargo de los servicios).
Por ejemplo, pruebe a utilizar con PsExec y aplicar lo que estas bash / ssh las líneas de comandos de hacer:

ssh user@remotehost "find . -name something" 2> all.errors.txt
ssh user@remotehost "grep -r something ."
if [ "$?" == "0" ]
then
    echo "FOUND"
else
    echo "NOT FOUND"
fi

Buena Suerte!

  • SSH transferencias (!) remoto stdout / stderr / estado de salida para local shell para la inspección
    (killer característica y requisito común para integrar la ejecución remota en la lógica de la escritura local)

  • Cygwin/OpenSSH proporciona estándar POSIX medio ambiente
    (eficiente inversión de tiempo, herramientas fundamentales, de la cruz-plataforma de listo, compatible hábitos, etc.)

  • Usted todavía puede/ejecutar siempre todos los nativos Aplicación de Windows
    (incluyendo la ejecución automática de los *.bat archivos por cmd procesador)

  • Usted puede configurar una contraseña de menos de auth uso de claves públicas
    (piensa en desatendida tareas automatizadas)


Punta

No era una exigencia tuve problemas con un principio:
de fondo sshd el servicio tenía que ejecutar apps de usuario con sesión gráfica
(para hacer que la ventana de la aplicación aparecen en el entorno de escritorio).

El solución aceptable para mí fue corriendo sshd servicio directamente de usuario la interfaz gráfica de usuario de la sesión
(se inicia automáticamente cuando el usuario inicia la sesión, siga el enlace para ver los cambios del archivo de configuración):

/usr/sbin/sshd -f /home/user/sshd_config

La solución aceptada de http://www.experts-exchange.com /OS/Microsoft_Operating_Systems/Q_22959948.html es:

  

Lo que proporciono era un guión que toma   parámetros ... En este caso se necesita 4.   1) Servidor: si pasa -server lo hará   Sólo hace que un servidor 2) lista: Usted   puede proporcionar un archivo de lista de servidores.   3) Servicio: Nombre del servicio que   querer modificar 4) detallado: no es   usada aquí.

     

Yo tenía algunos errores que he   cambiado en el código siguiente. Usar   cortar / pegar el código en un archivo llamado   Set-RemoteService.ps1. Asegurate que   establecer su executionpolicy para funcionar   scripts ... no lo hará por defecto. Tú   hacerlo mediante el uso de la   set-executionpolicy cmdlet. PS>   Set-executionpolicy "RemoteSigned" a   ejecutar el script que hace PS>   C: \ PathToScript \ Set-RemoteService.ps1   -lista c: \ serverlist.txt -service "DHCP"

     ######################### Param ($ servidor, la lista $, $ servicio, [Interruptor] $ detallado)      

if ($ detallado) {$ = VerbosePreference   "Continuar"} if ($ lista) {       foreach ($ SRV en (lista get-content $))       {           $ Consulta = "SELECT * FROM Win32_Service donde nombre = '$ servicio'"           $ MyService = get-WmiObject -query $ consulta -computer $ srv           $ MyService.ChangeStartMode ( "Automático")           $ MyService.Start ()       }} If ($ servidor) {       $ Consulta = "SELECT * FROM Win32_Service donde nombre = '$ servicio'"       $ MyService = get-WmiObject -query $ consulta de servidor -computer $       $ MyService.ChangeStartMode ( "Automático")       $ MyService.Start ()}

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top