Question

Je voudrais avoir un feu de serveur Windows 2003, un script pour tirer un autre script dans un Windows Server 2008 ordinateur séparé.

On m'a dit que Powershell peut le faire, et c'est très bien, mais je dois des détails plus spécifiques.

Quelqu'un at-il des conseils pour cela?

Merci!

Était-ce utile?

La solution

psexec de SysInternals

Autres conseils

Regardez dans la syntaxe de la commande AT. Vous pouvez l'utiliser pour planifier un processus à exécuter sur une machine distante.

Les horaires de commande commandes AT et des programmes à exécuter sur un ordinateur à un moment précis et la date. Le service de planification doit être en cours d'exécution à utiliser la commande 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.

manière la plus simple qui est l'utilisation sera en deux étapes

a. l'installation de Cygwin à un PC distant

b. exécutez hudson ssh @ s /cygdrive/c/path_to_script.bat 'mcs

En parlant de PsExec, je fortement suggère d'utiliser à la place Cygwin / OpenSSH.

SSH présente de multiples avantages (sur des outils tels que les services ou même bash sur mesure).
Par exemple, essayez d'utiliser et mettre en œuvre avec ce que ssh ces lignes de commande *.bat / cmd font:

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

Bonne chance!

  • transferts SSH (!) Statut stdout / stderr / sortie à distance locale shell pour inspection
    (Fonction tueur et exigence commune d'intégrer l'exécution à distance dans la logique des scripts locaux)

  • Cygwin / OpenSSH fournit standard environnement shell POSIX
    (Investissement efficace du temps, des outils fondamentaux, les habitudes, prêts compatibles multiplateformes, etc.)

  • Vous pouvez toujours / courir toujours tous natif application Windows
    (Y compris l'exécution automatique des fichiers sshd par <=> processeur)

  • Vous pouvez configurer auth sans mot de passe à l'aide des clés publiques
    (Pensez à des tâches automatisées sans surveillance)


Conseil

Il y avait une exigence que j'avais des problèmes avec d'abord:
arrière-plan de service devait <=> exécuter des applications en session graphique de l'utilisateur
(Pour faire la fenêtre d'application apparaissent dans l'environnement de bureau).

Le solution acceptable pour moi dirigeais le service <=> directement session de l'interface graphique de l'utilisateur
(Démarrer automatiquement lorsque l'utilisateur se connecte, suivez le lien pour voir les modifications du fichier de configuration):

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

La solution acceptée de http://www.experts-exchange.com /OS/Microsoft_Operating_Systems/Q_22959948.html est:

  

Ce que je fournis est un script qui prend   paramètres ... Dans ce cas, il faut 4.   1) Serveur: si vous passez -server il sera   ne faites qu'un serveur 2) Liste: Vous   peut fournir un fichier de liste des serveurs.   3) Service: Nom du service que vous   vouloir modifier 4) verbeux: n'est pas   utilisé ici.

     

J'ai eu quelques erreurs que je   changé dans le code suivant. Utiliser   couper / coller le code dans un fichier appelé   Set-RemoteService.ps1. Assurez-vous de   définir votre executionpolicy pour exécuter   scripts ... il ne sera pas par défaut. Toi   faire en utilisant les   set-executionpolicy cmdlet. PS>   Set-ExecutionPolicy "RemoteSigned" à   exécutez le script que vous faites PS>   C: \ PathToScript \ Set-RemoteService.ps1   -list c: \ serverlist.txt -Service "DHCP"

     ######################### Param ($ server, liste $, $ service, [switch] $ verbeux)      

if ($ verbose) {$ VerbosePreference =   "Continuer"} if (liste $) {       foreach (srv $ en (get-content liste $))       {           $ Query = "select * from Win32_Service où Name = '$ service'"           $ MyService = get-WmiObject -query $ query -ordinateur $ srv           myService.ChangeStartMode $ ( "Automatique")           myService.Start $ ()       }} If ($ server) {       $ Query = "select * from Win32_Service où Name = '$ service'"       $ MyService = get-WmiObject -query $ query -ordinateur serveur $       myService.ChangeStartMode $ ( "Automatique")       myService.Start $ ()}

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top