home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2004 February
/
Chip_2004-02_cd1.bin
/
zkuste
/
konfig
/
download
/
msic
/
Help
/
Int
/
MiTeC_AccountsNT.int
next >
Wrap
Text File
|
2003-08-26
|
3KB
|
98 lines
{*******************************************************}
{ }
{ MiTeC System Information Component }
{ Windows NT User and Group Enumeration }
{ version 8.3 for Delphi 5,6,7 }
{ }
{ Copyright ⌐ 1997,2002 Michal Mutl }
{ }
{*******************************************************}
{$INCLUDE MITEC_DEF.INC}
unit MiTeC_AccountsNT;
interface
uses Windows, Classes, SysUtils;
type
PUserInfo = ^TUserInfo;
TUserInfo = record
Name: string;
Comment: string;
Sid: string;
NumberOfSubAuths: DWORD;
SidLength: DWORD;
Domain: string;
SidType: DWORD;
FullName: string;
LastLogon: TDateTime;
LastLogoff: TDateTime;
LogonCount: DWORD;
end;
PGroupInfo = ^TGroupInfo;
TGroupInfo = record
Name: string;
Comment: string;
Sid: string;
NumberOfSubAuths: DWORD;
SidLength: DWORD;
Domain: string;
SidType: DWORD;
end;
TAccounts = class(TPersistent)
private
FUsers, FLocalGroups, FGlobalGroups: TStringList;
FMachine: string;
procedure FreeUserList(var AList: TStringList);
procedure FreeGroupList(var AList: TStringList);
function GetLocalGroup(Index: DWORD): PGroupInfo;
function GetUser(Index: DWORD): PUserInfo;
function GetUserCount: DWORD;
function GetLocalGroupCount: DWORD;
function GetGlobalGroup(Index: DWORD): PGroupInfo;
function GetGlobalGroupCount: DWORD;
procedure RetrieveUsers(AMachine: string);
procedure RetrieveLocalGroups(AMachine: string);
procedure RetrieveGlobalGroups(AMachine: string);
function GetSIDFromAccount(AMachine, AName: string; var Domain: string; var SidLen,SubAuthCount,NameUse: DWORD): string;
public
constructor Create;
destructor Destroy; override;
procedure RefreshUsers;
procedure RefreshLocalGroups;
procedure RefreshGlobalGroups;
procedure GetUserLocalGroups(AMachine, AUsername: string; var AList: TStringList);
procedure GetLocalGroupUsers(AMachine, AGroupname: string; var AList: TStringList);
procedure GetUserGlobalGroups(AMachine, AUsername: string; var AList: TStringList);
procedure GetGlobalGroupUsers(AMachine, AGroupname: string; var AList: TStringList);
property Machine: string read FMachine write FMachine;
property UserCount: DWORD read GetUserCount;
property Users[Index: DWORD]: PUserInfo read GetUser;
property LocalGroupCount: DWORD read GetLocalGroupCount;
property LocalGroups[Index: DWORD]: PGroupInfo read GetLocalGroup;
property GlobalGroupCount: DWORD read GetGlobalGroupCount;
property GlobalGroups[Index: DWORD]: PGroupInfo read GetGlobalGroup;
end;
function GetNameUseStr(Value: DWORD): string;
function ConvertSIDToStringSID(ASID: PChar): string;
implementation