unbekannternr1
Goto Top

Dateien Berechtigen mit übersetzungtabelle

Hallo,
Ich ein kleines Problem und komme nicht weiter.
Ich habe eine Haufen Dateien auf die ich Berechtigen möchte bzw. muss. Dateinamen sind z.B Müller.xls Meier.xls Schulz.xls aber die Benutzernamen in der Domain sind leider anders aufgebaut z.B. muemax88 meimax87 oder schott81. Nun kann man mit einer For schleife Dateien recht einfach Berechtigen aber nur wenn der Dateiname auch den Benutzernamen entspricht.
for /f %%a in (D:\benutzer.txt) do (
icacls "D:\Ordner\%%a.xls" /grant  %%a:R  
)


schön wäre wenn ich aus einer Art Übersetzungstabelle oder csv den Benutzernamen der Datei zuordne.

z.B.
Müller.xls;muemax88 
Meier.xls;meimax87 
Schulz.xls;schott81   


Ich weiß nur leider nicht wie ich das noch in die schleife mit einbringen soll, und hoffe jemand kann mit helfen.

Danke schon mal im Voraus.

Content-ID: 367904

Url: https://administrator.de/forum/dateien-berechtigen-mit-uebersetzungtabelle-367904.html

Ausgedruckt am: 22.12.2024 um 09:12 Uhr

erikro
erikro 13.03.2018 um 16:07:05 Uhr
Goto Top
Dafür würde ich die Powershell nehmen. Mit dem Befehl import-csv kannst Du die csv-Datei einlesen und hast dann Objekte mit den Eigenschaften username und filename (oder wie auch immer Du die Überschriften wählst). Wie Du die Rechte dann setzen kannst, findest Du hier:
http://www.powershellpraxis.de/index.php/berechtigungen
UnbekannterNR1
UnbekannterNR1 15.03.2018 um 17:51:26 Uhr
Goto Top
So zur Lösung habe jetzt mal was hingebaut das für micht Funktioniert vielleicht hilft es ja Wem.
(Ist noch die erste Version, aber geht und das reicht mir)

$csv = "C:\Folder\import.txt"  
$Ordner = "C:\Folder\test\"  
$Domain = "MYDOMAIN\"  

$daten = Import-Csv $csv -Delimiter ";" | ForEach-Object{  
$complete = $Ordner + $_.Dateiname
$account = $Domain + $_.Kennung 
if(Test-Path $complete) {   
try {
$rule = new-object System.Security.AccessControl.FileSystemAccessRule ($account,"ReadAndExecute","Allow")  
$acl = Get-Acl $complete
$acl.SetAccessRule($rule)
Set-ACL -Path $complete -ACLObject $acl -ErrorAction stop            
Write-Host "Successfully set permissions on $complete"   
} catch {            
Write-Warning "$complete : Fehler bei Account : $account"       
}
}else {            
   Write-Warning "$complete : No such file found"                 
  }    
}


CSV dazu sieht dazu so aus:

Dateiname;Kennung
Müller.xls;muemax88 
Meier.xls;meimax87 
Schulz.xls;schott81   
erikro
erikro 16.03.2018 um 08:18:46 Uhr
Goto Top
Super! Endlich mal einer, der nach einem Tipp sich die Mühe macht, selbst zu forschen und nicht weint, dass man ihm das Skript schreibt. face-smile