1 votes

Comment puis-je définir la variable ORACLE_HOME pour le compte du système local ?

J'ai rencontré un problème avec l'un de mes systèmes où plusieurs versions d'Oracle sont installées pour le support de diverses applications, mais j'ai besoin d'exécuter un programme en tant que service Windows en utilisant le compte du système local. Actuellement, j'obtiens l'erreur suivante :

System.Exception : OCIEnvNlsCreate a échoué avec le code de retour -1 mais le texte du message d'erreur n'était pas disponible.

mais j'ai été informé que cela est probablement dû à un mauvais paramétrage des variables d'environnement pour le compte du système local. Dans ce cas, comment puis-je modifier les valeurs du compte du système local ?

3voto

Evan Anderson Points 140581

Si vous ne voulez pas qu'il soit défini pour l'ensemble du système, définissez-le dans la section Système de la boîte de dialogue "Variables d'environnement" à partir de la page "Avancé" des propriétés de "Poste de travail". Cela le définira définitivement pour le contexte SYSTEM. Vous pouvez toujours l'ignorer pour chaque utilisateur.

Si vous voulez vraiment le définir sur le contexte SYSTEM uniquement, ajoutez-le à : HKEY_USERS\.Default\Environment

Si vous voulez utiliser l'interface utilisateur d'Explorer pour le faire, lancez une invite de commande en tant que SYSTEM en utilisant l'astuce "at (time now + 1 minute) /INTERACTIVE CMD" à partir de la session de la console, tuez le processus Explorer exécuté sous votre compte utilisateur et lancez Explorer à partir de l'invite de commande SYSTEM.

Je définirais simplement la variable d'environnement du système.

0 votes

Votre réponse est en deux parties. La première partie, "Section système de la boîte de dialogue Variables d'environnement", ne fonctionne pas sur Server 2008 R2.

0 votes

@daveloyall - Je ne vous suis pas. La section Système de la boîte de dialogue "Variables d'environnement", accessible depuis l'onglet "Avancé" de la feuille "Propriétés" de l'ordinateur, est bien présente dans Windows Server 2008 R2 (et les versions ultérieures de Windows Server). Une variable d'environnement spécifiée à cet endroit sera disponible dans l'environnement par défaut de tous les processus nouvellement créés après l'ajout de l'entrée (sauf si elle est remplacée par une variable d'environnement de niveau utilisateur). Je ne vois aucune différence de comportement dans W2K8R2 par rapport aux versions antérieures ou ultérieures de Windows Server. Vous pouvez peut-être nous en dire plus.

0 votes

Oui, ce que vous avez décrit est ce à quoi je m'attendais d'après ce que j'ai lu sur Internet. Y compris la partie concernant "tous les processus nouvellement créés [recevront le nouvel environnement]". Cependant, cela n'a pas fonctionné pour moi. Plus tard, j'ai appris que mes processus recevaient effectivement le nouvel environnement après un redémarrage...

1voto

Maximus Minimus Points 8917

J'envisagerais également de créer un compte de service dédié, de lui accorder les droits dont il a besoin, de configurer le service pour qu'il s'exécute sous ces informations d'identification et de définir la variable ORACLE_HOME pour le profil de ce compte. Vous trouverez qu'il est plus facile d'auditer ce que votre programme fait de cette façon aussi.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X