Home | Chi sono | Contattami
 

Progr. lineare

Delphi
 
Componenti
  Database
 
Miei articoli

Windows

Miei articoli 

 

Quote Disco


Con l'NTFS è possibile definire delle quote disco per ogni utente Windows su ogni partizione formattata NTFS. In pratica data una partizione formattata NTFS, è possibile definire lo spazio massimo utilizzabile da un qualsiasi utente su quella partizione. L'oggetto della quota possono essere Utenti specifici o Gruppi di Utenti. Su ogni oggetto (Utente o Gruppo) si può definire il "Limite di Quota" ossia la dimensione massima di partizione NTFS utilizzabile da quell'oggetto e il "Limite di Avviso" ossia la dimensione di utilizzo raggiunta la quale Windows manda un messaggio (deve essere ovviamente minore o uguale al "Limite di Quota" in quanto logicamente si avvisa prima).. Solo il gruppo Administrators può gestire le Quote e su di esso non è possibile definire Limiti di Quota. Si noti che per rendere effettiva l'impossibilità di scrivere oltre il Limite di Quota disco assegnato, occorre abilitare "Nega spazio su disco a utenti che superano il limite di quota". Tutti questi concetti sono di comprensione immediata se si fa riferimento alle maschere proprietà di Windows dedicate. Basta aprire "Risorse del Computer" da una sessione aperta con una utenza del gruppo Administrators e visualizzare la maschera Proprietà relativa ad una partizione formattata NTFS

Da questa maschera è possibile gestire le Quote Disco relative alla partizione NTFS in questione. Come si può notare è possibile definire il "Limite di Quota" ed il "Limite di Avviso" predefiniti per tutti i futuri nuovi utenti Windows relativamente alla partizione presa in considerazione. E' possibile registrare un evento nel Registro Eventi di Windows al superamento del "Limite di Quota" e/o del "Limite di Avviso" ed infine rendere vincolante il "Limite di Quota" negando lo spazio su disco nel caso che l'utente abbia raggiunto il "Limite Di Quota"; in quest'ultimo caso l'applicazione che tenterà di scrivere (che può essere la stessa shell di Windows nel caso di un normalissimo copia ed incolla di file e cartelle oppure qualsiasi altro applicativo che vada a scrivere dati come ad esempio un browser web che scarica un file da internet) vedrà la partizione piena e verrà quindi visualizzato il classico messaggio di "spazio disco insufficiente". Per selezionare Utenti specifici o Gruppi di Utenti basta un bel click su "Voci di quota..."

Di default c'è il gruppo degli Administrtors su cui non è possibile settare limiti di quota ma che consente in ogni caso di definire un "Limite di Avviso" (così per essere avvisati che si stà riempiendo la partizione o in ogni caso che si stà buttando sù troppa roba). Per l'aggiunta di nuove voci basta fare "Quote -> Nuova voce di quota..."

Quindi in sostanza il concetto è semplicissimo

* Si prende in considerazione una partizione formattata NTFS

* Si prende in considerazione un utente specifico o un gruppo di utenti

* Si definisce il "Livello di Quota"

* Si definisce il "Livello di Avviso" ossia quando essere avvisati che si è in prossimità del raggiungimento del "Livello di Quota"

* Si definisce se loggare o meno nel Registro degli Eventi di Windows il superamento dei suddetti limiti

* si stabilisce se rendere effettivo il "Limite di Quota" in termini di negazione dello spazio disponibile sulla partizione in caso del suo raggiungimento (spazio su disco insufficiente)

* Si possono definire "Livello di Quota" e "Livello di Avviso" predefiniti per tutti i futuri nuovi utenti

Chiaramente consiglio a tutti quanti di fare tutte le prove possibili ed immaginabili su un sistema di test in emulazione (VirtualBox è così bello e migliora a vista d'occhio ...).

Ora direte voi: cosa centra tutto questo con Delphi e la programmazione? Chi lavora come sistemista o si diletta a fare il sistemista starà già dicendo " si ... vabè come se non le sapessimo già tutte ste cose, ca**o scrivi ... c'è bisogno che ci scrivi un papiro?" Effettivamente questi son concetti che bene o male molti han già visto, ma il bello è andarsi a scrivere un clone della maschera di gestione delle Quote nelle immagini sopra. Ho preso direttamente un demo con sorgenti da www.thedelphimagazine.com : risale al 2002 ma funzia correttamente. Il bello è che la GUI è identica; chi si vuole studiare le COM Interface che stanno dietro alla gestione delle Quote Disco avrà tutto il materiale di cui ha bisogno. Interessante anche la parte di codice che visualizza la maschera di selezione Utenti (nome tecnico "Active Directory Object Picker dialog")

    

può essere visualizzata utilizzando la interface IDsObjectPicker (). Le COM Interfaces utilizzate per la gestione delle Quote Disco sono le seguenti

IDiskQuotaControl  (Microsoft.DiskQuota.1)  dskquota.dll
IDiskQuotaEvents 
IDiskQuotaUser
IDiskQuotaUserBatch
IEnumDiskQuotaUsers

Vediamo ora un pò l'applicativo:

All'avvio chiede di selezionare una partizione formattata NTFS

effettuata la selezione ci troviamo di fronte ad una maschera che è un clone esatto di quella fornitaci di Windows (si lo so, i testi sono in Inglese ... e sono uguali alla maschera di Windows in versione Inglese)

Click su "Quota Entries ..." e si apre quest'altro perfetto clone

e poi si va avanti ... ed è tutto tale e quale allo strumento nativo di Windows.

Che dire, il codice è tutto da studiare ...

DiskQuotas.7z

 

 
 
Your Ad Here