Question

Il s’agit d’un ordinateur Windows 2003 qui s’allume tous les matins, mais ne se connecte que quelques heures plus tard.

Je veux utiliser le temps intermédiaire pour exécuter un script de sauvegarde c: \ script \ backup.cmd

Comment puis-je démarrer cette opération sans surveillance une fois la machine installée?

J'ai essayé 2 clés de registre, mais le script a été exécuté après qu'un utilisateur se soit connecté (ce qui est trop tard):

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices

Finalement, j'ai utilisé Windows TaskScheduler, qui a une telle option, mais je me demandais s'il y avait une autre possibilité?

Était-ce utile?

La solution

Réponse courte: GPEDIT.MSC (Démarrer, Exécuter, GPEdit.msc)

Windows 2000 et versions ultérieures [1] proposent une collection d’ordinateurs Scripts de démarrage dans l’éditeur de stratégies:

  • Paramètres de l'ordinateur - > Paramètres Windows - > Scripts (démarrage / arrêt)

Il existe une zone de script connexion équivalente (c'est-à-dire après le démarrage de l'ordinateur, lorsqu'un utilisateur se connecte) dans le bit de configuration de l'utilisateur.

Plus long:

GPEDIT.MSC est la console d'édition de la stratégie de groupe et s'exécute sur le magasin de stratégies de groupe de l'ordinateur local lorsqu'il est utilisé directement. Il est donc utile pour définir des paramètres locaux uniquement. Lorsque vous utilisez Active Directory, la même interface est utilisée pour modifier les objets de stratégie de groupe hébergés par la forêt , de sorte que les mêmes paramètres soient disponibles sur de nombreux ordinateurs.

Les scripts de démarrage de l'ordinateur s'exécutent dans le contexte informatique , c'est-à-dire LocalSystem, comme vous l'avez indiqué, de sorte qu'ils ne peuvent souvent pas accéder aux lecteurs réseau qui nécessitent le fonctionnement d'un certain groupe ou utilisateur, etc. . Lorsque les ordinateurs accèdent au réseau, ils utilisent généralement (avec des exceptions) leur compte MACHINENAME $.

Un script de démarrage constitue un moyen simple et rapide d’exécuter un processus au démarrage de la machine.

Le processus de démarrage de l'ordinateur sera affecté par le temps nécessaire à l'exécution du programme. Vous voudrez peut-être donc l'appeler à l'aide de la commande START à partir d'un fichier de commandes ou spécifier de ne pas attendre l'exécution de l'exécutable. quel que soit le langage de script que vous utilisez. (Le point clé: lancer le script de manière asynchrone sauf s’il est critique ou n’a pas besoin de s’exécuter de manière asynchrone, car cela ne prendra toujours pas de temps . Long boots = utilisateurs mécontents).

L'utilisation d'un service Win32 est une autre option. Vous pouvez utiliser l'utilitaire SRVANY du Kit de ressources pour "Service-ify". à peu près n'importe quel exécutable. VS.Net 2002 et les versions ultérieures vous permettent également de créer directement un service géré.

Et le Planificateur de tâches dispose de beaucoup plus de capacités à partir de Vista / 2008, capable d'exécuter des scripts au démarrage, à l'état inactif et / ou lorsque les journaux des événements sont générés ou certains les autres conditions sont remplies: c'est plutôt cool! Les tâches planifiées présentent l’avantage possible de pouvoir spécifier le compte utilisateur sous lequel la tâche est exécutée, si cela est important pour vous.

Avertissement Scriptor: http://support.microsoft.com/kb/256320

Exécuter les scripts de démarrage de manière asynchrone: http://msdn.microsoft.com/en-us/library/ms811602. aspx

Planificateur de tâches Vista (quoi de neuf): http://technet.microsoft.com/en-us/appcompat/aa906020. aspx

[1] Windows XP, 2003, Vista / 2008, Windows 7 / 2008R2, Windows 8/2012, Windows 8.1 / 2012R2, Windows 10 / Windows Server 2016. Tout. Mais NT4 non!

Autres conseils

Vous avez déjà présenté une bonne solution:

Configurez une tâche planifiée à exécuter au démarrage et autorisez l'exécution du travail lorsque l'utilisateur n'est pas connecté.

Vous pouvez exécuter un script au démarrage du système à l'aide de la stratégie de groupe gpedit.msc

La façon dont vous faites déjà cela me semble bien; Toutefois, si vous souhaitez une approche alternative, les services sont lancés au démarrage de la machine. Vous pouvez ainsi écrire un service qui détecte s'il s'agit d'un nouveau jour (pour permettre les redémarrages) et s'il exécute ensuite votre sauvegarde.

Si je le faisais comme service, j'utiliserais TCL parce que je le connais et l'aime et qu'il a une extension twapi qui vous permet d'exécuter un script en tant que service. D'autres langages de script peuvent bien avoir des installations similaires.

En effet, si vous utilisez Active Directory. Si vous pouvez isoler l'ordinateur avec sa propre unité d'organisation ou utiliser le filtrage WMI, vous pouvez affecter un objet de stratégie de groupe doté d'un script de démarrage pour l'ordinateur. Cela garantirait que même si quelqu'un passait en mode sans échec et désactivait le planificateur de tâches, le script serait exécuté au démarrage et à la connexion au domaine.

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