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.
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
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
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
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.
Partager