Hanya ada satu cara untuk menghitung bagian dari jarak jauh dari baris perintah yang saya tahu, dan itu dengan 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.
Ini tidak bisa diurai sendiri, tetapi, Anda bisa membuangnya ke dalam array untuk memproses data baris demi baris:
$sharedFolders = (NET.EXE VIEW \\enetsqnap01)
Anda sekarang memiliki array, dan mulai $sharedFolders[7]
Anda memiliki saham Anda. Anda kemudian bisa split
pada sesuatu seperti spasi ganda - tidak mungkin muncul dalam nama share itu sendiri, dan harus berfungsi kecuali nama share Anda sangat panjang, hanya menyisakan satu spasi antara nama share dan bidang tipe:
$sharedFolders[7].split(' ')[0]
Backups
Anda bisa memproses ini dengan menggunakan ForEach dan beberapa logika kondisional. Itu tidak akan sempurna, tetapi harus bekerja untuk sebagian besar kasus penggunaan.
Untuk singkatnya, untuk hanya menampilkan nama file ke konsol:
(net view \\enetsqnap01) | % { if($_.IndexOf(' Disk ') -gt 0){ $_.Split(' ')[0] } }