Probleme avec delphi et WMI.
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.
Code:
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; |
Voilà cela marche pour acceder à un Windows 2000 mais pas un 2003 ;)
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
Re: Probleme avec delphi et WMI.
Salut,
Citation:
Envoyé par LeBigornot
Message d'erreur : "Accès refusé" et j'ai beaucoup de mal à comprendre pourquoi.
Je pencherais pour un problème de droit insuffisant.
L'eventlog ne contient pas d'info ?