NTFS Stuff v1 – Ita
Posted By Mirko On In Progetti,Scripts | 12 CommentsVBS WSH Script
Autori: Mirko Iodice, Luca Alberti
Testato su: Windows 2000 Server, Windows 2003 Server, Windows 2008 Server, Windows XP Professional, Windows Vista, Windows 7, Internet Explorer 6, Internet Explorer 7, Internet Explorer 8, Mozilla Firefox 3.X
Cos'è NTFS Stuff?
Per un amministratore di rete Microsoft è difficile tenere traccia di tutti i cambiamenti apportati nel tempo alla struttura "logica" di un file server, molte volte si sente la necessità di disporre di uno strumento semplice e veloce che ci aiuti a capire quali siano quelle cartelle "rilevanti" che vanno ad interrompere la normale applicazione dei permessi basata sul concetto di "ereditarietà".
NTFS Stuff è uno script WSH che ha lo scopo di generare un report grafico (in formato HTML) che metta in qualche modo in evidenza lo stato delle autorizzazioni di accesso alla struttura di un fileserver. Due distinti livelli di dettaglio offrono la possibilità di scegliere se visualizzare soltanto le informazioni relative alle cartelle "rilevanti" oppure quelle relative all'intero albero di cartelle. Oltre alle DACL di ogni singola cartella vengono riportate ulteriori informazioni quali: la data di creazione e di ultima modifica, il proprietario e lo stato dell'ereditarietà.
Abbiamo prestato particolare attenzione alla rappresentazione grafica delle informazioni, colori e simboli rendono immediata l'identificazione dei cambiamenti apportati alla normale applicazione, basata appunto sul principio di ereditarietà, dei permessi NTFS.
La seguente immagine mette in evidenza le funzionalità dello script
- Le informazioni relative alle cartelle sono espandibili cliccando sui loro nomi, esse comprendono: percorso completo, data/ora di creazione e di ultima modifica, proprietario e DACL (differenziando tra concessione e negazione).
- Due pulsanti "Expand All" e "Collapse All" permettono di espandere e chiudere con un singolo clic le informazioni di tutte le cartelle.
- Lo stato di ereditarietà dei permessi è messo in evidenza per ciascuna cartella da un simbolo colorato.
Il simbolo "=" associato al colore verde sta ad indicare il fatto che l'ereditarietà dei permessi NTFS risulta attiva e che non sono state apportate modifiche manuali; le cartelle contrassegnate in questo modo non risultano quindi particolarmente rilevanti.
Più importanti sono invece le cartelle indicate dai simboli "x" e "+", associati rispettivamente ai colori rosso e azzurro. Nello specifico il simbolo "x" mette in evidenza il fatto che l'ereditarietà dei permessi è stata completamente disattivata, mentre il simbolo "+" equivale ad una discordanza tra i permessi
della cartella presa in esame e quelli assegnati al livello superiore (l'ereditarietà in questo caso è comunque attiva). - Per facilitare la consultazione del report le cartelle contrassegnate dai simboli "x" e "+" mostrano come informazione aggiuntiva anche le DACL del livello superiore.
- Lo script è eseguibile in due modalità: con "verbosity = 0" (predefinito) vengono riportate soltanto le cartelle contrassegnate dai simboli "x" e "+", con "verbosity = 1" viene riportata invece l'intera struttura del file server rappresentata con indentazione.
- Per un maggiore controllo è possibile specificare anche il numero di sottolivelli (recursion) che devono essere analizzati a partire dalla cartella di radice; questa funzionalità si traduce inoltre in un minor tempo d'esecuzione.
Consigli
NTFS Stuff, solo quando avviato su Windows 2000, richiede di specificare un livello di priorità (priority) di esecuzione (predefinito 1). Questa impostazione serve a limitare l'utilizzo del processore durante l'elaborazione dei dati. Si sconsiglia vivamente di impostare il livello 0 su macchine di produzione o particolarmente datate, questo poiché WSH tende ad impegnare completamente il processore durante l'esecuzione degli script. Windows XP/2003 e superiori non sono affetti da questo problema in quanto lo script è in grado di impostare automaticamente la sua priorità di esecuzione su "Bassa", in questo modo la corretta allocazione delle risorse viene gestita in maniera autonoma dal sistema operativo stesso.
Per una corretta visualizzazione dell'output sui sistemi Windows Server 2003 con protezione avanzata di Internet Explorer aggiungere la voce about:internet nell'elenco dei siti attendibili, senza questo accorgimento sarà impossibile consultare i dettagli delle cartelle.
Legenda DACL
NTFS Stuff utilizza alcune funzioni prese da XCACLS.VBS (Windows Support Tools) per interrogare il file system ed elencare i permessi delle cartelle in un formato facilmente consultabile.
Nel caso in cui vi siano permessi speciali assegnati alle cartelle utilizzare la seguente lista come legenda.
Generali:
F = Full control
M = Modify
X = read & eXecute
R = Read
W = Write
Avanzati:
E = Synchronize
D = Take Ownership
C = Change Permissions
B = Read Permissions
A = Delete
9 = Write Attributes
8 = Read Attributes
7 = Delete Subfolders and Files
6 = Traverse Folder / Execute File
5 = Write Extended Attributes
4 = Read Extended Attributes
3 = Create Folders / Append Data
2 = Create Files / Write Data
1 = List Folder / Read Data
La riga di comando
A partire dalla versione 1.3 è stato introdotta la modalità di esecuzione dalla riga di comando, questa funzionalità rende possibili attività come la pianificazione dell'esecuzione (tramite operazioni pianificate), l'avvio attraverso altri script e l'esecuzione remota tramite "psexec".
Per utilizzarla e visualizzarne l'help aprite un prompt dei comandi ed avviate "ntfsStuff.vbs" utilizzando il motore "cscript.exe" e fornendo in input un qualsiasi parametro (ad esempio il carattere "?")
cscript ntfsStuff.vbs ?
- L'argomento [RootFolderPath] è obbligatorio ed identifica la radice dell'albero di cartelle da sottoporre ad analisi
- L'argomento [VerbosityLevel] è obbligatorio ed identifica quante informazioni dovrà contenere il report grafico generato dallo script, il valore "0" causa la visualizzazione delle sole sole informazioni rilevanti, il valore "1" causa la visualizzazione dell'intero albero di cartelle
- L'argomento [PriorityLevel] (disponibile ed obbligatorio soltanto su Windows 2000) identifica la priorità di esecuzione assegnata allo script, i valori possibili sono "0", "1" e "2", e rispettivamente indicano le priorità "bassa", "normale/moderata", "alta"
- L'argomento [RecursionLevel] è obbligatorio ed attraverso il valore assegnato identifica il numero di sottolivelli (recursion level) che verranno analizzati a partire dalla cartella di radice, il valore "0" causa l'analisi dell'intero albero di cartelle
- L'argomento [/v] è opzionale ed attivandolo è possibile visualizzare lo stato di avanzamento dello script
Esempi:
cscript ntfsStuff.vbs "C:\Data" 0 0 cscript ntfsStuff.vbs "C:\Data" 0 0 /v
Per maggiori dettagli sul significato di queste impostazioni fare riferimento all'articolo "Mettere ordine alle autorizzazioni di un File Server utilizzando NTFS Stuff v1 [2]"
La riga di comando permette anche di pianificare l'esecuzione dello script come esemplificato nella seguente immagine:
ed anche di eseguirlo da remoto tramite utilità come psexec [3], esempio:
psexec \\server_remoto cscript C:\ntfsStuff.vbs "C:\Data" 0 0 /v
NTFS Stuff e UAC (User Account Control)
NTFS Stuff è in grado di richiedere automaticamente l'elevazione dei privilegi quando viene eseguito su sistemi operativi che supportano ed utilizzano la funzionalità di controllo dell'account utente (Windows Vista, Windows 7, Windows 2008 Server).
N.B: per ovvie ragioni l'elevazione dei privilegi può essere richiesta automaticamente soltanto durante l'esecuzione dello script in modalità grafica, per ottenere i privilegi di amministratore durante l'esecuzione pianificata o interattiva tramite la riga di comando sarà necessario utilizzare servizi o processi (ad esempio il prompt dei comandi) già precedentemente elevati.
Per l'esecuzione remota tramite "psexec" è necessario autenticarsi utilizzando l'utente amministrativo di tipo "built-in" (nella maggior parte dei casi "Administrator") oppure disabilitare la funzionalità di protezione UAC access-token filtering [4].
Problemi noti
Le cartelle create da sistemi Macintosh, in particolare nominate con caratteri non previsti dallo standard Windows, potrebbero causare l'interruzione imprevista dello script.
In Windows 2008 Server lo script può causare un elevato utilizzo della cpu da parte dei processi lsass.exe e wmiprvse.exe.
Download
Changelog
- ntfs Stuff v1.0 - rilascio iniziale
- ntfs Stuff v1.1 - aggiornato CSS per garantire compatibilità con Internet Explorer 8 e Firefox 3.5, aggiunta una nuova funzione per gestire in maniera automatica la priorità di esecuzione su sistemi Windows XP/2003 e superiori.
- ntfs Stuff v1.2 - le cartelle senza permessi che restituiscono l’errore “Accesso Negato” non causano più il blocco dello script, aggiunta la possibilità di eseguire l’analisi usando come base di partenza (Root Folder) la radice di una unità (ad esempio “C:\” “D:\” “F:\” ecc..), Risolto un bug causato dalla funzionalità UAC su Windows 2008 (ringrazio Helios Ciancio per la segnalazione, l’analisi del problema ed il codice vbscript fornitomi via mail), risolto un piccolo bug presente nella funzione di inserimento della Root Folder, risolto un piccolo bug presente nell’HTML generato in output.
- ntfs Stuff v1.3 - introdotto il supporto alla riga di comando, introdotto il supporto UAC (user account control), migliorata ulteriormente la gestione degli errori di tipo "Accesso negato", migliorate le prestazioni in fase di ricerca delle cartelle da analizzare.
Referenze
- http://www.microsoft.com/te....c=it [6]
- http://msdn2.microsoft.com/en....85).aspx [7]
- http://msdn2.microsoft.com/en....85).aspx [8]
- http://msdn2.microsoft.com/en....85).aspx [9]
- http://www.microsoft.com/te....007.mspx [10]
- http://kbalertz.com/88386....ervice.aspx [11]
Autore
Mirko Iodice
mirko -at- notageek (.dot) it
Suggeriti dall'autore
- Mettere ordine alle autorizzazioni di un File Server utilizzando NTFS Stuff v1
- WSH - Windows Scripting Host