alt text http://www.freeimagehosting.net/uploads/b350914deb.pngcomment obtenir les comptes d'utilisateurs et BUIT dans les principes de sécurité dans les fenêtres
je veux récupérer la liste des utilisateurs et le service local et le service réseau
alt text http://www.freeimagehosting.net/uploads/b350914deb.pngcomment obtenir les comptes d'utilisateurs et BUIT dans les principes de sécurité dans les fenêtres
je veux récupérer la liste des utilisateurs et le service local et le service réseau
Vous pouvez le faire via WSH. Voici un exemple en JavaScript: http://www.winscripter.com/WSH/ADSI/56.aspx
et un échantillon en C#: http://www.geekzone.co.nz/chakkaradeep/3938
J'ai trouvé plusieurs réponses sur BING en recherchant win32 list user accounts
Et enfin un échantillon de Microsoft: http://gallery.technet.microsoft.com/ScriptCenter/en-us/827623f5-eb55-4035-8f57-25c4afb444cd
WMI a une énumération Win32_UserAccount
, mais l'énumération semble produire la même liste que NetEnumUsers
, qui produit seulement (plus ou moins) des comptes "normaux", pas les principes de sécurité intégrés comme "Service local" et "Service réseau".
Vous pouvez récupérer tout avec NetLocalGroupEnum
et NetLocalGroupGetMembers
, mais vous devrez le faire à partir de quelque chose qui vous permet de travailler directement avec l'API Win32, pas (au moins AFAIK) via WMI. Dans le cas où cela est toujours utile, voici un exemple de code qui répertorie les groupes et les membres:
#define UNICODE
#include <windows.h>
#include <lmaccess.h>
#include <lmapibuf.h>
#include <iostream>
int main() {
LOCALGROUP_INFO_0 *l_info;
DWORD read;
DWORD total;
NetLocalGroupEnum(NULL,
0,
(unsigned char **)&l_info,
MAX_PREFERRED_LENGTH,
&read,
&total,
NULL);
std::wcout << L"Local Groups\n";
for (int i=0; i<read; i++) {
std::wcout << l_info[i].lgrpi0_name << std::endl;
LOCALGROUP_MEMBERS_INFO_1 *members;
DWORD entries, total_entries;
NetLocalGroupGetMembers(NULL,
l_info[i].lgrpi0_name,
1,
reinterpret_cast<BYTE **>(&members),
MAX_PREFERRED_LENGTH,
&entries,
&total_entries,
NULL);
for (int mem_num = 0; mem_num<entries; mem_num++)
std::wcout << L"\t" << members[mem_num].lgrmi1_name << L"\n";
NetApiBufferFree(members);
}
NetApiBufferFree(l_info);
GROUP_INFO_0 *g_info;
NetGroupEnum(NULL,
0,
(unsigned char **)&g_info,
MAX_PREFERRED_LENGTH,
&read,
&total,
NULL);
std::wcout << L"\nGlobal Groups\n";
for (i=0; i<read; i++)
std::wcout << g_info[i].grpi0_name << std::endl;
NetApiBufferFree(g_info);
return 0;
}
+1. Cela mérite au moins un upvote. – David
Lorsqu'un utilisateur ne fait partie d'aucun groupe, l'API ne fonctionne pas. –
L'exemple de code a été extrêmement utile, merci pour cet effort supplémentaire! –