Ultimamente ho lavorato con uno dei nostri ragazzi di archiviazione su un progetto che ha coinvolto un po 'di controllo delle condivisioni di file di grandi dimensioni che sono state utilizzate dalla società per anni. Spesso ci imbattiamo in directory o file inaccessibili (con account amministratore di dominio) per uno o più dei seguenti motivi:
- ACL danneggiati
- l'accesso è stato revocato o negato per il gruppo Administrators (o l'utente SYSTEM)
- nome file + percorso troppo lungo (oltre MAX_PATH )
Esistono alcuni strumenti che possono essere di aiuto in queste situazioni, da Microsoft (ad esempio TAKEOWN.EXE e ICALCS.EXE) o da terze parti (ad esempio SETACL.EXE ). A volte sono necessari altri trucchi come l'esecuzione di uno dei comandi nell'account SYSTEM con PSEXEC.EXE . Anche solo capire quali passi fare e in che ordine è una sfida ...
Ad esempio, vorrei essere in grado di risolvere i problemi con un flusso come questo:
- Il percorso è troppo lungo? In tal caso, crea un percorso con il
\\?\
prefisso, quindi riprova. - L'ACL è danneggiato? In tal caso, riordinare correttamente gli ACE e rimuovere eventuali incognite, quindi riprovare.
- È stato negato l'accesso al gruppo amministratori? In tal caso, assumere la proprietà, aggiungere nuovamente le autorizzazioni per il gruppo Administrators e l'account SYSTEM, quindi riprovare.
- Sta ancora fallendo? In tal caso, eliminare tutti gli ACE e applicare solo le autorizzazioni ereditate, quindi controllare di nuovo. (Questo è un tipo di ultima risorsa, dal momento che spesso apre autorizzazioni che dovevano essere più restrittive.)
- È una directory? In tal caso, il processo deve continuare in modo ricorsivo per i file all'interno ...
Fare i passaggi precedenti manualmente è una seccatura e irragionevole quando abbiamo centinaia di directory da sistemare. Ho provato a scrivere script per aiutarli, ma trovo difficile rendere lo script "intelligente" in merito alle decisioni che prende, e quindi è spesso più facile fare un metodo di riparazione grossolana come ripristinare solo le autorizzazioni ereditate.
Qualcuno può consigliare altri software e / o script che potrebbero aiutare in questo processo? Oppure, come si fa a risolvere problemi di autorizzazioni come questi?