[2008R2] xp_cmdshell et citrix
Bonjour,
Au sein de ma société, on utilise un planning informatisé dont on a pas accès au code. Donc pour effectuer les contrôle de validité des enregistrements et les actions à réaliser suite à ces enregistrements, je les est programmer dans la DB (SQL SEVER 2008 EXPRESS) (trigger update et inserted).
Cela fonctionne parfaitement. Mais en cas de refus par la DB, l'utilisateur ne reçoit qu'un message générique de l'application cliente.
Etant donné que tous les utilisateurs sont en terminal server, j'aurais voulus leur faire parvenir un message plus détaillé sur la cause du refus via msg.exe de windows.
Voici le code que j'ai testé pour cela.
Code:
1 2 3
| EXECUTE AS LOGIN = 'mondomaine\admin' ;
GO
exec xp_cmdshell 'msg user_client /server:srv-citrix "problème date vitrage"' |
L'utilisateur mondomaine\admin est sysadmin et administrateur domaine.
Si j’exécute
Code:
msg user_client /server:srv-citrix "problème date vitrage"
dans une fenêtre DOS sur le serveur hébergent la DB, ca fonctionne.
Mais via SQL SERVER, j'obtient l'erreur suivante : Erreur lors de l'envoi d'un message à la session ICA-tcp#7*: erreur 5 Erreur [5]*:Accès refusé.
J'ai également essayer en mettant mon instruction
Code:
msg user_client /server:srv-citrix "problème date vitrage"
dans un fichier .bat et de lancer le fichier .bat via xp_cmdshell.
mais j'obtiens la même erreur.
J'ai également essayer en mettant
Code:
runas /savecred /user:mondomaine\admin msg user_client /server:srv-citrix "problème date vitrage"
dans mon fichier .bat. Là, ça bloque car il attends que l'on rentre le mot de passe de l'admin.
Quelqu'un aurais une solution à me proposer?
En vous remerciant d'avance.
Solution partielle - espère mieux
J'ai trouver l'origine du problème.
SQL Sevrer est lancé en tant que service avec le compte 'autorite nt\service reseau'. Celui ci n'a bien entendu pas les autorisation pour utiliser librement msg.exe sur le serveur citrix (distinct du serveur sql).
En modifiant mon service pour qu'il se lance avec le compte 'mondomaine\admin', cela fonctionne.
Mais en lançant le service SQL SERVER avec un compte admin domaine, je crée une potentiel faille de sécurité, non?
Si quelqu'un à une autre solution à me proposer?
Merci d'avance