Indice del forum Olimpo Informatico
I Forum di Zeus News
Leggi la newsletter gratuita - Attiva il Menu compatto
 
 FAQFAQ   CercaCerca   Lista utentiLista utenti   GruppiGruppi   RegistratiRegistrati 
 ProfiloProfilo   Messaggi privatiMessaggi privati   Log inLog in 

    Newsletter RSS Facebook Twitter Contatti Ricerca
[PS] Accedere agli ACL dei file/chiavi protetti
Nuovo argomento   Rispondi    Indice del forum -> Programmazione
Precedente :: Successivo  
Autore Messaggio
balubeto
Dio minore
Dio minore


Registrato: 19/05/06 09:22
Messaggi: 757

MessaggioInviato: 25 Giu 2010 17:59    Oggetto: [PS] Accedere agli ACL dei file/chiavi protetti Rispondi citando

CIAO

Come si fa ad accedere agli ACL di tutti i file/directory e le chiavi del registro di un sistema Windows 7 indipendentemente dal loro attributo di protezione per modificare i loro ACL? Mi potreste fare un esempio di cio`?

GRAZIE

CIAO
Top
Profilo Invia messaggio privato
balubeto
Dio minore
Dio minore


Registrato: 19/05/06 09:22
Messaggi: 757

MessaggioInviato: 26 Giu 2010 10:13    Oggetto: Rispondi

Ho scritto questo script

Codice:

# Parametri da inserire in una riga di comando:

# $RemovedSID                               Variabile che contiene un SID di un account rimosso di Windows 7 da rimuovere dal sistema.

param ($RemovedSID)

# Esamina le partizioni di un hard-disk e gli hive del registro per rimuovere il SID orfano dell'account rimosso dai ACL delle directory/file e delle
# chiavi del registro.

New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT

New-PSDrive -Name HKU -PSProvider Registry -Root HKEY_USERS

New-PSDrive -Name HKCC -PSProvider Registry -Root HKEY_CURRENT_CONFIG

$Drives = [Environment]::GetLogicalDrives(), 'HKLM:\', 'HKCR:\', 'HKU:\', 'HKCC:\'

$Drives | Get-ChildItem -Recurse -Force |
    ForEach-Object {

        "Verifica di {0}..." -f $_



        # Recupera le ACL dell'oggetto



        $ObjectACL = $_.GetAccessControl()



        # Recupera le regole per il SID desiderato



        $BadRules = @(

                $ObjectACL.GetAccessRules($true, $false, [Security.Principal.SecurityIdentifier]) |

                    ? { $_.IdentityReference -eq $RemovedSID }

            )



        if ($BadRules.Count -gt 0) {

            "Rimozione regole orfane (elementi trovati: {0})..." -f $BadRules.Count



            # Rimuove le regole orfane



            $BadRules |

                ForEach-Object {

                    $ObjectACL.RemoveAccessRule($_)

                }



            # Aggiorna le ACL dell'oggetto





            $_.SetAccessControl($ObjectACL)

        }

    }


ma, eseguendolo, mi sono accorto che rimuove l'eventuale SID orfano soltanto dai file/directory/chiavi comuni e NON dai questi stessi oggetti aventi tutti gli altri attributi (tipo, nascosto, di sola lettura, di sistema, ... ). Quindi, come devo modificare questo script per aggiungere anche questa "funzionalita`"?

GRAZIE

CIAO
Top
Profilo Invia messaggio privato
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> Programmazione Tutti i fusi orari sono GMT + 2 ore
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi