Скрипт для проверки открытых шар

Всем привет!
Есть задача, проверять доступ к шарам. Накидал скрипт:

$File = "C:\temp\repShares\SharesAccess.csv"

$Data = import-csv C:\temp\repShares\ListShares.csv -Delimiter ";" -Encoding UTF8

#удалить старый отчет

if(Test-Path $File) {Remove-Item $File}

foreach($item in $Data){

    $PC_Name = $item.PC_Name
    $folder = $item.PC_Shares
    $obj = New-Object PSObject
  #  New-PSDrive -Name S -PSProvider FileSystem -Root \\$PC_Name\$folder -Credential $cred
   if (Get-ChildItem \\$PC_Name\$folder){
            Add-Member -InputObject $obj -MemberType NoteProperty -Name "Path" -Value "\\$PC_Name\$folder"

            Add-Member -InputObject $obj -MemberType NoteProperty -Name "Access" -Value "Allow"

            $obj | export-csv $File -Delimiter ";" -Encoding UTF8 -NoTypeInformation -Append

        }

   else {

            Add-Member -InputObject $obj -MemberType NoteProperty -Name "Path" -Value "\\$PC_Name\$folder"

            Add-Member -InputObject $obj -MemberType NoteProperty -Name "Access" -Value "Deny"

            $obj | export-csv $File -Delimiter ";" -Encoding UTF8 -NoTypeInformation -Append

        }

}

Хочу переделать скрипт, не знаю как правильно. Как проверять доступ во вложенные папки? обычно шару делают доступной для всех, а внутри к папкам дают на определённую группу\пользователя.

get-acl на сколько помню, как пример:

Да, get-acl можно использовать, но не ко всем серверам можно по сети подключаться PS-ом. Спасибо, первая ссылка похоже подходит для моего случая. Двойной цикл - то что нужно.

1 Like