Ich habe mir jetzt die Function
SidToStr selbst zusammengebastelt, nachdem ich sie nirgends finden so oder in einer
Unit konnte. Für den Fall, dass jemand Interesse hat:
Delphi-Quellcode:
Function SIDToStr(SID:Windows.PSID):WideString;
Var
SIA : PSIDIdentifierAuthority;
dwCount : Cardinal;
I : Integer;
Begin
If Not isValidSID(SID) Then
Result:='Error'
Else
Begin
Result:='S-'+IntToStr(Byte(SID^))+'-';
SIA:=GetSIDIdentifierAuthority(SID);
Result:=Result+IntToStr(SIA.Value[5]);
dwCount:=GetSIDSubAuthorityCount(SID)^;
For I:=0 To (dwCount-1) Do
Result:=Result+'-'+IntToStr(GetSIDSubAuthority(SID,I)^);
End;
End;
Allerdings stehe ich vor demselben Problem wie das Programm LSALogon von Remko. Die letzten drei bzw. vier Ziffern des SID stimmen nicht. Damit komme ich nicht in diesen Unterschlüssel rein.
Ich habe jetzt auf mehreren Rechnern festgestellt, dass es neben der 1003 auch noch mehrere Möglichkeiten gibt. Meine Idee, die 500 einfach durch eine 1003 zu ersetzen, geht damit leider auch nicht mehr. Schade eigentlich.