2017-08-30 4 views
0

J'essaie de tester si un chemin UNC existe, mais toutes les tentatives ont échoué jusqu'à présent. Cet exemple de dossier existe, et renvoie true:PowerShell Test-Path UNC avec un caractère générique

\\Server\Path1 

Je voudrais confirmer tous les dossiers existent avec des noms similaires, tels que:

\\Server\Path2 
\\Server\Path3 etc. 

Je J'ai essayé d'utiliser un caractère générique dans ces exemples:

test-path "\\Server\Path*" 
resolve-path "\\Server\Path*" 
[System.IO.Directory]::Exists('\\Server\Path*'); 
Test-Path $('filesystem::\\Server\Path*') 

... Avec de nombreuses permutations de la combinaison \ "'*. Cependant, rien de ce que j'ai essayé ne retourne un 'vrai' pour ce type de chemin lorsque j'utilise un caractère générique, même s'il semble fonctionner correctement pour: Test-Path c:\windows\system3* par exemple.

+0

Votre chemin doit être '\\ Server \ C $ \ Path *' –

+1

[connexes ] (https://stackoverflow.com/q/35068220/1630171). –

Répondre

1

Je ne pense pas que Windows prend en charge le choix générique sur les noms de partage.

Mais si vous avez un accès suffisant (à distance) au serveur de fichiers que vous pouvez obtenir une liste d'actions:

Get-WmiObject -class 'Win32_Share' -ComputerName 'Server' 
+0

Cela a répondu à la question, merci beaucoup. Pour être complet, c'est la ligne que j'ai utilisée pour discerner l'existence de 'Pathx': 'Get-WmiObject -class 'Win32_Share' -ComputerName 'Serveur' | où Name -Like "* Path *" ' – ScriptMonkey

1

Cet extrait fonctionnera pour les chemins UNC cartographiés:

Get-PSDrive| where{$_.DisplayRoot -like "\\server\test*" } | foreach{test-path -path $_.DisplayRoot} 

Si vous avez accès wmi, puis:

Get-WmiObject -Class Win32_Share -ComputerName server | where{$_.name -like "test*"} | foreach{Test-Path "\\server\$($_.name)"}