Come posso eseguire a distanza di uno script in Windows?
-
21-08-2019 - |
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!
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 filesshd
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 ()}