Enumera le condivisioni di rete di Windows e tutte le autorizzazioni personalizzate all'interno o all'interno

StackOverflow https://stackoverflow.com/questions/115649

Domanda

Abbiamo vari server con molte directory condivise. È abbastanza facile guardare il browser di condivisione per vedere qual è il "livello superiore" le condivisioni sono, ma sotto c'è un pasticcio confuso di autorizzazioni personalizzate, nessuna delle quali è documentata.

Vorrei enumerare tutte le condivisioni sul dominio (sicuramente tutti i 'server', i PC locali sarebbero carini) e quindi ricorrere a ciascuno di essi e segnalare qualsiasi deviazione dal genitore. Se il bambino ha le stesse autorizzazioni, non è necessario riportarlo indietro.

Preferirei una semplice soluzione script-y alla scrittura di una grande app C #, ma qualsiasi metodo funzionerà (anche il software esistente).

Ad esempio, vorrei ottenere:

SERVER1\
 \-- C: (EVERYONE: Total control, ADMINs, etc. etc.)
   \-- (skip anything that is not the same as above)
   \-- SuperSecretStuff (Everyone: NO access; Bob: Read access)
SERVER2\ 
 \-- Stuff (some people)

ecc.

È stato utile?

Soluzione

So che non è lo scripting, ma hai provato ShareEnum? http://technet.microsoft.com/en-us/sysinternals/bb897442. aspx e poi esportarlo? Puoi anche confrontare con le esecuzioni precedenti. Non penso che ci sia un'interfaccia cmd line (che fa schifo), ma ti fornirà le informazioni di cui hai bisogno

Altri suggerimenti

Questo script Powershell raggiunge il tuo obiettivo.

Come si dice:

  

Questo piccolo script enumera tutte le condivisioni su un computer ed elenca le autorizzazioni a livello di condivisione per ogni condivisione. Utilizza WMI per recuperare le condivisioni ed elencare le autorizzazioni.

     

Nota che questo script elenca le autorizzazioni a livello di condivisione e non le autorizzazioni NTFS.

     

Accetta un numero di computer come input, un singolo IP o eseguendolo nel sistema locale:

       .EXAMPLE 
       C:\PS> .\Get-SharePermissions # Operates against local computer. 

       .EXAMPLE 
       C:\PS> 'computerName' | .\Get-SharePermissions 

       .EXAMPLE 
       C:\PS> Get-Content 'computerlist.txt' | .\Get-SharePermissions | Out-File 'SharePermissions.txt' 
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top