61 lines
1.5 KiB
C
61 lines
1.5 KiB
C
|
#include "windows.h"
|
||
|
#include "windowsx.h"
|
||
|
#include "stdio.h"
|
||
|
#include "shlobj.h"
|
||
|
|
||
|
#define VERSION TEXT("0.00")
|
||
|
#define SIZEOF(x) sizeof(x)
|
||
|
#define ARRAYSIZE(x) (sizeof(x)/sizeof(x[0]))
|
||
|
|
||
|
typedef HRESULT(*PFNNETACCESSWIZARD)(HWND,UINT,BOOL*);
|
||
|
|
||
|
int UsageErr()
|
||
|
{
|
||
|
fprintf(stderr, TEXT("netplwizexe: [NAW_NETID|NAW_PSDOMAINJOINFAILED|NAW_PSDOMAINJOINED]\n"));
|
||
|
return -1;
|
||
|
}
|
||
|
|
||
|
INT __cdecl main(INT cArgs, LPTSTR pArgs[])
|
||
|
{
|
||
|
UINT nid;
|
||
|
HMODULE hLib;
|
||
|
|
||
|
if (cArgs < 1)
|
||
|
return UsageErr();
|
||
|
|
||
|
if (!lstrcmp(pArgs[1], TEXT("NAW_NETID")))
|
||
|
nid = NAW_NETID;
|
||
|
else if (!lstrcmp(pArgs[1], TEXT("NAW_PSDOMAINJOINFAILED")))
|
||
|
nid = NAW_PSDOMAINJOINFAILED;
|
||
|
else if (!lstrcmp(pArgs[1], TEXT("NAW_PSDOMAINJOINED")))
|
||
|
nid = NAW_PSDOMAINJOINED;
|
||
|
else
|
||
|
return UsageErr();
|
||
|
|
||
|
hLib = LoadLibrary(TEXT("netplwiz.dll"));
|
||
|
if (hLib)
|
||
|
{
|
||
|
PFNNETACCESSWIZARD pfnNetAccessWizard;
|
||
|
pfnNetAccessWizard = (PFNNETACCESSWIZARD)GetProcAddress(hLib, TEXT("NetAccessWizard"));
|
||
|
if (pfnNetAccessWizard)
|
||
|
{
|
||
|
HRESULT hr;
|
||
|
BOOL fReboot;
|
||
|
|
||
|
hr = pfnNetAccessWizard(NULL, nid, &fReboot);
|
||
|
|
||
|
fprintf(stderr, TEXT("netplwizexe: hr=%X %s\n"), hr, fReboot?TEXT("REBOOT"):TEXT("NO reboot"));
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
fprintf(stderr, TEXT("netplwizexe: can not GetProcAddress(\"NetAccessWizard\")\n"));
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
fprintf(stderr, TEXT("netplwizexe: can not LoadLibrary(\"netplwiz.dll\")\n"));
|
||
|
}
|
||
|
|
||
|
return 0;
|
||
|
}
|