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-Key: 367904

Url: https://administrator.de/contentid/367904

Printed on: April 19, 2024 at 14:04 o'clock

Member: erikro
erikro Mar 13, 2018 at 15:07:05 (UTC)
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
Member: UnbekannterNR1
UnbekannterNR1 Mar 15, 2018 at 16:51:26 (UTC)
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   
Member: erikro
erikro Mar 16, 2018 at 07:18:46 (UTC)
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