用什么方法可以得到NT用户名称列表和密码列表?(100分)

  • 主题发起人 主题发起人 yanliang
  • 开始时间 开始时间
Y

yanliang

Unregistered / Unconfirmed
GUEST, unregistred user!
我们公司的服务器要重装,现在要导入以前用户的名称和密码,怎么办?
 
用户名还有可能,密码就太~~~
 
most likely impossible otherwise no security at all.
 
重新设置吧?
 
NT中每个用户的登陆信息 如密码 都有一个文件 例如 用户fang
她的登陆信息 就有一个fang.sam 文件 保存这些信息的!
 
sorry
文件名应该是fang.pwl 但是这是个系统保护文件!
 
pwl好像98才有NT有吗?
 
pwl 在NT中当然也有的 专到 DOS 状态下 就可以操作了此文件了!
 
我查找之后怎么没有查找到该文件?
 
pwl文件在NT下也有?
 
如果你对你原来的程序文件有备份,仅仅是恢复安装,我想是不用导入而安装过后就应该是原来的样子的。建议你查找WINDOWS根目录下是否有你原来的*.pwl文件,或者你干脆删除WINDOWS根目录下的*.pwl文件然后重新设置,反正也就是花点时间而已。
 
获取用户列表
// The NetUserEnum function provides information about all user accounts on a server.

type
USER_INFO_1 = record
usri1_name: LPWSTR;
usri1_password: LPWSTR;
usri1_password_age: DWORD;
usri1_priv: DWORD;
usri1_home_dir: LPWSTR;
usri1_comment: LPWSTR;
usri1_flags: DWORD;
usri1_script_path: LPWSTR;
end;
lpUSER_INFO_1 = ^USER_INFO_1;

function NetUserEnum(ServerName: PWideChar;
Level,
Filter: DWord;
var Buffer: Pointer;
PrefMaxLen: DWord;
var EntriesRead,
TotalEntries,
ResumeHandle: DWord): LongWord; stdcall; external 'netapi32.dll';

function NetApiBufferFree(pBuffer: PByte): LongInt; stdcall; external
'netapi32.dll';

{...}

procedure TForm1.Button1Click(Sender: TObject);
var
EntiesRead: DWORD;
TotalEntries: DWORD;
UserInfo: lpUSER_INFO_1;
lpBuffer: Pointer;
ResumeHandle: DWord;
Counter: Integer;
NetApiStatus: LongWord;
begin
ResumeHandle := 0;
repeat
// NetApiStatus := NetUserEnum(PChar('//NT-Domain'), 1, 0, lpBuffer, 0,EntiesRead, TotalEntries, ResumeHandle);
NetApiStatus := NetUserEnum(nil, 1, 0, lpBuffer, 0, EntiesRead,
TotalEntries, ResumeHandle);
UserInfo := lpBuffer;

for Counter := 0 to EntiesRead - 1 do
begin
listbox1.items.add(WideCharToString(UserInfo^.usri1_name) + ' --> ' +
WideCharToString(UserInfo^.usri1_comment));
Inc(UserInfo);
end;

NetApiBufferFree(lpBuffer);
until (NetApiStatus <> ERROR_MORE_DATA);
end;

密碼你就不要想了,否則就不叫密碼了
 
后退
顶部