내가 아는 명령 줄에서 원격으로 공유를 열거하는 한 가지 방법 만 있습니다 net view
.
C:\Users\mark.henderson>net view \\enetsqnap01
Shared resources at \\enetsqnap01
Share name Type Used as Comment
-------------------------------------------------------------------------------
Backups Disk
CallRecordings Disk
Download Disk System default share
home Disk Home
homes Disk System default share
Installs Disk
Justin Disk Copy of files from Justin laptop
michael Disk
Multimedia Disk System default share
Network Recycle Bin 1 Disk [RAID5 Disk Volume: Drive 1 2 3 4]
Public Disk System default share
Qsync Disk Qsync
Recordings Disk System default share
Sales Disk Sales Documents
SalesMechanix Disk
Server2012 Disk Windows Server 2012 Install Media
Usb Disk System default share
VMWareTemplates Disk
Web Disk System default share
The command completed successfully.
이것은 특별히 독자적으로 구문 분석 할 수는 없지만 배열로 던져 데이터를 한 줄씩 처리 할 수 있습니다.
$sharedFolders = (NET.EXE VIEW \\enetsqnap01)
이제 배열이 생겼으며 처음부터 $sharedFolders[7]
공유가 있습니다. 그런 다음 split
공유 이름 자체에 나타나지 않을 가능성이 큰 이중 공백과 같은 방식으로 공유 이름이 너무 길지 않으면 공유 이름과 유형 필드 사이에 공백이 하나만 남게됩니다.
$sharedFolders[7].split(' ')[0]
Backups
ForEach와 일부 조건부 논리를 사용하여이를 처리 할 수 있습니다. 완벽하지는 않지만 대부분의 사용 사례에서 작동합니다.
간결하게하기 위해 파일 이름을 콘솔에 출력하려면 :
(net view \\enetsqnap01) | % { if($_.IndexOf(' Disk ') -gt 0){ $_.Split(' ')[0] } }