Question

Sous Windows 2003, je cherche un moyen de créer un " script de déconnexion " qui se poursuivra avec la fermeture de session en cours, puis connectera immédiatement un autre utilisateur. Ainsi, & Quot; UtilisateurA & Quot; se déconnecte. Le script se déclenche pour se connecter & Quot; UserB & Quot ;.

Cela fait partie d’une mise à niveau d’application pour un ordinateur sur lequel nous avons écrit le 'shell'; semblable à une application de kiosque. Pour la mise à niveau, nous devons nous connecter en tant qu'administrateur, puis, une fois la mise à niveau terminée, vous déconnecter de l'administrateur et vous connecter en tant qu'utilisateur_exemple. Nous aimerions accomplir cela SANS redémarrer.

Remarque, je ne veux pas de script qui initie la déconnexion (c'est-à-dire & "; arrêt &";). Je recherche un script qui sera exécuté à la connexion de l'utilisateur. désactivé (défini via les stratégies de groupe). Comme ci-dessus, le script doit connecter un autre utilisateur.

Merci.

Était-ce utile?

La solution

Ne pensez pas que c'est possible de la manière indiquée (script à la fermeture de session).

Vous devez configurer la machine pour qu'elle se connecte automatiquement en tant que compte spécifié, puis se déconnecte (en la connectant automatiquement pour vous), puis vous devez de nouveau désactiver cette fonctionnalité par la suite en plaçant un script de connexion temporaire. ... semble généralement en désordre.

Le paramètre réel peut être défini à l’aide d’outils tels que Microsofts Shared Computer Toolkit ou un outil similaire (vous ne savez pas exactement comment la " normale " connexion automatique au registre se comporte lors de la déconnexion manuelle, mais j’ai eu un XP kiosque qui se connecterait automatiquement instantanément, même si vous vous déconnectiez manuellement - vous deviez le remplacer à l’aide de touches telles que Maj + Déconnexion pour pouvoir spécifier manuellement à nouveau la connexion, afin qu’elle puisse être créée).

Le " plus facile " pourrait être de remplacer msgina.dll par quelqu'un de votre choix ...

Mais pourquoi faites-vous cela? Utilisez simplement runas et démarrez ce que vous devez faire en tant qu’autre utilisateur sans déconnecter l’utilisateur de la console - c’est un système multi-utilisateurs après tout? Le bureau est juste fluff ^^

( Cela nécessitera de toute façon que les informations d’identité de l’utilisateur soient disponibles dans votre script, ce qui le rendrait redondant lorsque vous compromettez la sécurité de ce compte - ce qui défie le but d’avoir ce deuxième compte en premier lieu, par exemple. quel que soit le but, il existe? )

Autres conseils

Je voudrais essayer de configurer le registre pour qu'il se connecte automatiquement avec l'utilisateur souhaité, puis se déconnecter de l'utilisateur admin. Cela devrait connecter votre utilisateur de kiosque immédiatement.

Vous ne savez pas comment vous connecter à un autre utilisateur une fois que l'utilisateur actuel s'est déconnecté (vous ne savez pas si Windows vous le permet ...)

Mais vous pouvez utiliser shutdown pour vous déconnecter:

shutdown /?

Voici quelques idées qui tombent probablement dans le & "; bidouille pas cher &"; catégorie:

Pourquoi ne pas vous connecter d'abord à UserB, puis utiliser runas /user:userA <cmd> pour exécuter la première partie du processus d'installation?

Si cela est inacceptable, je sais qu'il existe un moyen de faire en sorte que les postes de travail Windows (ceux qui ne font pas partie d'un domaine) se connectent automatiquement à un compte d'utilisateur donné après un redémarrage. Peut-être que si vous regardez quelles modifications du registre ont lieu et que vous les dupliquez, un redémarrage connecterait automatiquement cet utilisateur. (Bien entendu, à l’étape finale, une fois que l’utilisateur B s’est connecté, vous devrez annuler ces modifications: -)

Je me pose également la question de savoir s’il existe peut-être un moyen pour un service de forcer l’ouverture d’un & écran de connexion & "; pour vous connecter en tant que certain utilisateur. Vous pouvez peut-être utiliser une méthode similaire à celle utilisée par le Bureau à distance ... Si cela est possible, vous pouvez créer un service que vous installez avant la fermeture de session de l'utilisateurA, ce qui déclencherait la connexion de l'utilisateurB.

Vous pouvez créer un script avec VNC (il existe de nombreuses versions gratuites, faites votre choix). Configurez un processus de serveur VNC sur la machine pour écouter sur localhost. Lorsque l'utilisateur se déconnecte, votre script de fermeture de session se connecte à la machine à l'aide de VNC et envoie les frappes au clavier nécessaires pour se connecter au prochain utilisateur. VNC utilise le protocole RFB (remote framebuffer); il existe des bibliothèques pour la plupart des langues populaires, vous devriez donc pouvoir faire fonctionner quelque chose rapidement. Sinon, il existe des outils connexes pourrait aider.

Si vous deviez exécuter ce type de script en tant que script normal dans une langue donnée, cela ne fonctionnerait probablement pas car lorsque vous vous déconnectez de votre compte, tous les processus doivent être supprimés avec votre script en cours d'exécution.

Vous pourrez peut-être créer une sorte de "service" qui serait exécuté sur un compte de service (c'est-à-dire toujours actif) qui ferait automatiquement basculer cet utilisateur pour vous.

Mes paris sont sur Windows Powershell, bien que je ne sois pas tout à fait sûr de la fonctionnalité dont il dispose pour créer un service.

Une recherche rapide fait apparaître les éléments suivants (le deuxième lien renvoie à un forum, mais il est question de lancer Powershell en tant que service et d'envoyer à ce service un paramètre qui constituerait le chemin d'accès à votre script de changement d'utilisateur)

Comment créer un service Windows à l'aide de Powershel

Script Powershell en tant que service Windows

Je n'ai pas de serveur Windows 2003 ni de système doté d'un " règles de groupe " configuration pour tester mon intuition, mais vous pouvez jeter un oeil sur SU (& "; changer d'utilisateur &";) pour Windows. Faisant initialement partie de la trousse à outils, elle a été étendue à un nouveau SUperior SU . Publiez les résultats / le script si cela fonctionne.

Vous pouvez aborder cette question du point de vue de la construction d’un utilitaire de contrôle à distance (comme VNC, etc.). Le gros problème ici est que si vous souhaitez accéder à l'écran de connexion (c'est-à-dire CTRL + ALT + SUPPR / nom d'utilisateur / mot de passe), le seul élément déclencheur est qu'un service Windows est le seul composant pouvant accéder à cet élément. doivent en créer un.

Le seul problème que je vois avec cette technique dans son ensemble est que même si vous faisiez beaucoup d'efforts pour la faire fonctionner (et que ce serait un très gros effort), les chances que cela fonctionne avec le tout provenant d'un script de fermeture de session (c'est-à-dire lorsque les commandes sont en cours de fermeture) sont faibles, même en raison du nombre de problèmes pouvant survenir lors de la connexion en tant qu'administrateur.

N'oubliez pas que pour tout ce que vous devez exécuter en tant qu'administrateur, Windows dispose de moyens plus simples pour y parvenir (comme Exécuter en tant que, modifier les autorisations des utilisateurs sur les éléments à mettre à jour, etc.).

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