2009-09-14 6 views
1

J'ai un système Windows Server 2003 utilisé pour les services de terminal. Nous n'utilisons pas de profils itinérants. Nous n'utilisons pas de scripts de connexion. J'ai environ trente à quarante comptes qui se connectent à ce système et en tant que tels ont des profils locaux.Mise à jour du registre de chaque profil sous Windows Server 2003

L'un des progiciels installés sur ce système utilise HKCU/Software reg tree pour ses licences et chaque utilisateur dispose donc de la clé de licence dans son profil local. Comment puis-je mettre à jour de manière déterministe tous ces registres de profils différents?

Répondre

1

Il existe plusieurs façons de réaliser ce que vous voulez - un clunkier que la autre. Les serveurs Terminal Server peuvent être un cauchemar de déploiement: les utilisateurs peuvent ne pas avoir le droit d'exécuter msiexec.exe et, par conséquent, l'auto-réparation de MSI peut échouer. C'est pourquoi je préfère généralement utiliser fichiers batch, scripts ou fichiers reg pour le genre de situation que vous faites face.

J'utiliserais la fonctionnalité de configuration active de Microsoft. C'est juste un nom sophistiqué pour une fonctionnalité qui vous permet de "lancer quelque chose une fois par profil lors de la connexion". Voici une bonne explication: http://www.etlengineering.com/installer/activesetup.txt

Voici un exemple d'entrée de configuration active pour un fichier MSI (ce qui est le contenu d'un fichier * .reg):

REGEDIT4 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components\[ProductCode]] 
"StubPath"="[SystemFolder]msiexec.exe /q /fou [ProductCode]" 

La commande « StubPath » peut être quelque chose "exécutable", et dans votre cas, je suggère de ne pas exécuter msiexec.exe, mais plutôt un vbscript via cscript.exe ou un autre mécanisme de traitement par lots (CMD, REG, Etc ...). La raison est ce que j'ai indiqué ci-dessus: msiexec.exe ne peut pas être autorisé à fonctionner pour les utilisateurs du serveur Terminal Server. En d'autres termes, quelque chose comme ceci:

REGEDIT4 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components\MyProduct] 
"StubPath"="[SystemFolder]cmd.exe /k C:\SomeScript.cmd" 

Il existe d'autres façons d'ajouter des données sur le profil de chaque utilisateur, comme using advertised MSI shortcuts and self-repair, mais je ne recommanderais pas que pour les serveurs de terminaux. Voir this serverfault.com answer pour plus d'informations sur les problèmes d'utilisation des fichiers MSI pour les paramètres de registre.

0

Montez la ruche de registre par programme, changez les clés, puis fermez la ruche. Sinon, vous pouvez utiliser Psexec/runas pour exécuter la « mettre à jour les clés » script que l'utilisateur, qui résout également le problème « modifier HKCU »

+0

Comment monter tous les ruche par programme? Je n'ai pas encore trouvé comment le faire. – Ian

+0

Essayez la commande "reg load" –

+1

Je ne recommanderais pas cela - vous n'avez pas besoin de mettre à jour les profils utilisateur "hors contexte" comme ceci. Les effets secondaires sont probables et les conséquences imprévisibles. –