Events
Apr 8, 3 PM - May 28, 7 AM
Sharpen your AI skills and enter the sweepstakes to win a free Certification exam
Register now!This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
This code sample demonstrates how to force a user to change the logon password on the next logon using the NetUserGetInfo and NetUserSetInfo functions and the USER_INFO_3 structure. Note that starting with Windows XP, it is recommended that you use the USER_INFO_4 structure instead.
Set the usri3_password_expired member of the USER_INFO_3 structure to a nonzero value using the following code fragment:
#ifndef UNICODE
#define UNICODE
#endif
#include <windows.h>
#define INCL_NET
#include <stdio.h>
#include <lm.h>
#pragma comment(lib, "netapi32.lib")
#define USERNAME L"your_user_name"
#define SERVER L"\\\\server"
void main( void )
{
PUSER_INFO_3 pUsr = NULL;
NET_API_STATUS netRet = 0;
DWORD dwParmError = 0;
//
// First, retrieve the user information at level 3. This is
// necessary to prevent resetting other user information when
// the NetUserSetInfo call is made.
//
netRet = NetUserGetInfo( SERVER, USERNAME, 3, (LPBYTE *)&pUsr);
if( netRet == NERR_Success )
{
//
// The function was successful; set the usri3_password_expired value to
// a nonzero value. Call the NetUserSetInfo function.
//
pUsr->usri3_password_expired = TRUE;
netRet = NetUserSetInfo( SERVER, USERNAME, 3, (LPBYTE)pUsr, &dwParmError);
//
// A zero return indicates success.
// If the return value is ERROR_INVALID_PARAMETER,
// the dwParmError parameter will contain a value indicating the
// invalid parameter within the user_info_3 structure. These values
// are defined in the lmaccess.h file.
//
if( netRet == NERR_Success )
printf("User %S will need to change password at next logon", USERNAME);
else printf("Error %d occurred. Parm Error %d returned.\n", netRet, dwParmError);
//
// Must free the buffer returned by NetUserGetInfo.
//
NetApiBufferFree( pUsr);
}
else printf("NetUserGetInfo failed: %d\n", netRet);
}
Events
Apr 8, 3 PM - May 28, 7 AM
Sharpen your AI skills and enter the sweepstakes to win a free Certification exam
Register now!