Question

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 ont donc des profils locaux.

L'un des packages logiciels installés sur ce système utilise l'arborescence de régulations HKCU / Software pour ses licences. Ainsi, chaque utilisateur a la clé de licence dans son profil local.

Comment puis-je mettre à jour tous les différents registres de profils de manière déterministe?

Était-ce utile?

La solution

Il existe plusieurs façons d’obtenir ce que vous voulez - l’un plus brouillon que l’autre. Les serveurs Terminal Server peuvent être un cauchemar pour le déploiement: les utilisateurs peuvent ne pas disposer des droits pour exécuter msiexec.exe . Par conséquent, la réparation automatique de MSI peut échouer. C’est pourquoi je préfère généralement utiliser les fichiers de traitement par lots , les scripts ou les fichiers de référence , dans le type de situation auquel vous êtes confronté.

J'utiliserais la fonctionnalité d'installation active de Microsoft. Ceci est juste un nom de fantaisie pour une fonctionnalité qui vous permet "d'exécuter 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 active-setup pour un fichier MSI (il s'agit du contenu d'un fichier * .reg):

REGEDIT4

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

Le "StubPath" La commande peut être n'importe quoi "runnable", et dans votre cas, je vous suggérerais 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 dit ci-dessus: msiexec.exe peut ne pas être autorisé à s'exécuter 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 moyens d'ajouter des données au profil de chaque utilisateur, tels que Utilisation des raccourcis MSI annoncés et de la réparation automatique , mais je ne le recommanderais pas pour les serveurs Terminal Server. Voir cette réponse de serverfault.com pour plus d'informations sur les problèmes liés à l'utilisation de fichiers MSI pour les paramètres de registre. .

Autres conseils

Montez la ruche de registre par programme, modifiez les clés, puis fermez la ruche. Vous pouvez également utiliser PSExec / runas pour exécuter la commande "Mettre à jour les clés". script en tant que cet utilisateur , ce qui résout également le problème "modifier HKCU". problème

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