Вот один вкладыш PowerShell, который использует сетевое представление для перечисления всех удаленных общих ресурсов, которые может видеть пользователь - это не значит, что у них есть доступ.
net view | Where {$_ -like "\\*"} | %{$comp = $_.Split(" ")[0]; net view $comp | Where {$_ -like "*Disk*"} | %{$share = $_.Split(" ")[0]; $fullpath = Join-Path $comp $share; $fullpath}}
Если вы хотите увидеть, имеют ли они (по крайней мере) доступ на чтение, вы можете запустить:
Net view | Where {$_ -like "\\*"} | %{$comp = $_.Split(" ")[0]; net view $comp | Where {$_ -like "*Disk*"} | %{$share = $_.Split(" ")[0]; $fullpath = Join-Path $comp $share; [PSCustomObject]@{Path=$fullpath;HasAccess=$(Test-Path $fullpath -ErrorAction SilentlyContinue)}}}
Если вам нужен сохраненный вывод, вы всегда можете передать его в Export-CSV, добавив следующее после последней скобки:
| Export-CSV "\\path\to\file.csv" -NoTypeInformation
Все это не идеально, когда net view выдает ошибку, но я написал ее, основываясь на комментариях здесь, и она работает довольно хорошо и полезна для того, что мне нужно, поэтому я решил поделиться. :)