Bonjour,
Je souhaite faire du remote WMI à partir de mon programme. Ce programme est un Service (d'ou l'appelle a LogonUser).
Mon probleme est que je n'arrive pas à me connecter (ConnectServer) à une machine avec Window 2003.
Message d'erreur : "Accès refusé" et j'ai beaucoup de mal à comprendre pourquoi.
Voilà cela marche pour acceder à un Windows 2000 mais pas un 2003
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 begin if not LogonUser (User, '', Pass, LOGON32_LOGON_BATCH, LOGON32_PROVIDER_DEFAULT, Logon) then WriteLn(F,SysErrorMessage(GetLastError)); // Use the User now logged ImpersonateLoggedOnUser(Logon); CoInitialize(nil); WMILocator:= TSWbemLocator.Create(nil); try WriteLn(F,'ConnectServer'); WmiService:= WMILocator.ConnectServer(Serv, 'ROOT\CIMV2', '', '', '', '', wbemConnectFlagUseMaxWait, nil); WriteLn(F,'Connected'); except on E:Exception do begin WriteLn(F,E.Message); end; end; WMILocator.Free; RevertToSelf; CloseHandle(Logon); end;
Ceci dit en utilisant le même code dans une programme en ligne de commande (pas un Service avec LOCALSYSTEM) çà marche très bien
D'ailleurs en paramétrant mon Service pour qu'il se lance avec un compte utilisateur spécifié çà marche partout ...
Merci
Partager