La meilleure façon d'ajouter des clés et des valeurs HKCU pour tous les utilisateurs existants et tous les nouveaux utilisateurs?

11

J'ai besoin d'ajouter des clés et des valeurs HKCU à toutes les machines dans une unité d'organisation spécifique, pour tous les profils utilisateur existants et au profil par défaut. Quelle est la meilleure façon d'aborder cela?

Je pourrais énumérer et parcourir tous les NTUSER.DAT, en chargeant la ruche, en ajoutant les clés et en déchargeant la ruche, mais cela semble être un moyen maladroit de le faire.

Quelqu'un a une meilleure idée? J'aimerais écrire un script (PowerShell de préférence) et pousser les modifications si possible, mais les scripts d'ouverture de session de stratégie de groupe fonctionneraient également.

Doug Chase
la source
Lecture recommandée : stackoverflow.com/questions/1423687/…
Stein Åsmul
Qu'en est-il des préférences de stratégie de groupe?
Bill_Stewart

Réponses:

13

Ma méthode préférée consiste à utiliser la configuration active. Ce qu'il fait, c'est vérifier quand un utilisateur se connecte à une machine s'il a exécuté un script ou une commande particulière (comme celle que vous auriez) et sinon, l'exécuter. Ainsi, vous n'exécuterez un script particulier pour un utilisateur qu'une seule fois sur son poste de travail. J'ai trouvé que c'était parfait pour écrire à HKCU, car vous n'avez pas à charger chaque ruche et seuls les comptes auxquels les gens se connectent sont modifiés.

Pas pour se promouvoir, mais j'ai écrit un article de blog à ce sujet. La solution de base est la suivante:

Ajoutez les entrées de registre suivantes:

[HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components\UniqueID]
"Version"=""
"Stubpath"=""
@=""
  • Vous pouvez choisir n'importe quel ID unique que vous souhaitez. Les GUID sont souvent utilisés, mais vous pouvez utiliser tout ce qui sera unique.
  • Version est le numéro de version que vous souhaitez utiliser.
  • Stubpathest la commande qui sera exécutée. Les appels MSI, EXE et VBS semblent tous convenir.
  • C'est @ce qui doit être affiché lorsque la commande est en cours d'exécution.

Avec cette solution, le langage de script n'est pas pertinent. Vous pouvez créer un fichier VBScript, Powershell, Batch. Tout ce qui vous permet d'écrire sur HKCU en tant qu'utilisateur connecté. L'utilisation reg.exedirecte fonctionne également très bien.

L'autre touche finale facultative que vous pourriez apporter est de charger et de modifier la ruche utilisateur par défaut. Cela définirait la valeur de registre pour tous les nouveaux utilisateurs qui se connectent pour la première fois à ce système particulier.

Rob Haupt
la source
Je serai damné, ça a l'air parfait. Je n'avais jamais entendu parler d'Active Setup auparavant. Testez maintenant! Merci.
Doug Chase
Bonne réponse de 20th Century Boy également, mais Active Setup est la solution la plus simple et la plus fiable à mon avis. Vous pouvez exécuter tout ce qui est "exécutable".
Stein Åsmul
2
Comment gère-t-il l'écriture dans HKLM, en particulier lorsque l'utilisateur n'est pas administrateur? Votre article de blog pourrait vraiment utiliser un exemple - tout comme cet article.
Ian Boyd
7

Vous pouvez ajouter des clés d'enregistrement personnalisées en créant un fichier adm personnalisé et en l'important en tant que modèle dans la section Modèles d'administration d'un objet de stratégie de groupe. Liez ensuite cet objet de stratégie de groupe à votre unité d'organisation. Il y a des documents chez MS sur la façon de faire cela, ou vous pouvez regarder les fichiers adm qui existent déjà sur le serveur (quelque part sous Sysvol je pense).

Ce processus est appelé "tatouer le registre" et cela signifie que vous êtes hors du contrôle de la suppression de la stratégie de groupe, c'est-à-dire que les entrées de registre resteront même si la stratégie est supprimée. Vous devez créer une clé de registre "inversée" et la déployer (ou simplement la supprimer).

PowerApp101
la source
C'est aussi une bonne solution, et je parie que ces deux réponses fonctionneraient.
Doug Chase