📄 jwalmaccess.pas
字号:
MODALS_MIN_PASSWD_LEN_PARMNUM = 1;
{$EXTERNALSYM MODALS_MIN_PASSWD_LEN_PARMNUM}
MODALS_MAX_PASSWD_AGE_PARMNUM = 2;
{$EXTERNALSYM MODALS_MAX_PASSWD_AGE_PARMNUM}
MODALS_MIN_PASSWD_AGE_PARMNUM = 3;
{$EXTERNALSYM MODALS_MIN_PASSWD_AGE_PARMNUM}
MODALS_FORCE_LOGOFF_PARMNUM = 4;
{$EXTERNALSYM MODALS_FORCE_LOGOFF_PARMNUM}
MODALS_PASSWD_HIST_LEN_PARMNUM = 5;
{$EXTERNALSYM MODALS_PASSWD_HIST_LEN_PARMNUM}
MODALS_ROLE_PARMNUM = 6;
{$EXTERNALSYM MODALS_ROLE_PARMNUM}
MODALS_PRIMARY_PARMNUM = 7;
{$EXTERNALSYM MODALS_PRIMARY_PARMNUM}
MODALS_DOMAIN_NAME_PARMNUM = 8;
{$EXTERNALSYM MODALS_DOMAIN_NAME_PARMNUM}
MODALS_DOMAIN_ID_PARMNUM = 9;
{$EXTERNALSYM MODALS_DOMAIN_ID_PARMNUM}
MODALS_LOCKOUT_DURATION_PARMNUM = 10;
{$EXTERNALSYM MODALS_LOCKOUT_DURATION_PARMNUM}
MODALS_LOCKOUT_OBSERVATION_WINDOW_PARMNUM = 11;
{$EXTERNALSYM MODALS_LOCKOUT_OBSERVATION_WINDOW_PARMNUM}
MODALS_LOCKOUT_THRESHOLD_PARMNUM = 12;
{$EXTERNALSYM MODALS_LOCKOUT_THRESHOLD_PARMNUM}
//
// the new infolevel counterparts of the old info level + parmnum
//
MODALS_MIN_PASSWD_LEN_INFOLEVEL = (PARMNUM_BASE_INFOLEVEL + MODALS_MIN_PASSWD_LEN_PARMNUM);
{$EXTERNALSYM MODALS_MIN_PASSWD_LEN_INFOLEVEL}
MODALS_MAX_PASSWD_AGE_INFOLEVEL = (PARMNUM_BASE_INFOLEVEL + MODALS_MAX_PASSWD_AGE_PARMNUM);
{$EXTERNALSYM MODALS_MAX_PASSWD_AGE_INFOLEVEL}
MODALS_MIN_PASSWD_AGE_INFOLEVEL = (PARMNUM_BASE_INFOLEVEL + MODALS_MIN_PASSWD_AGE_PARMNUM);
{$EXTERNALSYM MODALS_MIN_PASSWD_AGE_INFOLEVEL}
MODALS_FORCE_LOGOFF_INFOLEVEL = (PARMNUM_BASE_INFOLEVEL + MODALS_FORCE_LOGOFF_PARMNUM);
{$EXTERNALSYM MODALS_FORCE_LOGOFF_INFOLEVEL}
MODALS_PASSWD_HIST_LEN_INFOLEVEL = (PARMNUM_BASE_INFOLEVEL + MODALS_PASSWD_HIST_LEN_PARMNUM);
{$EXTERNALSYM MODALS_PASSWD_HIST_LEN_INFOLEVEL}
MODALS_ROLE_INFOLEVEL = (PARMNUM_BASE_INFOLEVEL + MODALS_ROLE_PARMNUM);
{$EXTERNALSYM MODALS_ROLE_INFOLEVEL}
MODALS_PRIMARY_INFOLEVEL = (PARMNUM_BASE_INFOLEVEL + MODALS_PRIMARY_PARMNUM);
{$EXTERNALSYM MODALS_PRIMARY_INFOLEVEL}
MODALS_DOMAIN_NAME_INFOLEVEL = (PARMNUM_BASE_INFOLEVEL + MODALS_DOMAIN_NAME_PARMNUM);
{$EXTERNALSYM MODALS_DOMAIN_NAME_INFOLEVEL}
MODALS_DOMAIN_ID_INFOLEVEL = (PARMNUM_BASE_INFOLEVEL + MODALS_DOMAIN_ID_PARMNUM);
{$EXTERNALSYM MODALS_DOMAIN_ID_INFOLEVEL}
//
// Group Class
//
//
// Function Prototypes
//
function NetGroupAdd(servername: LPCWSTR; level: DWORD; buf: LPBYTE; parm_err: LPDWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetGroupAdd}
function NetGroupAddUser(servername, GroupName, username: LPCWSTR): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetGroupAddUser}
function NetGroupEnum(servername: LPCWSTR; level: DWORD; var bufptr: LPBYTE; prefmaxlen: DWORD; entriesread, totalentries: LPDWORD; resume_handle: PDWORD_PTR): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetGroupEnum}
function NetGroupGetInfo(servername, groupname: LPCWSTR; level: DWORD; bufptr: LPBYTE): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetGroupGetInfo}
function NetGroupSetInfo(servername, groupname: LPCWSTR; level: DWORD; buf: LPBYTE; parm_err: LPDWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetGroupSetInfo}
function NetGroupDel(servername: LPCWSTR; groupname: LPCWSTR): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetGroupDel}
function NetGroupDelUser(servername: LPCWSTR; GroupName: LPCWSTR; Username: LPCWSTR): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetGroupDelUser}
function NetGroupGetUsers(servername, groupname: LPCWSTR; level: DWORD; var bufptr: LPBYTE; prefmaxlen: DWORD; entriesread, totalentries: LPDWORD; ResumeHandle: PDWORD_PTR): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetGroupGetUsers}
function NetGroupSetUsers(servername, groupname: LPCWSTR; level: DWORD; buf: LPBYTE; totalentries: DWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetGroupSetUsers}
//
// Data Structures - Group
//
type
LPGROUP_INFO_0 = ^GROUP_INFO_0;
{$EXTERNALSYM LPGROUP_INFO_0}
PGROUP_INFO_0 = ^GROUP_INFO_0;
{$EXTERNALSYM PGROUP_INFO_0}
_GROUP_INFO_0 = record
grpi0_name: LPWSTR;
end;
{$EXTERNALSYM _GROUP_INFO_0}
GROUP_INFO_0 = _GROUP_INFO_0;
{$EXTERNALSYM GROUP_INFO_0}
TGroupInfo0 = GROUP_INFO_0;
PGroupInfo0 = PGROUP_INFO_0;
LPGROUP_INFO_1 = ^GROUP_INFO_1;
{$EXTERNALSYM LPGROUP_INFO_1}
PGROUP_INFO_1 = ^GROUP_INFO_1;
{$EXTERNALSYM PGROUP_INFO_1}
_GROUP_INFO_1 = record
grpi1_name: LPWSTR;
grpi1_comment: LPWSTR;
end;
{$EXTERNALSYM _GROUP_INFO_1}
GROUP_INFO_1 = _GROUP_INFO_1;
{$EXTERNALSYM GROUP_INFO_1}
TGroupInfo1 = GROUP_INFO_1;
PGroupInfo1 = PGROUP_INFO_1;
LPGROUP_INFO_2 = ^GROUP_INFO_2;
{$EXTERNALSYM LPGROUP_INFO_2}
PGROUP_INFO_2 = ^GROUP_INFO_2;
{$EXTERNALSYM PGROUP_INFO_2}
_GROUP_INFO_2 = record
grpi2_name: LPWSTR;
grpi2_comment: LPWSTR;
grpi2_group_id: DWORD;
grpi2_attributes: DWORD;
end;
{$EXTERNALSYM _GROUP_INFO_2}
GROUP_INFO_2 = _GROUP_INFO_2;
{$EXTERNALSYM GROUP_INFO_2}
TGroupInfo2 = GROUP_INFO_2;
PGroupInfo2 = PGROUP_INFO_2;
LPGROUP_INFO_3 = ^GROUP_INFO_3;
{$EXTERNALSYM LPGROUP_INFO_3}
PGROUP_INFO_3 = ^GROUP_INFO_3;
{$EXTERNALSYM PGROUP_INFO_3}
_GROUP_INFO_3 = record
grpi3_name: LPWSTR;
grpi3_comment: LPWSTR;
grpi3_group_sid: PSID;
grpi3_attributes: DWORD;
end;
{$EXTERNALSYM _GROUP_INFO_3}
GROUP_INFO_3 = _GROUP_INFO_3;
{$EXTERNALSYM GROUP_INFO_3}
TGroupInfo3 = GROUP_INFO_3;
PGroupInfo3 = PGROUP_INFO_3;
LPGROUP_INFO_1002 = ^GROUP_INFO_1002;
{$EXTERNALSYM LPGROUP_INFO_1002}
PGROUP_INFO_1002 = ^GROUP_INFO_1002;
{$EXTERNALSYM PGROUP_INFO_1002}
_GROUP_INFO_1002 = record
grpi1002_comment: LPWSTR;
end;
{$EXTERNALSYM _GROUP_INFO_1002}
GROUP_INFO_1002 = _GROUP_INFO_1002;
{$EXTERNALSYM GROUP_INFO_1002}
TGroupInfo1002 = GROUP_INFO_1002;
PGroupInfo1002 = PGROUP_INFO_1002;
LPGROUP_INFO_1005 = ^GROUP_INFO_1005;
{$EXTERNALSYM LPGROUP_INFO_1005}
PGROUP_INFO_1005 = ^GROUP_INFO_1005;
{$EXTERNALSYM PGROUP_INFO_1005}
_GROUP_INFO_1005 = record
grpi1005_attributes: DWORD;
end;
{$EXTERNALSYM _GROUP_INFO_1005}
GROUP_INFO_1005 = _GROUP_INFO_1005;
{$EXTERNALSYM GROUP_INFO_1005}
TGroupInfo1005 = GROUP_INFO_1005;
PGroupInfo1005 = PGROUP_INFO_1005;
LPGROUP_USERS_INFO_0 = ^GROUP_USERS_INFO_0;
{$EXTERNALSYM LPGROUP_USERS_INFO_0}
PGROUP_USERS_INFO_0 = ^GROUP_USERS_INFO_0;
{$EXTERNALSYM PGROUP_USERS_INFO_0}
_GROUP_USERS_INFO_0 = record
grui0_name: LPWSTR;
end;
{$EXTERNALSYM _GROUP_USERS_INFO_0}
GROUP_USERS_INFO_0 = _GROUP_USERS_INFO_0;
{$EXTERNALSYM GROUP_USERS_INFO_0}
TGroupUsersInfo0 = GROUP_USERS_INFO_0;
PGroupUsersInfo0 = PGROUP_USERS_INFO_0;
LPGROUP_USERS_INFO_1 = ^GROUP_USERS_INFO_1;
{$EXTERNALSYM LPGROUP_USERS_INFO_1}
PGROUP_USERS_INFO_1 = ^GROUP_USERS_INFO_1;
{$EXTERNALSYM PGROUP_USERS_INFO_1}
_GROUP_USERS_INFO_1 = record
grui1_name: LPWSTR;
grui1_attributes: DWORD;
end;
{$EXTERNALSYM _GROUP_USERS_INFO_1}
GROUP_USERS_INFO_1 = _GROUP_USERS_INFO_1;
{$EXTERNALSYM GROUP_USERS_INFO_1}
TGroupUsersInfo1 = GROUP_USERS_INFO_1;
PGroupUsersInfo1 = PGROUP_USERS_INFO_1;
//
// Special Values and Constants - Group
//
const
GROUPIDMASK = $8000; // MSB set if uid refers to a group
{$EXTERNALSYM GROUPIDMASK}
//
// Predefined group for all normal users, administrators and guests
// LOCAL is a special group for pinball local security.
//
GROUP_SPECIALGRP_USERS = WideString('USERS');
{$EXTERNALSYM GROUP_SPECIALGRP_USERS}
GROUP_SPECIALGRP_ADMINS = WideString('ADMINS');
{$EXTERNALSYM GROUP_SPECIALGRP_ADMINS}
GROUP_SPECIALGRP_GUESTS = WideString('GUESTS');
{$EXTERNALSYM GROUP_SPECIALGRP_GUESTS}
GROUP_SPECIALGRP_LOCAL = WideString('LOCAL');
{$EXTERNALSYM GROUP_SPECIALGRP_LOCAL}
//
// parmnum manifests for SetInfo calls (only comment is settable)
//
GROUP_ALL_PARMNUM = 0;
{$EXTERNALSYM GROUP_ALL_PARMNUM}
GROUP_NAME_PARMNUM = 1;
{$EXTERNALSYM GROUP_NAME_PARMNUM}
GROUP_COMMENT_PARMNUM = 2;
{$EXTERNALSYM GROUP_COMMENT_PARMNUM}
GROUP_ATTRIBUTES_PARMNUM = 3;
{$EXTERNALSYM GROUP_ATTRIBUTES_PARMNUM}
//
// the new infolevel counterparts of the old info level + parmnum
//
GROUP_ALL_INFOLEVEL = (PARMNUM_BASE_INFOLEVEL + GROUP_ALL_PARMNUM);
{$EXTERNALSYM GROUP_ALL_INFOLEVEL}
GROUP_NAME_INFOLEVEL = (PARMNUM_BASE_INFOLEVEL + GROUP_NAME_PARMNUM);
{$EXTERNALSYM GROUP_NAME_INFOLEVEL}
GROUP_COMMENT_INFOLEVEL = (PARMNUM_BASE_INFOLEVEL + GROUP_COMMENT_PARMNUM);
{$EXTERNALSYM GROUP_COMMENT_INFOLEVEL}
GROUP_ATTRIBUTES_INFOLEVEL = (PARMNUM_BASE_INFOLEVEL + GROUP_ATTRIBUTES_PARMNUM);
{$EXTERNALSYM GROUP_ATTRIBUTES_INFOLEVEL}
// todo see GROUP_POSIX_ID_PARMNUM
// GROUP_POSIX_ID_INFOLEVEL = (PARMNUM_BASE_INFOLEVEL + GROUP_POSIX_ID_PARMNUM);
// {$EXTERNALSYM GROUP_POSIX_ID_INFOLEVEL}
//
// LocalGroup Class
//
//
// Function Prototypes
//
function NetLocalGroupAdd(servername: LPCWSTR; level: DWORD; buf: LPBYTE; parm_err: LPDWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetLocalGroupAdd}
function NetLocalGroupAddMember(servername, groupname: LPCWSTR; membersid: PSID): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetLocalGroupAddMember}
function NetLocalGroupEnum(servername: LPCWSTR; level: DWORD; var bufptr: LPBYTE; prefmaxlen: DWORD; entriesread, totalentries: LPDWORD; resumehandle: PDWORD_PTR): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetLocalGroupEnum}
function NetLocalGroupGetInfo(servername, groupname: LPCWSTR; level: DWORD; var bufptr: LPBYTE): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetLocalGroupGetInfo}
function NetLocalGroupSetInfo(servername, groupname: LPCWSTR; level: DWORD; buf: LPBYTE; parm_err: LPDWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetLocalGroupSetInfo}
function NetLocalGroupDel(servername: LPCWSTR; groupname: LPCWSTR): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetLocalGroupDel}
function NetLocalGroupDelMember(servername: LPCWSTR; groupname: LPCWSTR; membersid: PSID): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetLocalGroupDelMember}
function NetLocalGroupGetMembers(servername, localgroupname: LPCWSTR; level: DWORD; var bufptr: LPBYTE; prefmaxlen: DWORD; entriesread, totalentries: LPDWORD; resumehandle: PDWORD_PTR): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetLocalGroupGetMembers}
function NetLocalGroupSetMembers(servername, groupname: LPCWSTR; level: DWORD; buf: LPBYTE; totalentries: DWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetLocalGroupSetMembers}
function NetLocalGroupAddMembers(servername, groupname: LPCWSTR; level: DWORD; buf: LPBYTE; totalentries: DWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetLocalGroupAddMembers}
function NetLocalGroupDelMembers(servername, groupname: LPCWSTR; level: DWORD; buf: LPBYTE; totalentries: DWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetLocalGroupDelMembers}
//
// Data Structures - LocalGroup
//
type
LPLOCALGROUP_INFO_0 = ^LOCALGROUP_INFO_0;
{$EXTERNALSYM LPLOCALGROUP_INFO_0}
PLOCALGROUP_INFO_0 = ^LOCALGROUP_INFO_0;
{$EXTERNALSYM PLOCALGROUP_INFO_0}
_LOCALGROUP_INFO_0 = record
lgrpi0_name: LPWSTR;
end;
{$EXTERNALSYM _LOCALGROUP_INFO_0}
LOCALGROUP_INFO_0 = _LOCALGROUP_INFO_0;
{$EXTERNALSYM LOCALGROUP_INFO_0}
TLocalGroupInfo0 = LOCALGROUP_INFO_0;
PLocalGroupInfo0 = PLOCALGROUP_INFO_0;
LPLOCALGROUP_INFO_1 = ^LOCALGROUP_INFO_1;
{$EXTERNALSYM LPLOCALGROUP_INFO_1}
PLOCALGROUP_INFO_1 = ^LOCALGROUP_INFO_1;
{$EXTERNALSYM PLOCALGROUP_INFO_1}
_LOCALGROUP_INFO_1 = record
lgrpi1_name: LPWSTR;
lgrpi1_comment: LPWSTR;
end;
{$EXTERNALSYM _LOCALGROUP_INFO_1}
LOCALGROUP_INFO_1 = _LOCALGROUP_INFO_1;
{$EXTERNALSYM LOCALGROUP_INFO_1}
TLocalGroupInfo1 = LOCALGROUP_INFO_1;
PLocalGroupInfo1 = PLOCALGROUP_INFO_1;
LPLOCALGROUP_INFO_1002 = ^LOCALGROUP_INFO_1002;
{$EXTERNALSYM LPLOCALGROUP_INFO_1002}
PLOCALGROUP_INFO_1002 = ^LOCALGROUP_INFO_1002;
{$EXTERNALSYM PLOCALGROUP_INFO_1002}
_LOCALGROUP_INFO_1002 = record
lgrpi1002_comment: LPWSTR;
end;
{$EXTERNALSYM _LOCALGROUP_INFO_1002}
LOCALGROUP_INFO_1002 = _LOCALGROUP_INFO_1002;
{$EXTERNALSYM LOCALGROUP_INFO_1002}
TLocalGroupInfo1002 = LOCALGROUP_INFO_1002;
PLocalGroupInfo1002 = PLOCALGROUP_INFO_1002;
LPLOCALGROUP_MEMBERS_INFO_0 = ^LOCALGROUP_MEMBERS_INFO_0;
{$EXTERNALSYM LPLOCALGROUP_MEMBERS_INFO_0}
PLOCALGROUP_MEMBERS_INFO_0 = ^LOCALGROUP_MEMBERS_INFO_0;
{$EXTERNALSYM PLOCALGROUP_MEMBERS_INFO_0}
_LOCALGROUP_MEMBERS_INFO_0 = record
lgrmi0_sid: PSID;
end;
{$EXTERNALSYM _LOCALGROUP_MEMBERS_INFO_0}
LOCALGROUP_MEMBERS_INFO_0 = _LOCALGROUP_MEMBERS_INFO_0;
{$EXTERNALSYM LOCALGROUP_MEMBERS_INFO_0}
TLocalGroupMembersInfo0 = LOCALGROUP_MEMBERS_INFO_0;
PLocalGroupMembersInfo0 = PLOCALGROUP_MEMBERS_INFO_0;
LPLOCALGROUP_MEMBERS_INFO_1 = ^LOCALGROUP_MEMBERS_INFO_1;
{$EXTERNALSYM LPLOCALGROUP_MEMBERS_INFO_1}
PLOCALGROUP_MEMBERS_INFO_1 = ^LOCALGROUP_MEMBERS_INFO_1;
{$EXTERNALSYM PLOCALGROUP_MEMBERS_INFO_1}
_LOCALGROUP_MEMBERS_INFO_1 = record
lgrmi1_sid: PSID;
lgrmi1_sidusage: SID_NAME_USE;
lgrmi1_name: LPWSTR;
end;
{$EXTERNALSYM _LOCALGROUP_MEMBERS_INFO_1}
LOCALGROUP_MEMBERS_INFO_1 = _LOCALGROUP_MEMBERS_INFO_1;
{$EXTERNALSYM LOCALGROUP_MEMBERS_INFO_1}
TLocalGroupMembersInfo1 = LOCALGROUP_MEMBERS_INFO_1;
PLocalGroupMembersInfo1 = PLOCALGROUP_MEMBERS_INFO_1;
LPLOCALGROUP_MEMBERS_INFO_2 = ^LOCALGROUP_MEMBERS_INFO_2;
{$EXTERNALSYM LPLOCALGROUP_MEMBERS_INFO_2}
PLOCALGROUP_MEMBERS_INFO_2 = ^LOCALGROUP_MEMBERS_INFO_2;
{$EXTERNALSYM PLOCALGROUP_MEMBERS_INFO_2}
_LOCALGROUP_MEMBERS_INFO_2 = record
lgrmi2_sid: PSID;
lgrmi2_sidusage: SID_NAME_USE;
lgrmi2_domainandname: LPWSTR;
end;
{$EXTERNALSYM _LOCALGROUP_MEMBERS_INFO_2}
LOCALGROUP_MEMBERS_INFO_2 = _LOCALGROUP_MEMBERS_INFO_2;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -