- PowerShell tillater eksporttillatelser NTFS til CSV eller tekst for analyse i Excel, men med begrensninger i store miljøer.
- Spesialiserte gratis- og betalte verktøy forenkler visuell rapportering, effektive tillatelser og endringssporing.
- Å forstå NTFS, ACL, ACE, arv og evalueringsrekkefølge er nøkkelen til å tolke enhver rapport riktig.
- Kombinasjonen av skript, hendelsesrevisjon og beste praksis gir robust kontroll over datatilgang i Windows.

Det kan bli en skikkelig hodepine å administrere hvem som har tilgang til hvilken mappe på en Windows-filserver. NTFS-tillatelser og ACL-er De kommer ut av kontroll, sikkerhetsproblemer dukker opp, revisjoner er uendelige, og brukere har flere rettigheter enn de burde.
Heldigvis har vi i dag en god blanding av PowerShell-skript og rapporteringsverktøy (Gratis og betalte) verktøy som lar deg generere tydelige rapporter i HTML, CSV eller XLSX med alle tillatelsene som gjelder for filer og mapper. I denne veiledningen vil du se i detalj hvordan du gjør dette med innebygde løsninger og spesialisert programvare, samt grundig gjennomgå viktige konsepter innen NTFS, ACL-er, arv, spesielle kontoer og beste praksis.
Innebygd revisjon med PowerShell: eksport av NTFS-tillatelser til CSV
Windows inneholder alt som trengs for å Overvåk NTFS-tillatelser uten å installere noe Videre, men med visse begrensninger. Den klassiske tilnærmingen innebærer å bruke PowerShell til å navigere i en mappestruktur, lese tilgangskontrollistene med Get-ACL og send informasjonen til en CSV-fil som deretter åpnes i Excel for å analysere den med filtre og pivottabeller.
Et typisk eksempel er script som definerer en CSV-utdatafil, en overskrift med hovedkolonnene og en rotsti som skal gjennomgås (for eksempel, \\Filserver\deling). Deretter går den gjennom alle undermappene med Get-ChildItem-RekursDen sjekker at hvert element er en beholder (mappe), og for hvert element henter den sin tilgangsliste:
– Mappebane, konto eller gruppe (IdentityReference), tilgangstype (Tillat/Avslå), om tillatelsen er arvet, arv- og forplantningsflaggHver linje er konstruert som en kommaseparert streng og lagt til CSV-filen ved hjelp av Legg til innhold.
Når skanningen er fullført, åpner du bare CSV-filen i Microsoft ExcelBruk filtre på kolonner som Identitetsreferanse o ErArvetOg du har allerede en ganske komplett første NTFS-tillatelsesrapport, klar til å filtreres etter brukere, grupper eller bestemte stier.
Et annet vanlig alternativ er å sende resultatet til Utenfor GridViewDette gir en filtrerbar, interaktiv visning i sanntid, noe som er veldig nyttig når du vil inspisere uten å generere mellomliggende filer, selv om CSV vanligvis foretrekkes for formell revisjon.
Begrensninger ved innebygd revisjon med PowerShell
Selv om PowerShell er svært kraftig og fleksibel, har den flere praktiske begrensninger for store revisjonerDen mest åpenbare forskjellen er ytelse: når den brukes -Rekurs På veldig dype trær med hundretusenvis av mapper kan kjøringen ta ganske lang tid og bruke betydelig minne.
I tillegg er de grunnleggende skriptene med Get-ACL De kommer ofte til kort i mer avanserte scenarioer, for eksempel når du trenger det reelle effektive tillatelser Når man tar hensyn til nestede gruppemedlemskap, arvede avslag, spesielle SID-er eller konflikter mellom flere ACE-er, innebærer alt dette å utvikle tilleggslogikk eller å stole på eksterne moduler, noe som kompliserer vedlikehold.
Det er også vanlig for elementære skript skiller ikke tydelig mellom arvede og eksplisitte tillatelser utover det enkle feltet ErArvetDe viser heller ikke den nøyaktige opprinnelsen til arven. I samsvarsrevisjoner (PCI DSS, SOX, HIPAA, osv.) er denne sporbarheten ofte nødvendig, og det kan være ganske kjedelig å gjenskape den manuelt i Excel.
Til slutt, selv om du kan planlegge en oppgave med Oppgaveplanleggeren og bruke Send-e-postMelding eller lignende, den robust automatisering av periodiske rapporter (med forskjellige maler, mottakere, filtre etter forretningsenhet osv.) krever en god del ekstra arbeid hvis kun innebygd skripting brukes.
Netwrix Auditor for Windows-filservere
For de som trenger å gå utover håndlaget skripting, er et av de mest populære alternativene Netwrix Auditor for Windows-filservereDette produktet tilbyr en spesifikk filserverrapporteringsmodul med forhåndsdefinerte rapporter og avanserte filtre.
Den typiske prosessen for å hente en NTFS-tillatelsesrapport med Netwrix er veldig enkel: du åpner konsollen, går til seksjonen Rapporter > Filservere > Status på Tiden og du velger rapporten MappetillatelserI filteret Objektets UNC-sti banen til den delte ressursen er angitt (for eksempel \\MinServer\MinDeling) og spørringen utføres.
Den resulterende rapporten viser for hver mappe effektive tillatelser per bruker eller gruppeskille mellom om de har blitt tildelt direkte eller gjennom en gruppe, og om de er arvet. Derfra kan du eksportere til HTML, PDF eller Exceleller planlegge en e-postabonnement for å motta den med ønsket frekvens (daglig, ukentlig, månedlig osv.).
En av de klare fordelene fremfor PowerShell er at Netwrix integrerer allerede analyse av gruppemedlemskap og beregning av effektive tillatelser, noe som eliminerer behovet for å bygge den logikken manuelt. Videre er motoren designet for store miljøer, slik at skanninger vanligvis er raskere og mer håndterbare i infrastrukturer med flere filservere.
Praktiske PowerShell-skript for NTFS-rapporter
Hvis du foretrekker å bli værende i ditt hjemland, men ta det et skritt videre, er det lurt å forberede seg PowerShell-skript spesifikke for ulike typer revisjonBasert på det gitte innholdet presenteres tre svært nyttige eksempler som dekker ulike behov uten behov for tredjepartsverktøy.
1. Skript for å sjekke en spesifikk bruker på første nivå
Det første skriptet er utformet for å svare på et veldig vanlig spørsmål: "Hvilke mapper på toppnivå har denne brukeren direkte tilgang til?"Dette er ideelt når en revisor eller avdelingsleder ber om å raskt gjennomgå hva de kan se og endre en bestemt konto.
Skriptet definerer variabler for basisrute (for eksempel P:\), The målbruker (som DOMINIO\d.perezog utdatafilen. Deretter henter den bare mappene på det umiddelbare nivået ved hjelp av Get-ChildItem-Path $Path-Force filtrering etter PSIsContainerHent tilgangskontrollisten for hver mappe med Get-ACL og utforske inngangene ($acl.Access).
Ved hvert ACE-sjekk om Identitetsreferanse samsvarer med brukerenI så fall lagrer den informasjon som mappenavn, rettigheter (FileSystemRights), tilgangstype (Tillat/Avslå) og om det er en arvet tillatelse. Alt lagres i en samling og eksporteres til slutt til en tekst- eller CSV-fil. Ut-fil.
Når ingen treff blir funnet, logger skriptet en melding som denne: «Ingen tillatelser ble funnet for bruker X under bane Y»Dette unngår tomme rapporter og gjør revisjonsresultatet tydelig.
Denne tilnærmingen er perfekt for engangsrevisjoner, for å oppdage uønskede direkte tillatelser på rotmapper eller for raskt å sjekke hvilke toppnivåcontainere en kritisk konto har tilgang til.
2. Inventarskript for alle brukere på første nivå
Det andre skriptet har en mer global tilnærming: i stedet for å fokusere på én konto, genererer det en Fullstendig oversikt over alle ACE-er i hver mappe på første nivå under en UNC-sti, for eksempel \\recursocompartido\Administración\.
Igjen hentes bare mappene direkte under den angitte banen, uten rekursjon. For hver mappe hentes tilgangskontrollisten, og en tekstblokk konstrueres som starter med noe sånt som "Fil: «, etterfulgt av én linje for hver tilgangsoppføring med brukeren eller gruppen, de tildelte rettighetene, tillatelsestypen og om den er arvet.
Resultatet er en lett og rask rapport å generere som gir en Panoramautsikt over rotnivået av den delte ressursen uten å gå i detalj om alle undermappene. Dette er veldig nyttig før en migrering, for å bekrefte at basisstrukturen er ren og godt organisert.
Selv om det originale skriptet inkluderte noen emojier for å gjøre resultatet mer visuelt, er den mest praktiske tilnærmingen i produksjonsmiljøer vanligvis å opprettholde et enkelt tekstformatspesielt hvis det deretter skal importeres til Excel eller analyseverktøy.
3. Omfattende rekursivt revisjonsskript
Det tredje manuset hever innsatsen og tar ansvar for å utføre en rekursiv revisjon av alle mapper under en delt sti, uten filer. Det vil si at den ikke bare sjekker det første nivået, men også hele undermappetreet hjelp Get-ChildItem-Rekurs.
For hver mappe som blir funnet, hentes tilgangskontrollisten, og samlingen gjennomsøkes. .Access Som i tidligere skript eksporteres identitet, rettigheter, tilgangstype og arv. Resultatene grupperes i en utdatafil (txt eller CSV) som kan være veldig stor i store systemer, men som tilbyr en omfattende oversikt over ressurssikkerhet.
Denne typen rapport er den som vanligvis etterspørres i formelle samsvarsrevisjoner eller når du vil utføre en grundig rengjøring av tillatelser, identifisere redundant tilgang og finne grupper med for mange rettigheter.
I disse tilfellene anbefales det på det sterkeste Kjør skriptet fra PowerShell «Som administrator», utenom rushtiden, og om mulig fra en server med god tilkobling til lagring hvor mappene befinner seg, for å minimere utførelsestiden.
Gratis verktøy for NTFS-rapportering og tillatelsesadministrasjon
Hvis du ikke har lyst til å håndtere manus eller ønsker noe mer visuelt og brukervennlig å dele med revisorer og bedriftseiere, finnes det flere gratis verktøy veldig interessante som fokuserer på NTFS-tillatelsesrapporter.
NTFS-tillatelsesrapporter gratisutgave (Cjwdev)
Dette verktøyet genererer rapporter om fil- og mappetillatelser som enkelt kan eksporteres til HTML. Den lar deg velge mellom tre- eller tabellvisning, og utheve tillatelser med forskjellige farger for raskt å identifisere hvem som har hvilken type tilgang.
En av fordelene er at Selve rapporten viser medlemmene i gruppene., inkludert nestede grupper, noe som gjør det enkelt å se effektive tillatelser uten å måtte gå til Active Directory for å sjekke hver gruppe. Gratisversjonen er imidlertid rettet mot rapporter etter mappe og den tillater ikke generering av en rapport fokusert på en bestemt bruker.
Grensesnittet kan virke litt rotete i starten, fordi det inkluderer så mange tilpasningsalternativer, men når du først har blitt vant til det, er det et ganske brukervennlig verktøy. Imidlertid er tillatelsesskanningsprosessen... det kan ta en stund i miljøer med mange mapper og trege eksterne stier.
Netwrix verktøy for rapportering av effektive tillatelser
Dette gratisverktøyet fra Netwrix fokuserer på å vise, for en bestemt bruker eller gruppe, deres effektive Active Directory- og fildelingstillatelser i én enkelt rapport. Den indikerer også om tillatelser er tildelt eksplisitt eller ved arv, noe som bidrar til å eliminere overflødig tilgang.
Den er veldig enkel å bruke: du skriver inn bruker- eller gruppenavn og verktøyet beregner deres konsoliderte tillatelser. Resultatet kan eksporteres til HTML med et par klikk. Den største begrensningen er at Den viser ikke detaljene om tillatelser per mappeFor det refererer det til det betalte produktet Netwrix Auditor for filservere.
AccessEnum (Sysinternals, Microsoft)
Problemet er at Eksport er bare tilgjengelig i .txt-format.Oppsettet er ganske lite brukervennlig hvis du vil eksportere det til Excel. For å få det som en .xls- eller .xlsx-fil må du vanligvis kopiere og lime inn manuelt, eller bearbeide det videre med skript.
Tillatelsesrapportør (programvare for nøkkelmålinger)
Permissions Reporter tilbyr en lignende opplevelse som Cjwdevs NTFS Permissions Reporter, men med en et mer moderne og visuelt tiltalende grensesnittDen lar deg enkelt opprette og laste ned rapporter, med trevisninger og eksport til forskjellige formater.
De viktigste begrensningene i gratisversjonen er at Skanningene kan være noe trege. i svært store strukturer, og det genererer bare rapporter fokusert på mapper eller filerIkke for spesifikke brukere. Likevel er det et godt alternativ hvis du er ute etter noe intuitivt.
Tillatelsesanalysator (SolarWinds)
SolarWinds' tillatelsesanalysator er veldig nyttig når du vil å forstå rettighetene til en bestemt bruker i detaljDen viser hvordan tillatelser arves og hvilke grupper som er involvert. Den lar deg navigere i tillatelser etter bruker eller gruppe og bryte ned opprinnelsen til hver tilgang.
Den store ulempen er det Den tillater ikke eksport av resultatene.Den er mer utformet som et interaktivt spørreverktøy enn en formell rapportgenerator. Hvis du raskt trenger å se hvorfor en bruker har tilgang til en mappe, kan den være utrolig nyttig.
NTFS-tillatelsesverktøy (MajorGeeks.com)
Dette settet med verktøy er mer rettet mot massehåndtering av tillatelser enn ren rapportering. Den tillater batchendringer av tilgangskontrollister og sikkerhetskonfigurasjoner på tvers av mange filer og mapper, noe som sparer tid sammenlignet med standard Windows GUI-konsoll.
Dens største fordel er det reduserer tiden som trengs Det er mer nyttig for å endre store tillatelsesstrukturer enn fanen Windows Sikkerhet. Det er ikke så mye et rapporteringsverktøy som det er for rask NTFS-administrasjon.
PowerShell som en «bonus» for tilpassede rapporter
Bortsett fra skriptene som er nevnt tidligere, kan du alltid ty til PowerShell som en sveitsisk lommekniv å eksportere mappe- og brukertillatelser i CSV-format, bygge tilpassede rapporter for miljøet ditt, og til og med integrere dem med andre overvåkingsverktøy eller databaser.
Ved å bruke kodeeksempler publisert av Microsoft og fellesskapet, er det mulig å lage skript som Eksporttillatelser etter sti, etter bruker, etter gruppe eller ved en kombinasjon av alle, inkludert arv, SID-er, spesielle tillatelser og andre relevante kolonner.
Nøkkelbegreper: NTFS, ACL, ACE, arv og sikkerhetsbeskrivelser
For å virkelig dra nytte av NTFS-tillatelsesrapporter, er det viktig å ha en klar forståelse av Grunnleggende sikkerhetsterminologi i WindowsUten disse konseptene kan det bli kaotisk å tolke en kompleks rapport.
Filsystemet NTFS (New Technology File System) Den er ansvarlig for å gi avanserte tillatelser til filer og mapper. Alle sikre objekter (fil, mappe, registernøkkel, prosess osv.) har en slik tillatelse. sikkerhetsbeskrivelse (SD), som inkluderer eierens SID, deres primære gruppe og to lister: DACL (Liste over diskresjonær tilgangskontroll) og SACL (Liste over systemtilgangskontroll).
en ACL (tilgangskontrollliste) Det er i hovedsak en liste over adgangskontrollinnganger (ACE)Hver ACE angir hvilke tillatelser som er gitt til en bestemt SID (bruker eller gruppe). er tillatt eller nektet...og hva de gjelder for (bare for objektet, for dets underordnede eller for begge). Det finnes tre hovedtyper: ACE-er med tillatt tilgang, ACE-er med nektet tilgang og ACE-er med revisjon.
La DACL Det er det som kontrollerer hvem som kan og ikke kan få tilgang til en ressurs: hvis et objekt ikke har en DACL, har alle tilgang (farlig oppførsel), mens en tom DACL innebærer at ingen har tilgang. Den SACL Den brukes til å definere hvilke tilgangsforsøk som skal logges i sikkerhetsloggen (for eksempel mislykkede lesninger av en sensitiv fil).
Mekanismen til arv Dette fører til at tilgangskontrollistene som er definert i et containerobjekt (overordnet mappe) overføres til dets underordnede objekter. Når du oppretter et ACE, kan flagg defineres for å avgjøre om det gjelder for objektet, bare for dets underordnede objekter, eller for begge. Dette muliggjør utforming av strukturer der tillatelser automatisk overføres, noe som sparer mye manuell administrasjon.
Hvor NTFS-tillatelser lagres og hvordan du administrerer dem
NTFS-tillatelser lagres i Master File Table (MFT) av NTFS-volumet. Denne tabellen fungerer som en slags intern database der metadata for hver fil og mappe lagres, inkludert sikkerhetsbeskrivelsen (og dermed den tilhørende DACL og SACL).
Når du tildeler tillatelser til en fil eller katalog gjennom fanen Sikkerhet på Windows, eller via kommandoer som iskremDet som faktisk endres er objektets sikkerhetsbeskrivelse i MFT-en. Operativsystemet bruker disse dataene til å tillate eller nekte tilgang ved kjøretid.
Fra det grafiske grensesnittet er standardmåten å administrere tillatelser å høyreklikke på filen eller mappen, gå til Egenskaper > Sikkerhet, og der legge til eller fjerne brukere og grupper, tildele tillatelser som full kontroll, endre, lese og kjøre, lese eller skrive.
På eldre systemer, eller når du bruker enkel deling, kan det hende at Sikkerhet-fanen ikke vises før du deaktiverer «Enkel fildeling» i mappealternativene. I moderne domenemiljøer er denne fanen tilgjengelig som standard og er inngangsporten til mye av tillatelsesadministrasjonen.
Avanserte kommandoer: TAKEOWN og ICACLS
For scenarier der det er nødvendig ta massiv besittelse av filer eller tilordne tillatelser samtidig, tilbyr Windows-skallet kommandoene takeown e icacls, veldig nyttig når det grafiske grensesnittet er mangelfullt eller for tregt.
For eksempel er et vanlig mønster å utføre noe som takeown /F "%SYSTEMDRIVE%\*" /R /D S, som indikerer at den nåværende brukeren vil bli rekursiv eier av alle filer og mapper fra systemdisken. Modifikatoren /R anvender operasjonen på underkataloger, og /D S tving frem bekreftende svar i interaktive spørsmål.
Så kan den brukes icacls "%SYSTEMDRIVE%\*" /grant Administradores:(D,WDAC) /T å gi til administratorene spesifikke tillatelser som sletting (D) eller skriving av DACL (WDAC) over hele disken, ved bruk av /T å bruke operasjonen på alle elementene i treet.
Kommandoen iskrem Den lar deg spesifisere sammendragstillatelser (som F for full kontroll, M for endring, RX for lesing og utførelse) eller mer detaljerte tillatelser (slett, les attributter, skriv til eier osv.), samt forskjellige arvsmetoder:
- OI (Objektarv): arv til filer.
- CI (Container Inherit): arv til undermapper.
- IO (kun arv)ACE gjelder bare for underordnede, ikke for det aktuelle objektet.
- NP (ikke-propagerende)De fortsetter ikke å spre seg utover neste nivå.
Ved å kombinere disse parameterne kan svært presise arveregler bygges og automatiseres. store endringer i tillatelser på en kontrollert måte, alltid med den logiske forholdsregelen å utføre forhåndstester i laboratoriemiljøer.
Lidenskapelig forfatter om verden av bytes og teknologi generelt. Jeg elsker å dele kunnskapen min gjennom å skrive, og det er det jeg skal gjøre i denne bloggen, vise deg alle de mest interessante tingene om dingser, programvare, maskinvare, teknologiske trender og mer. Målet mitt er å hjelpe deg med å navigere i den digitale verden på en enkel og underholdende måte.
