|
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
|