home *** CD-ROM | disk | FTP | other *** search
- /* 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);
- }
-