私が知っているコマンドラインからリモートで共有を列挙する方法は1つだけで、それは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]
から始まる株式が得られます。これは株名自体には出現しないでしょうし、株名が非常に長い場合を除いて、株名とタイプフィールドの間に1つのスペースを残すだけでうまくいくはずです:
$sharedFolders[7].split(' ')[0]
Backups
これらをForEachと条件付きロジックで処理することができます。これは完全ではありませんが、ほとんどのユースケースでは機能するはずです。
簡潔に言うと、ファイル名をコンソールに出力するだけです。
(net view \enetsqnap01) | % { if($_.IndexOf(' Disk ') -gt 0){ $_.Split(' ')[0] } }