Las siguientes funciones utilizan principalmente NT, W2K Active Directory servicios algunas interfaces de componentes, como el contenedor IADsContainer, IADs, IADsUser interface.
1. Eliminar un usuario (de esta máquina)
BOOL __stdcall DeleteUser (char * username)
{
HRESULT hr;
IADsContainer * pContainer = NULL;
_bstr_t bstr;
DWORD ll_len = 255;
char lbBuffer [255];
:: GetComputerName (lbBuffer, &ll_len);
bstr = "WinNT: //" + _bstr_t (lbBuffer) + "," + _ bstr_t ("computer");
//Inicializar el subproceso del apartamento
hr = CoInitialize (NULL);
hr = ADsGetObject (bstr, IID_IADsContainer, (void **) &pContainer);
pContainer- > Delete (L "usuario", _ bstr_t (nombre de usuario));
pContainer- > Release ();
CoUninitialize ();
return FALSE;
}
2, agregar un usuario
BOOL __stdcall AddUser (char * username, char * fullname, char * description)
{
HRESULT hr;
> IADsContainer * pContainer = NULL;
IAD * almohadillas = NULL;
IDispatch * pDisp = NULL;
_bstr_t bstr;
DWORD ll_len = 255;
carbón lbBuffer [255]; :: GetComputerName (lbBuffer, &ll_len);
bstr = "WinNT: //" + _bstr_t (lbBuffer) + "" + _bstr_t ( "PC"); //
Inicializar hilo de apartamento
hr = CoInitialize (NULL);
hr = ADsGetObject (bstr, IID_IADsContainer, (void **) &pContainer);
hr = pContainer- > Crear (L "usuario", _bstr_t (nombre de usuario), &pDisp);
pContainer- > Release ();
si (SUCCEEDED (h!)) {h retorno;}
h = pDisp- > QueryInterface (IID_IADs, (void **) &pADs);
pDisp- > Release ();
if (! SUCCEEDED (hr)) {return 0;}
VARIANT var; br> VariantInit (&var);
var.vt = VT_BSTR;
var.bstrVal = _bstr_t (nombre completo);
pADs- > Ponga (L "Nombre completo", var);
VariantClear (&var);
var.vt = VT_BSTR;
var.bstrVal = _bstr_t (descripción);
pADs- > put (L "Descripción" , var);
VariantClear (&var);
hr = pADs- > SetInfo ();
hr = pADs- > Release ();
CoUninitialize ();
return FALSE;
}
3. Establecer contraseña de usuario
BOOL __stdcall SetUserPwd (char * username, char * pwd)
{
HRESULT hr;
IADsUser * pUser;
_bstr_t bstr;
DWORD ll_len = 255;
char lbBuffer [255];
:: GetComputerName (lbBuffer, &ll_len);
bstr = "WinNT: //" + _bstr_t (lbBuffer) + "/" + _bstr_t (nombre de usuario) + "el usuario";
file: //inicializar apartamento hilo
hr = CoInitialize (NULL);
hr = ADsGetObject (bstr, IID_IADsUser, (void **) &pUser);
if (SUCCEEDED (hr))
{
hr = pUser- > SetPassword ( _bstr_t (PWD));
si (SUCCEEDED (h)) {
CoUninitialize ();
return true;
}}
CoUninitialize ();
devolverá FALSE;
}
- Windows 2000 es el sistema operativo de nueva generación de Microsoft. Se desarrolla sobre la base
Cuando obtenemos un disco duro con un formato de bajo nivel, el primer paso es particionar el disco
Microsoft acaba de lanzar June Community Technology Preview para June Server, que será la última ver
Creo que muchos amigos están usando el sistema operativo Windows 2000 como yo. Al igual que otras ve
Optimización completa de Windows 2000 (2)
Configuración de seguridad de Windows 2000 Advance Serve
Win 2003 para lograr un uso compartido de la red restauración
Windows 2000 SP4 ocho problemas candentes
Desactive el programa de seguimiento de eventos de apagado de Windows Server 2003
Algunas pruebas de gestión basadas en entorno Windows 2008
Examinar el archivo de registro de inicio en modo seguro
Edición de discos de Win2000 (cuatro)
La versión de 64 bits de Windows Server 2008 solo es compatible con la virtualización
Herramienta DNS de "arma secreta" de Win2k (a)
Cómo restaurar la restauración del sistema para Windows 2003
Si el mensaje es enviado o recibido por Fetion, el mensaje es
Aplicación oficial de Microsoft guía WP8.1 apareció
¿Cómo configurar el método de entrada del sistema Win8.1?
¿Ves cómo es atacado el servidor de Windows?
Cómo resolver win8 Cómo resolver win8 cuelga
Sistema Win8 cómo configurar el uso compartido inalámbrico de
Cómo hacer sin detectar el disco u después de reinstalar el sistema win7