Creare un report “navigabile” delle ACL

Eccoci qua.. i tempi sono maturi per un nuovo articolo.. forse..

Da un po’ di tempo avevo in mente di provare a creare un report navigabile delle ACL delle cartelle che gestisco, nulla di particolarmente complesso (per ora), solo uno strumento che  schedulato mi creasse qualcosa che mi permettesse di navigare gli accessi alle cartelle meno farraginoso che “tasto destro-proprietà..etc”..

Siccome sono un riciclone sono partito dal mio precedente articolo di cui ho riciclato modificata la funzione “EnumFolders”; in questo nuovo script il log creato sarà un XML contenente le ACL relative alla cartella cui si riferisce.

Ho scelto l’XML perché si presta facilmente ad essere implementato e lavorando sullo schema XSL è facilmente ottenibile un qualcosa di navigabile direttamente in Internet Explorer o Firefox.
Per avere la navigabilità nell’analisi di ogni sotto-cartella tiene traccia della cartella “parent” e la trascrive nel log, quindi in ogni XML le informazioni contenute sono:

  • <PARENT>: contiene semplicemente il link al log della cartella superiore
  • <FOLDER>: contiene <NAME> e <ACL> della cartella cui si riferisce
  • <CHILDREN>: contiene i link ai log delle sottocartelle

Lo script va eseguito in Powershell e l’unico argomento viene richiesto in esecuzione ed è il path.

Potete prendere lo script qua e il template pure qui, togliendo il .txt dall’estensione.

Nei prossimi giorni spero di riuscire ad entrare nel dettaglio dei due file, per ora comnciate a studiarli senza di me 😉

 


3 thoughts on “Creare un report “navigabile” delle ACL”

  1. Rieccomi.. è passato un po’ più tempo di quello che avrei voluto..
    Come dicevo anche questo lavoro si basa su “EnumFolders”, quindi partiamo da dove viene chiamata nello script:

    Enumfolders (Get-Item $path) $null $null

    Il primo parametro è il percorso da cui vogliamo parta il report, il secondo il percorso “PADRE”, ovvero il livello superiore, e ci servirà durante la ricorsione come pure il terzo parametro, ovvero i livelli inferiori.

    Per il resto della EnumFolder gli unici cambiamenti sono la scrittura dei TAG specifici di XML ed altri personalizzati che serviranno al browser per la corretta interpretazione dei contenuti.
    In particolare:

    1. FILESYSTEM è l’intero oggetto analizzato
    2. PARENT conterrà il LINK al report relativo alla cartella del livello superione
    3. FOLDER il percorso in esame e le sue proprietà:
    4. NAME il nome della cartella

    Per quanto riguarda il secondo file, si tratta del template che definisce le regole secondo il quale il browser dovrà impaginare il report.
    In breve gli oggetti principali che costituiscono il BODY del documento sono: PARENT, FOLDER e CHILDREN, quindi definiamo come vanno visualizzati; è interessante la gestione dell’oggetto CHILDREN in quanto chiaramente una cartella può avere N sottocartelle al livello inferiore, quindi dobbiamo dire al browser di applicare la stessa regola per tutte le occorrenze del tag specifico.

    Tutto questo lavoro è certamente migliorabile, ad esempio aggiungendo un esploso dei membri dei gruppi quando si clicca sui nomi gruppo etc.. sono aperto ad ogni suggerimento e/o critica.

    Alla prossima!!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.