Benutzer powershell, um eine Liste aller Ordner /downloads/pivots

Also ich habe eine Boot Belastung von pivot-Tabellen, die ich hochladen Alltag zu Ordnern wie:
Pivot0001
Pivot0002
Pivot0003

und so weiter.

Ich habe auch user-Gruppen genannt Pivot0001 und so mit Benutzer müssen für den Zugriff auf diese Ordner. Was ich jetzt tun müssen, ist, legen Sie die Berechtigungen für die einzelnen Ordner (ich habe 400 oder so von Ihnen). Ich weiß, ich brauche eine Schleife und legen Sie die Berechtigungen. Was ich nicht weiß, wie zu tun ist, erhalten eine Liste aller Ordner und legen Sie dann die Berechtigungen für diesen Ordner zu.

BEARBEITEN
Ich habe vergessen zu sagen, das ist für SharePoint...tut mir Leid, dass

Hier ist der Letzte code, der funktioniert (nicht wirklich sauber, aber es funktioniert)

[Void][System.Diagnostics.Stopwatch] $sw;
$sw = New-Object System.Diagnostics.StopWatch;
$sw.Stop();
$sw.Start();
clear   

$path = "\\path\to\webdav\"
$dirs = Get-ChildItem $path -Recurse | Where-Object { $_.Attributes -band [System.IO.FileAttributes]::Directory }
[Void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint");
$SPSite = New-Object Microsoft.SharePoint.SPSite("http://sharepoint");
$OpenWeb = $SpSite.OpenWeb("/Downloads");
[int]$i = 0;
foreach ($dir in $dirs) {
    $i++
    Write-Host "Setting $dir to $dir" -F Green;
    $path = "http://sharepoint/Downloads/" + $dir;
    $TheNewGroup = $OpenWeb.GetFolder($path);
    [Microsoft.SharePoint.SPFolder]$folder = $OpenWeb.GetFolder($path);
    [Microsoft.SharePoint.SPGroupCollection]$spc = $OpenWeb.SiteGroups;
    [Microsoft.SharePoint.SPGroup]$group = $spc[$dir];
    [Microsoft.SharePoint.SProleAssignment]`
        $roleAssignment = New-Object Microsoft.SharePoint.SPRoleAssignment([Microsoft.SharePoint.SPPrincipal]$group);
    $OpenWeb.GetFolder($path).Item.BreakRoleInheritance("true");
    $roleAssignment.RoleDefinitionBindings.Add($OpenWeb.RoleDefinitions["Read"]);
    $OpenWeb.GetFolder($path).Item.RoleAssignments.Add($roleAssignment);
}
Write-Host "found $i Folders" -F Green
$SPSite.Dispose();
$sw.Stop();
$howlong = $sw.Elapsed.ToString();
write-host "Took: " $howlong -f Green;
Schreibe einen Kommentar