|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Dec 2003
Messaggi: 498
|
Uno script VBS che ne lancia un altro se l'utente non si logga da più di 10 giorni
Buongiorno a tutti,
ho una mezza idea per risolvere il requisito dell'Allegato B della 196/2003 "disabilitare gli account inattivi da più di 180 giorni", per cui datemi una mano che a qualcuno servirà Partiamo dal seguente script, che disabilita un utente in un dominio, e che chiamerò "DisabilitaUtente.vbs": Option Explicit ' Dichiarazione delle variabili in cui immagazzinare ' il nome utente, il dominio ed uno switch per lo script, ' oltre all'oggetto Utente. Dim strNomeUtente, strDominio, blnDisabilita, objUtente ' Se lo script viene lanciato senza argomenti, ' o se viene richiesto l'help con l'usuale /?, ' viene lanciata la procedura "Help If WScript.Arguments.Count < 1 Then Call Help If WScript.Arguments(0) = "/?" Then Call Help ' Assegnazione degli argomenti alle variabili. strNomeUtente = WScript.Arguments(0) strDominio = WScript.Arguments(1) blnDisabilita = WScript.Arguments(2) ' Recupera l'oggetto utente. Set objUtente = GetObject("WinNT://" & strDominio & "/" & strNomeUtente & ",user") ' Imposta il valore della proprietà AccountDisabled, aggiorna le informazioni sull'utente, ' avvisa del completamento dell'esecuzione. objUtente.AccountDisabled = blnDisabilita objUtente.SetInfo WScript.Echo "L'utente " & strNomeUtente & " è stato disabilitato." Sub Help WScript.Echo "Modo d'uso: disableuser nome_utente dominio true/false" WScript.Echo "Questo script abilita/disabilita, in base al valore del terzo argomento, un account utente." WScript.Echo "Il primo argomento è il nome utente." WScript.Echo "Il secondo argomento è il nome del dominio." WScript.Echo "Il terzo argomento è il valore assegnato ad AccountDisabled." WScript.Echo "Gli argomenti devono essere separati da uno spazio vuoto." WScript.Echo "Passare come terzo argomento True per disabilitare l'utente." WScript.Echo "Passare come terzo argomento False per abilitarlo." WScript.Quit End Sub Innanzitutto, occorre modificare l'istruzione Set objUtente = GetObject("WinNT://" & strDominio & "/" & strNomeUtente & ",user") per recuperare l'utente di un PC in un workgroup, non in un dominio: qualcuno sa come farlo? In secondo luogo, occorre mettere in Esecuzione Automatica uno script, chiamiamolo VerificaLog.vbs, che verifica se dall'ultima volta che l'utente si è loggato sono passati più di 180 giorni: in tal caso, VerificaLog.vbs dovrebbe invocare l'esecuzione di DisabilitaUtente.vbs. Abbiamo qui due ordini di problemi: - scrivere VerificaLog.vbs - richiamare DisabilitaUtente.vbs che, per ovvi motivi di deploy, dovrà risiedere in una share di rete, chiamiamola \\192.168.1.100\cartella_degli_script (se si dovesse copiare manualmente DisabilitaUtente su ogni PC, tanto vale farsi un giro ogni 180 giorni e disabilitare a mano ). A questo punto, qualcuno vorrebbe sicuramente suggerire che è meno costoso passare da un workgroup ad un dominio con Active Directory, ma io dico che tutti insieme ce la facciamo in poco tempo Kisses, Nat |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:36.



















