Comment planifier un file batch pour fonctionner lors du démarrage ou de l'arrêt?

J'ai 2 files par lots qui envoient des courriels destinés à notifier un arrêt ou un démarrage du server. Les files par lots appellent un exe avec un seul argument, le message à envoyer. L'exe provient d'un programme vb.net utilisant system.net.mail.

Les files de commands fonctionnent correctement à partir d'une invite de commands et les e-mails sont reçus.

Maintenant, je veux que ces files batch s'exécutent automatiquement lorsque le operating system démarre et que le operating system soit éteint, sans qu'aucun user ne soit connecté.

J'ai essayé de tester cela sur une machine Win 8.1 qui, je crois, devrait fonctionner de la même manière que sur Server 2012 R2. Si c'est une mauvaise hypothèse, veuillez en informer.

Voici donc ce que j'ai essayé:

1) Task Scheduler (mais uniquement pour le démarrage, il n'y a pas d'option d'arrêt)

2) Éditeur de stratégie de groupe local> Configuration de l'ordinateur> Paramètres Windows> Scripts (Démarrage / Arrêt)

Dans les deux cas, la configuration semblait très simple, mais les emails ne sont jamais envoyés.

Quelqu'un peut-il me donner des idées sur des considérations sur lesquelles je ne pense pas?

Les permissions de problème sont-elles? Comment le saurais-je?

Est-ce le problème "Il semble programmé mais n'est pas"?

Le problème est-il que les files par lots ne peuvent pas être utilisés de cette façon?

Comme c'est la première fois que je suis en train de faire cela, je suis très certain que je manque quelque chose de basique.

3 Solutions collect form web for “Comment planifier un file batch pour fonctionner lors du démarrage ou de l'arrêt?”

Ce n'est vraiment pas une réponse en raison des deux limitations indiquées ci-dessous, mais il est trop long pour un commentaire, donc …

J'ai fait un test simple avec les deux défauts suivants:

  1. Les scripts ne sont pas envoyés par courrier électronique. J'ai besoin du relais smtp de mon FAI, mais il est trop difficile de le find.
  2. Je teste sur un aperçu Win10, pas un Win8.1. C'est ce que j'ai ce soir.

À l'intérieur de Local Group Policy Editor > Computer Configuration > Windows Settings > Scripts (Startup/Shutdown) , j'ai mis un script startup powershell dans le directory de startup et un script powershell d'arrêt dans le directory d' shutdown .

J'ai pris soin d'append les scripts sous l'onglet Powershell Scripts dans chacun des noeuds de démarrage et de démarrage.

Je me suis assuré que j'ai un directory appelé c:\temp car j'étais trop paresseux pour l'exécuter.

J'ai également fait en sorte que les scripts powershell soient autorisés en cours d'exécution:

 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned 

Voici le script de démarrage:

 if (!(Test-Path c:\temp\log.txt)) {New-Item -ItemType file -Path c:\temp\log.txt} $timestamp = get-date $ssortingng = "$timestamp UP!" $ssortingng | Out-File -FilePath c:\temp\log.txt -Append -NoClobber 

Voici le script d'arrêt:

 if (!(Test-Path c:\temp\log.txt)) {New-Item -ItemType file -Path c:\temp\log.txt} $timestamp = get-date $ssortingng = "$timestamp DOWN!" $ssortingng | Out-File -FilePath c:\temp\log.txt -Append -NoClobber 

J'ai ensuite redémarré l'ordinateur. Voici le contenu du file c:\temp\log.txt :

 06/01/2015 00:07:45 DOWN! 06/01/2015 00:08:10 UP! 

Je m'attends à ce que ce soit le même résultat en l'envoyant un courrier, mais on ne peut pas être sûr évidemment jusqu'à ce que l'on essaie réellement …

Étudier et utiliser les commentaires et les réponses de chacun a réellement aidé à résoudre mon problème, mais comme c'est le cas, le problème réel était quelque peu différent. Donc, je me sens obligé de publier ce qui s'est avéré être le problème réel pour moi, au cas où quelqu'un d'autre serait pris par le même "gotcha".

Pendant les tests de script, il semblait plus commode de travailler sur ma machine Win 8.1; il s'avère que ce n'était pas le cas. J'avais supposé que ma machine Win 8.1 fonctionnerait de manière identique au server 2012 R2; mon hypothèse était fausse.

L'instant où j'ai tout transféré sur mes servers R2 2012, les scripts ont fonctionné sans problème et l'ont depuis. Je ne peux pas expliquer pourquoi la machine Win 8.1 a réagi différemment, elle l'a fait.

Donc, ma solution était de ne plus utiliser une machine Win 8 ou 8.1 pour tester les scripts de démarrage / arrêt, il suffit de le faire sur le server cible.

(Désolé pour la réponse différée, j'étais hors de la ville en voyage prolongé)

Accédez au spectateur, searchz les events de security d'ouverture de session et de fermeture de session, cliquez dessus avec le button droit de la souris et ajoutez une tâche pour cet événement qui envoie un courrier électronique.

C'est la meilleure façon.

  • Windows Server 2012 supprime le disque dur externe pour les non-administrateurs
  • CMD User Active Directory
  • Impossible de renommer l'ordinateur avec powershell
  • Pourquoi mon timezone Windows Server 2012 R2 change-t-il de nuit?
  • Problème d'printing avec un server RDSH distant avec VPN
  • Arrêtez le server Windows 2012R2 KVM VM
  • Le server Windows ne peut pas se connecter à d'autres servers via VPN
  • Politique de security locale / problèmes de droits de mise à jour Windows Serveur 2012 R2
  • SQL Mirgations - Domaine de confiance ou de ne pas faire confiance?
  • Autorisation refusée d'un lien symbolique vers un dossier partagé
  • Enregistrement analytique Windows dns vers une destination distante
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.