home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Columbia Kermit
/
kermit.zip
/
panix
/
k95source.tar.gz
/
k95source.tar
/
GetUserInfo.c
< prev
next >
Wrap
C/C++ Source or Header
|
1999-12-03
|
3KB
|
100 lines
/* By Peter 'Luna' Runestig <peter@runestig.com> 1996, 99
*/
#include <windows.h>
#include <lmaccess.h>
#include <lmapibuf.h>
#include <stdio.h>
int GetUserInfo(LPWSTR wCompName, LPWSTR wUserName);
int UnicodeToOEM(LPWSTR InString, char *OutString, int OutStringSize);
int OEMToUnicode(char *InString, LPWSTR OutString, int OutStringSize);
char HomeDir[100] = "", ProfilePath[100] = "";
int main(int argc, char *argv[], char *envp[])
{
unsigned short wCompName[128], wDomainName[128], wUserName[128], *wPDCName;
char *CompName = NULL;
char *DomainName = "BOLL.KL.SE";
// char *CompName = "\\\\BOLLNT01";
// char *DomainName = NULL;
char *UserName = "LunaUser";
OEMToUnicode(UserName, wUserName, sizeof(wUserName));
if (DomainName) {
OEMToUnicode(DomainName, wDomainName, sizeof(wDomainName));
if (NetGetDCName(NULL, wDomainName, (LPBYTE *)&wPDCName)) {
printf("Cannot find PDC!\n");
return 2;
}
GetUserInfo(wPDCName, wUserName);
NetApiBufferFree(wPDCName);
}
else if (CompName) {
OEMToUnicode(CompName, wCompName, sizeof(wCompName));
GetUserInfo(wCompName, wUserName);
}
if (*HomeDir && *ProfilePath)
printf("User:\t\t%s\nHome Dir:\t%s\nProfile Path:\t%s\n", UserName, HomeDir, ProfilePath);
return 0;
}
int GetUserInfo(LPWSTR wCompName, LPWSTR wUserName)
{
int err;
LPUSER_INFO_3 UserInfo;
/*typedef struct _USER_INFO_3 {
LPWSTR usri3_name;
LPWSTR usri3_password;
DWORD usri3_password_age;
DWORD usri3_priv;
LPWSTR usri3_home_dir;
LPWSTR usri3_comment;
DWORD usri3_flags;
LPWSTR usri3_script_path;
DWORD usri3_auth_flags;
LPWSTR usri3_full_name;
LPWSTR usri3_usr_comment;
LPWSTR usri3_parms;
LPWSTR usri3_workstations;
DWORD usri3_last_logon;
DWORD usri3_last_logoff;
DWORD usri3_acct_expires;
DWORD usri3_max_storage;
DWORD usri3_units_per_week;
PBYTE usri3_logon_hours;
DWORD usri3_bad_pw_count;
DWORD usri3_num_logons;
LPWSTR usri3_logon_server;
DWORD usri3_country_code;
DWORD usri3_code_page;
DWORD usri3_user_id;
DWORD usri3_primary_group_id;
LPWSTR usri3_profile;
LPWSTR usri3_home_dir_drive;
DWORD usri3_password_expired;
}USER_INFO_3, *PUSER_INFO_3, *LPUSER_INFO_3;*/
err = NetUserGetInfo(wCompName, wUserName, 3, (LPBYTE *)&UserInfo);
if (!err) {
UnicodeToOEM(UserInfo->usri3_home_dir, HomeDir, sizeof(HomeDir));
UnicodeToOEM(UserInfo->usri3_profile, ProfilePath, sizeof(ProfilePath));
NetApiBufferFree(UserInfo);
}
return err;
}
int UnicodeToOEM(LPWSTR InString, char *OutString, int OutStringSize)
{
return WideCharToMultiByte(CP_OEMCP, 0, InString, -1, OutString, OutStringSize, NULL, NULL);
}
int OEMToUnicode(char *InString, LPWSTR OutString, int OutStringSize)
{
return MultiByteToWideChar(CP_OEMCP, 0, InString, -1, OutString, OutStringSize);
}