J'essaie d'obtenir une liste des dossiers partagés sur un partage de fichiers. Pour le moment, j'ai deux dossiers de test:
\\MYPC\Test1
\\MYPC\Test2
Voici le code que j'ai en ce moment:
$FileServer = Read-Host "Enter file server to search"
$FolderList = Get-ChildItem -Path $FileServer
Write-Host $FolderList
Mais cela revient à "ne peut pas trouver le chemin". Je peux voir des exemples de la façon de le faire en \\Server\Share
tant que répertoire, mais est-il possible de simplement rechercher le \\Server
?
net view
ne rendrait pas les actions cachées.Il n'y a qu'une seule façon d'énumérer les partages à distance depuis la ligne de commande que je connais, et c'est avec
net view
:Ce n'est pas particulièrement analysable en soi, mais vous pouvez le jeter dans un tableau pour traiter les données ligne par ligne:
Vous avez maintenant un tableau, et à partir de là,
$sharedFolders[7]
vous avez vos actions. Vous pourriez alorssplit
sur quelque chose comme un double espace - peu susceptible d'apparaître dans un nom de partage lui-même, et devrait fonctionner à moins que votre nom de partage soit très long, ne laissant qu'un seul espace entre le nom de partage et le champ type:Vous pouvez les traiter en utilisant un ForEach et une logique conditionnelle. Ce ne serait pas parfait, mais cela devrait fonctionner pour la plupart des cas d'utilisation.
Par souci de concision, pour simplement afficher les noms de fichiers sur la console:
la source
Si vous voulez trouver les partages de la machine locale, vous pouvez simplement faire
Get-SmbShare
:la source
Développant la réponse de Mark Henderson :
la source
Merci à Mark Henderson pour sa solution . J'ai ajouté une fonction wrapper pour aider à rendre cette fonction plus conviviale pour PowerShell. J'ai utilisé une approche différente pour décomposer les données (plus complexe, pas meilleure); qui peut facilement être changé en fonction des préférences.
la source
Sous Windows 8 ou supérieur et Windows Server 2012 ou supérieur, vous pouvez utiliser Get-SmbShare à partir du module SmbShare.
la source
Outil du Kit de ressources Windows: rmtshare .
Exécutez sous id avec des autorisations d'administrateur sur le serveur distant ou établissez une connexion ipc $ au serveur distant.
la source
Voici une doublure PowerShell qui utilise la vue nette pour énumérer tous les partages distants qu'un utilisateur peut voir - ne signifie pas qu'ils ont accès.
Si vous voulez voir s'ils ont (au moins) un accès en lecture, vous pouvez exécuter:
Si vous avez besoin de la sortie enregistrée, vous pouvez toujours la diriger vers Export-CSV en lançant ce qui suit après le dernier crochet:
Le tout n'est pas parfait lorsque la vue nette génère une erreur, mais je l'ai écrit sur la base des commentaires ici et cela fonctionne assez bien et est utile pour ce dont j'ai besoin, alors j'ai pensé partager. :)
la source