Добавить группу DOMAIN \ Domain Admins как полный доступ к потерянному домашнему каталогу? - PullRequest
0 голосов
/ 16 июня 2020

Приведенный ниже сценарий был создан великим { ссылка } для перечисления всех потерянных HomeDirectory:

$ServerHomeDirShare = "\\FileServer\HomeDir$"
$filter = "(Enabled -eq 'true')"

# get all user accounts from AD; only SamAccountName required
$users = Get-ADUser -Filter $filter | Select-Object -ExpandProperty SamAccountName
    Get-ChildItem -Path $ServerHomeDirShare -Directory | 
    Where-Object { $users -notcontains ($_.Name -replace '^(\w+\.\w+).*', '$1') } |
    Select-Object -Property Name, FullName,
                  @{ n = 'LastAccessTime'; e = { $_.LastAccessTime.ToString('yyyy-MM-dd HH:mm:ss') } },
                  @{ n = "Directory Size (MB)"; e = {
                            Try {
                                $Size = (Get-ChildItem -Path $_.FullName -Recurse -ErrorAction Stop | 
                                         Measure-Object Length -Sum).Sum / 1MB
                                [math]::Round($Size, 2)
                            }
                            Catch {
                                "ERROR: $($_.Exception.Message)"
                            }
                        }
                    } |
    Export-Csv -NoTypeInformation -Path C:\UserProfilesNotExist-Size.csv

Однако есть еще одна проблема, требующая исправления, чтобы добавить DOMAIN \ Domain Admins Группа AD как Полный доступ к ACL каталога, НО ТОЛЬКО, когда каталог недоступен или вызывает ошибку.

    $FullAccessADGroup = "DOMAIN\Domain Admins"
    
    function Take-Ownership
    {
        param (
            [String]$Folder
        )
        takeown.exe /A /F $Folder
        $CurrentACL = Get-Acl $Folder
        
        write-host "`n`t...Adding NT Authority\SYSTEM to $Folder" -ForegroundColor Yellow
        $SystemACLPermission = "NT AUTHORITY\SYSTEM", "FullControl", "ContainerInherit,ObjectInherit", "None", "Allow"
        $SystemAccessRule = new-object System.Security.AccessControl.FileSystemAccessRule $SystemACLPermission
        $CurrentACL.AddAccessRule($SystemAccessRule)
        
        write-host "`t...Adding Infrastructure Services to $Folder" -ForegroundColor Yellow
        $AdminACLPermission = $FullAccessADGroup, "FullControl", "ContainerInherit,ObjectInherit", "None", "Allow"
        $SystemAccessRule = new-object System.Security.AccessControl.FileSystemAccessRule $AdminACLPermission
        $CurrentACL.AddAccessRule($SystemAccessRule)
        
        Set-Acl -Path $Folder -AclObject $CurrentACL
    }
    
function Test-Folder($FolderToTest) {
    $error.Clear()
    $ErrorArray = @()
    Get-ChildItem $FolderToTest -Recurse -ErrorAction SilentlyContinue | Select-Object FullName
    if ($error) {
        $ErrorArray = $error + $ErrorArray
        foreach ($err in $ErrorArray) {
            if ($err.FullyQualifiedErrorId -eq "DirUnauthorizedAccessError,Microsoft.PowerShell.Commands.GetChildItemCommand") {
                Write-Host Unable to access $err.TargetObject -ForegroundColor Red
                Write-Host Attempting to take ownership of $err.TargetObject -ForegroundColor Yellow
                Take-Ownership($err.TargetObject)
                Test-Folder($err.TargetObject)
            }
        }
    }
}

Test-Folder $source

Потому что, хотя я используя учетную запись DOMAIN \ Administrator для выполнения приведенного выше сценария, я не могу получить размер каталога или даже открыть каталог через UNCPath, это ошибка:

ERROR: Access to the path '\\FileServer\HomeDir$\Jane.Liz.V2' is denied.
ERROR: Access to the path '\\FileServer\HomeDir$\Lisa.Chan.V5' is denied.
ERROR: Access to the path '\\FileServer\HomeDir$\Carolline.Marce.V6' is denied.
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...