Exécuter le script de désinstallation lorsque l'utilisateur redémarre l'ordinateur

1

J'ai un script et j'ai créé une tâche en tant que tâche dans le Planificateur de tâches pour exécuter le script qui désinstallera un programme. Le déclencheur que j'utilise est, On Event & gt; Système> WinLogon> ID d'événement 1074 (j'ai également utilisé l'ID 7002). Cela ne fonctionne pas pour exécuter le script lors du redémarrage.

Le problème que je rencontre est que le script (qui fonctionne bien) ne s'exécute pas avant le redémarrage physique de l'ordinateur.

Ma question:

Si une commande de redémarrage est exécutée, comment puis-je exécuter un script qui désinstallera un programme ENSUITE le redémarrage? Ou est-ce pas possible et je devrais aller d'une autre manière?

L'objectif est d'exécuter le script lorsque l'utilisateur n'interagit pas avec l'ordinateur et que la connexion n'est pas une option (pour d'autres raisons). L'exécution du script lors de la connexion peut être une option mais uniquement s'il n'y a pas d'autres options.

De l'aide?

Benjamin Jones
la source
1
Merci pour le conseil. Je l'ai réussi à travailler en tant que "système" avec l'ID d'événement 1074 par USER32 (journal système). je suis entrain de courir shutdown /a au début et shutdown /r /t 00 à la fin.
week
Vous dites que, une fois que la tâche est en cours d'exécution, le script appelle shutdown / a exécute ensuite ce dont il a besoin, puis appelle shutdown / r / t 00? Intéressant. Je vais devoir essayer ça.
Benjamin Jones
Oui, sans cela, je craindrais que Windows n'interrompe mon script. Aussi, comme vous l'avez écrit, vous avez "Winlogon" comme source, mais dans mes journaux, je vois ces événements de "USER32".
week

Réponses:

2

Tu devrais aller autrement. Les politiques sont ce que vous voulez utiliser ici. Même pour les ordinateurs qui ne font pas partie d'un domaine, les stratégies vous permettent de lancer et encore mieux les scripts de déconnexion.

J'utilise moi-même cette technique pour sauvegarder des sections clés de mon propre profil.

Commencez par créer un fichier .cmd qui sera votre script. L'exécution de ce fichier .cmd doit exécuter l'action souhaitée sans intervention de l'utilisateur (sinon votre ordinateur se bloquera à l'arrêt, s'il attend une entrée d'utilisateur qui ne viendra jamais)

Puis configurez-le en tant que script d'arrêt.

Aller à start et le type gpedit.msc pour lancer l'éditeur de stratégie de groupe local.

Vous pouvez utiliser deux types: Déconnexion (s’applique aux utilisateurs) et arrêt, s’applique lorsque votre ordinateur est arrêté.

Votre script de désinstallation ressemble à quelque chose que vous souhaitez empêcher une deuxième fois si un utilisateur devait se déconnecter et se reconnecter, pas seulement à la fin de sa session informatique.

Alors allez à: User Configuration - & gt; Windows Settings - & gt; `Scripts (Connexion / Déconnexion)

A droite, double clic Logoff appuyez sur la Ajouter... bouton et accédez à votre fichier .cmd. Hit OK et c'est fait.

Notez que ce fichier .cmd est toujours chargé avec vos droits d’utilisateur, mais que votre profil n’est plus utilisé. Le script peut donc supprimer / éditer / copier / etc tout votre profil sans aucun problème.

Vous pouvez même faire référence aux variables globales telles que% USERNAME%,% APPDATA%,% LOCALAPPDATA%, etc.

Si vous avez vraiment besoin que cela se produise au redémarrage ou à l'arrêt de l'ordinateur, utilisez Computer Configuration et naviguez jusqu'au Shutdown les scripts. (même endroit)

LPChip
la source
C'est une option à coup sûr et cela fonctionnera. Existe-t-il un moyen de créer ce gpo via une ligne de commande pour la stratégie de groupe local? Je sais que je peux utiliser Group Policy Manager via Win Server pour faire sortir le GPO. Cependant, le script de déconnexion que je dois exécuter fait partie d'un autre script qui fera déjà partie d'un objet de stratégie de groupe. J'ai besoin de créer le gpo de déconnexion, car l'utilisateur sera invité via vbscript popup s'il veut redémarrer. Si tel est le cas, le script est ajouté et sera exécuté lors de la fermeture de session. Le script de connexion serait peut-être plus facile pour cela. Merci!
Benjamin Jones
Ou vous pouvez toujours utiliser vbscript à la fermeture de session et programmer une coche. Si un certain fichier existe lors de la fermeture de session, cela se poursuit. Sinon, la désinstallation sera ignorée. Vous pouvez même vérifier si le programme de désinstallation existe. Mais un simple "MyUsername_uninstall.dat" même si 0 octet peut être vérifié et que le script de désinstallation supprime à nouveau ce fichier. Une simple commande echo . >"myUsername_uninstall.dat" ferait ce dossier
LPChip