C'è solo un modo di enumerare le azioni in remoto dalla linea di comando che conosco, ed è con 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.
Questo non è particolarmente analizzabile da solo, ma, potete gettarlo in un array per elaborare i dati linea per linea:
$sharedFolders = (NET.EXE VIEW \enetsqnap01)
Ora avete un array, e a partire da $sharedFolders[7]
avete le vostre azioni. Potreste poi split
su qualcosa come un doppio spazio - improbabile che appaia nel nome stesso di un'azione, e dovrebbe funzionare a meno che il vostro nome dell'azione sia molto lungo, lasciando solo un singolo spazio tra il nome dell'azione e il campo del tipo:
$sharedFolders[7].split(' ')[0]
Backups
Potreste processare questi usando un ForEach e qualche logica condizionale. Non sarebbe perfetto, ma dovrebbe funzionare per la maggior parte dei casi d'uso.
Per brevità, per mostrare solo i nomi dei file alla console:
(net view \enetsqnap01) | % { if($_.IndexOf(' Disk ') -gt 0){ $_.Split(' ')[0] } }