Я пытаюсь получить список папок, к которым открыт общий доступ к общей папке. На данный момент у меня есть две тестовые папки:
\\MYPC\Test1
\\MYPC\Test2
Вот код, который у меня есть на данный момент:
$FileServer = Read-Host "Enter file server to search"
$FolderList = Get-ChildItem -Path $FileServer
Write-Host $FolderList
Но это приходит с "не может найти путь". Я могу видеть примеры того, как сделать это в \\Server\Share
качестве каталога, но можно ли просто искать \\Server
?
net view
не вернул бы скрытые акции.Есть только один способ удаленного перечисления общих ресурсов из командной строки, о котором я знаю, а именно
net view
:Сам по себе это не особо разбирается, но вы можете выбросить его в массив для построчной обработки данных:
Теперь у вас есть массив, и у
$sharedFolders[7]
вас есть свои акции. Затем вы можете использоватьsplit
что-то вроде двойного пробела - вряд ли он появится в самом имени общего ресурса и должен работать, если имя общего ресурса не очень длинное, оставляя только один пробел между именем общего ресурса и полем типа:Вы можете обработать их, используя ForEach и некоторую условную логику. Это не было бы идеально, но это должно работать для большинства случаев использования.
Для краткости просто выведем имена файлов на консоль:
источник
Если вы хотите найти акции локального компьютера, вы можете просто сделать
Get-SmbShare
:источник
Расширяя ответ Марка Хендерсона :
источник
Спасибо Марку Хендерсону за его решение . Я добавил функцию-обертку, чтобы сделать эту функцию более дружественной к PowerShell. Я использовал другой подход к разбивке данных (более сложный, а не лучший); это может быть легко переключено на основе предпочтений.
источник
В Windows 8 или выше и Windows Server 2012 или выше вы можете использовать Get-SmbShare из модуля SmbShare.
источник
Средство Windows Resource Kit: rmtshare .
Либо запустите под идентификатором с правами администратора на удаленном сервере, либо установите соединение ipc $ с удаленным сервером.
источник
Вот один вкладыш PowerShell, который использует сетевое представление для перечисления всех удаленных общих ресурсов, которые может видеть пользователь - это не значит, что у них есть доступ.
Если вы хотите увидеть, имеют ли они (по крайней мере) доступ на чтение, вы можете запустить:
Если вам нужен сохраненный вывод, вы всегда можете передать его в Export-CSV, добавив следующее после последней скобки:
Все это не идеально, когда net view выдает ошибку, но я написал ее, основываясь на комментариях здесь, и она работает довольно хорошо и полезна для того, что мне нужно, поэтому я решил поделиться. :)
источник