Ciao a tutti, c'è un'api che mi permetta di avere un elenco, e magari anche altre info, degli utenti che sono stati creati in un computer?
Grazie
Ciao a tutti, c'è un'api che mi permetta di avere un elenco, e magari anche altre info, degli utenti che sono stati creati in un computer?
Grazie
Jupy
Usa le query WMI ottieni molte piu' informazioni.
Questo link ti sarà utile:
http://msdn.microsoft.com/library/de..._reference.asp
Lavora come se ti collegassi ad un DataBase
Ciao, grazie per l'indirizzo. Effettivamente stavo proprio pensando che forse la libreria WMI avrebbe potuto essermi utile (visto che in pratica si puo' fare molto), anche se, fino a questo momento, non ho mai avuto bisogno di usarle... vedrò cosa riusciro' a tirar fuori.![]()
![]()
Jupy
Beh tu calcola che dal Database WMI, tiri fuori tutte le informazioni relative a Macchina, Utenti, Group Policy e permessi sulle Cartelle, insomma un po' tutto.
L' unica difficoltà sta nell' individuare la query che serve a te, visto che non sono proprio un paio.
![]()
Ciao, effettivamente c'è talmente tanta roba..che ci si perde nei meandri delle classi..![]()
Comunque ci sono più classi con le quali si possono tirar fuori gli utenti, e tra queste quella che farebbe al caso mio è la Win32_UserAccount (ci sarebbe anche la Win32_Account ma da meno informazioni)
e il codice per leggere gli utenti è questo:
Ora però non riesco a fare una cosa, disabilitare gli utenti! Leggendo qui: http://msdn.microsoft.com/library/de...seraccount.aspcodice:Set objWMIService = GetObject("winmgmts:\\.\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_UserAccount Where SIDType=1") Private Sub ElencoAccount() For Each objItem In colItems List1.AddItem "Name: " & objItem.Name List1.AddItem "Disabled: " & objItem.Disabled List1.AddItem "==============================" Next End Sub
la proprietà Disabled si può sia leggerla che scriverla, di conseguenza deduco che tramite questa sia possibile disabilitare un account che voglio io.. e invece niente!
In pratica una cosa del genere non funziona:
Sbaglio qualcosa o ci sono altri modi??codice:Private Sub DisabilitaAccount(nomeAcc as String) For Each objItem In colItems if objItem.Name=nomeAcc Then objItem.Disabled = True End if Next End Sub
![]()
Jupy
A questo punto escono di scena le conoscenze da programmatore e entrano quelle da System Admin.
Puoi farlo ma devi soddisfare due prerogative, tipiche di Microsoft, cioè:
1-Devi far parte degli utenti Admin di DOminio
2-Devi farlo in un Dominio.
Prova a farlo girare sul DC come Admin vedrai che funzia!
![]()
Ciao, premetto che per il momento non c'è un server di dominio, e che nel computer, dove sto facendo le prove, entro come amministratore. Dunque tu mi dici che ci vuole per forza un server di dominio? non basta entrare come amministratore e usare quel comando? Mi sembra strano che non ci sia qualche altra via.. in verità un'altra strada l'ho trovata. In pratica una volta che ho l'elenco degli utenti (tramite le wmi), seleziono quelli che voglio attivare/disattivare e lancio, tramite la funzione Shell, il comando: NET USER NOME_UTENTE /ACTIVE:[YES | NO] e questo funzia sicuramente... per questo penso che ci possa essere anche qualche api o classe della wmi..![]()
Jupy
Certo la Shell!!
![]()