Аудит полномочий NTFS с PowerShell

Это должно просто быть зашифровано в транзите (SMTP/TLS), или в устройстве хранения данных/в конечные точки также (PGP, и т.д.)?

Работая с подобными законодательствами, я имею, обычно устанавливают PKI/SMTP/TLS между двумя или больше организациями, которые часто отправляют/получают частную/защищенную информацию; я просто устанавливаю smarthost в каждой организации, соответствующей рассматриваемым доменам для маршрутизации почты или через от сайта к сайту туннель VPN когда применимый или через используемый SMTP/TLS для шифрования почты в пути с Exchange.

4
задан 3 January 2012 в 22:49
3 ответа

Несколько месяцев назад я прочитал отличный пост, в котором описывалась аналогичная ситуация, по сути, удаленно выполняя скрипт, который использует командлет Get-ACL для рекурсивного перечисления списков ACL для пути и передачи вывода по конвейеру. через командлет Export-CSV для хорошего обзора:

http://jfrmilner.wordpress.com/2011/05/01/audit-ntfs-permissions-powershell-script/

4
ответ дан 3 December 2019 в 03:09

Аналогично ссылке Judaslscariot1651 . Я больше пошел к тому, чтобы сделать снимок того, что я знаю, хорошо, а затем сравнивать его всякий раз, когда мне нужно, запуская сценарий. Я сравнил права доступа к файлам, выведя в XML то, что он нашел в настоящее время, и затем сравнил это с моим базовым XML-файлом, используя Compare-Object . Может быть, неточно, но именно так, как я это делал ...

Примечание: в то время это была незавершенная работа, и она ориентирована на определенные пути, которые мне нужно было отслеживать, которые я извлек из чтения в разделе реестра ценности. Основная суть того, что вам, вероятно, нужно, начинается рядом с «Сбор информации о ...». Я просто хотел предоставить весь код, чтобы показать, как / что я делал.



#Get date/time for file name
$d = Get-Date -format "yyyyMMdd"
# Pull instance names found on server 
$inst = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server').InstalledInstances

$warningpreference = "Continue"

foreach($i in $inst) 
{    $p = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL').$i
    $bin = (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\$p\Setup").SQLBinRoot
    $ver = (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\$p\MSSQLServer\CurrentVersion").CurrentVersion
    switch -wildcard ($ver) 
    {
        "9*" {$client = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\90').VerSpecificRootDir; break }
        "10*" {$client = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\100').VerSpecificRootDir; break }
    }

    $currentFile = $i + "_" + $d + ".xml"
    "Collecting information on $bin and $client for $i"
        $bin,$client | foreach { Get-ChildItem $_ -Recurse } |
                    Select FullName, CreationTimeUTC, LastWriteTimeUtc, PSIsContainer, Length,
                    @{Name='Owner';Expression={ (Get-Acl $_.PSPath).Owner }},
                    @{Name='ACLRights';Expression={ (Get-Acl $_.PSPath).Access | Select FileSystemRights }},
                    @{Name='ACLUser';Expression={ (Get-Acl $_.PSPath).Access | Select IdentityReference }},
                    @{Name='ACLAccessType';Expression={ (Get-Acl $_.PSPath).Access | Select AccessControlType}} |
                        Export-Clixml $currentFile
    "Current file is: $currentFile"

    $basefile = "baseline_$i.xml"
    if (Test-Path $basefile)
    {
        $base = Import-Clixml $basefile
        $current = Import-Clixml $currentFile
        #now compare
        $results = "Results_" + $i + "_" + $d + ".txt"
        Compare-Object $base $current -Property CreationTimeUTC, LastWriteTimeUtc, Length, FullName, Owner, AclRights, AclUser, AclAccessType |
            Out-File $results

        #determine if the results file shows any changes, if so wave a flag
        if ((Get-Content $results).Length -eq $null)
        {
            "ZERO Changes found"
        }
        else
        {
            "changes found"
        }
    }
    else
    {
        Write-Warning -Message "WARNING: No base file found to compare."
    }
}

1
ответ дан 3 December 2019 в 03:09

В этом случае, я думаю, инструменты Sysinternals AccessChk и AccessEnum могут лучше подойти для того, что вы ищете. Их можно найти в разделе «Файловые и дисковые утилиты» здесь .

1
ответ дан 3 December 2019 в 03:09

Теги

Похожие вопросы