Domanda

Mi piacerebbe avere un fuoco Windows 2003 server uno script di sparare un altro script in un ambiente Windows Server 2008 Computer separata.

Mi è stato detto che Powershell può farlo, e va bene, ma ho bisogno di dettagli più specifici.

Qualcuno ha qualche consiglio per questo?

Grazie!

È stato utile?

Soluzione

psexec da Sysinternals

Altri suggerimenti

Esaminare la sintassi del comando AT. Si può usare per pianificare un processo per l'esecuzione su una macchina remota.

I comandi e programmi di comando AT pianifica per l'esecuzione su un computer a un determinato periodo di tempo e la data. Il servizio di pianificazione deve essere in esecuzione da usare il 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.

modo più semplice che uso sarà in due fasi

a. l'installazione di Cygwin per PC remoto

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

Parlando PsExec, avrei con forza suggerire di usare Cygwin / OpenSSH invece.

SSH ha molteplici vantaggi (oltre strumenti come bash o anche servizi fatti su misura).
Ad esempio, cercano di usare con ssh e attuare ciò che queste linee *.bat / cmd comando do:

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

Buona fortuna!

    trasferimenti
  • SSH (!) Stato output / error / uscita telecomando per locale di shell per l'ispezione
    (Caratteristica killer e requisito comune per integrare l'esecuzione remota nella logica di script locali)

  • Cygwin / OpenSSH fornisce standard shell POSIX ambiente
    (Investimenti efficienti tempo, strumenti fondamentali, cross-platform pronti, abitudini compatibili, ecc.)

  • È ancora possibile / sempre eseguire tutti nativi di Windows applicazione
    (Compresa l'esecuzione automatica di file sshd da <=> processore)

  • È possibile configurare autenticazione senza password utilizzando le chiavi pubbliche
    (Pensare a operazioni automatiche non presidiate)


Suggerimento

C'è stato un requisito Ho avuto problemi con inizialmente:
sfondo <=> servizio doveva eseguire applicazioni in di utente grafica sessione
(Per rendere finestra dell'applicazione appare in ambiente desktop).

Il accettabile soluzione per me correvo <=> servizio direttamente in dell'utente GUI sessione
(Avvia automaticamente quando l'utente si collega, seguire il link per vedere i cambiamenti del file di configurazione):

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

La soluzione accettata da http://www.experts-exchange.com /OS/Microsoft_Operating_Systems/Q_22959948.html è:

  

Quello che fornisco è uno script che prende   parametri ... In questo caso si impiegano 4.   1) Server: se si passa -server lo farà   solo fai un server 2) Lista: Si   in grado di fornire un file di elenco di server.   3) Servizio: Nome del servizio   vuole modificare 4) Verbose: non è   qui utilizzato.

     

Ho avuto alcuni errori che ho   cambiato nel codice seguente. Usare   taglia / incolla il codice in un file chiamato   Set-RemoteService.ps1. Essere sicuri di   impostare l'executionpolicy a correre   script ... non lo farà per impostazione predefinita. voi   farlo usando il   Set-ExecutionPolicy cmdlet. PS>   Set-ExecutionPolicy "RemoteSigned" per   eseguire lo script si fa PS>   C: \ PathToScript \ Set-RemoteService.ps1   -list c: \ ServerList.txt -service "DHCP"

     ######################### Param ($ server, $ lista, $ servizio, [interruttore] $ verbose)      

if ($ verbose) {$ VerbosePreference =   "Continua"} if ($ list) {       foreach ($ SRV nel (Get-Content $ list))       {           $ Query = "select * from Win32_Service dove Name = '$ servizio'"           $ MyService = Get-WmiObject -query $ query -computer $ SRV           $ MyService.ChangeStartMode ( "Automatico")           $ MyService.Start ()       }} If ($ server) {       $ Query = "select * from Win32_Service dove Name = '$ servizio'"       $ MyService = Get-WmiObject -query $ -computer $ server di query       $ MyService.ChangeStartMode ( "Automatico")       $ MyService.Start ()}

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top