Il n'y a qu'une seule façon d'énumérer les actions à distance de la ligne de commande que je connaisse, et c'est avec 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.
Ce n'est pas particulièrement analysable en soi, mais, vous pouvez le lancer dans un tableau pour traiter les données ligne par ligne :
$sharedFolders = (NET.EXE VIEW \enetsqnap01)
Vous avez maintenant un tableau, et à partir de $sharedFolders[7]
vous avez vos parts. Vous pourriez alors faire split
sur quelque chose comme un double espace - peu susceptible d'apparaître dans le nom de l'action elle-même, et cela devrait fonctionner à moins que votre nom d'action soit très long, ne laissant qu'un seul espace entre le nom de l'action et le champ de type :
$sharedFolders[7].split(' ')[0]
Backups
Vous pourriez traiter ces données en utilisant un ForEach et une certaine logique conditionnelle. Ce ne serait pas parfait, mais cela devrait fonctionner pour la plupart des cas d'utilisation.
Pour être bref, il suffit de sortir les noms de fichiers sur la console :
(net view \enetsqnap01) | % { if($_.IndexOf(' Disk ') -gt 0){ $_.Split(' ')[0] } }