2017-05-31 20 views
1

Where-Objectを使用して、Get-PSDriveの出力をネットワーク共有のみに制限したいとします。その後、私は\\192.168.71.30\group100ネットワーク共有を取得したいPowershell Where-Object Match

 
Name   Used (GB)  Free (GB) Provider  Root          CurrentLocation 
----   ---------  --------- --------  ----          --------------- 
A          FileSystem A:\              
Alias         Alias                 
C     16.19   43.47 FileSystem C:\         Users\HansB\Documents 
Cert         Certificate \               
D          FileSystem D:\              
Env         Environment                
Function        Function                         
HKCU         Registry  HKEY_CURRENT_USER           
HKLM         Registry  HKEY_LOCAL_MACHINE           
V     451.39  159.76 FileSystem \\192.168.71.31\fs_log_target        
Variable        Variable                 
W     197.72    FileSystem \\192.168.71.32\perf200         
WSMan         WSMan                 
X     197.72    FileSystem \\192.168.71.32\perf100         
Y     271.52   34.33 FileSystem \\192.168.71.30\group200         
Z     271.52   34.33 FileSystem \\192.168.71.30\group100         

Get-PSDriveは私に次のことを示して

Get-PSDrive | Where-Object { $_.Root -match "\\\\192.168.71.30\\group100" } 

しかし、私は何を取得、なぜ-matchは動作しませんか?

答えて

6

代わりにRootプロパティの使用DisplayRoot

Get-PSDrive | Where-Object { $_.DisplayRoot -match "\\\\192.168.71.30\\group100" } 

Get-PSDrive | Where-Object { $_.DisplayRoot -match "\\\\192.168.71.30\\group100" } | select * 

ルートがマップされたドライブ文字、そしてあなたをDisplayRootますを実行しようUNCパス

EDIT:サイドノートとして。正規表現をエスケープするには、[regex] :: Escape()メソッドを使用します。

PS > [regex]::Escape("\\192.168.71.30\group100") 
\\\\192\.168\.71\.30\\group100 
+0

ベストアンサー - ありがとうございました! –

0

ではなく-eqを使用してみてください:

Get-PSDrive | Where-Object {$_.Root -eq "\\192.168.71.30\group100"} 
+0

TESTED:-eqも結果はありません。 –

0

yoyタイプGet-PSDrive | select rootの場合、ネットワークドライブの場合は何も印刷されません。だから、ネットワーク共有の根源には奇妙なことがあります。

Get-PSDrive | select root | %{write-host $_.Root.GetType()}は、それがシステムドライブ文字列であることを示しているので、ネットワークドライブでは空でないように見えます。

+0

または代わりにAdam Mnichの答えを見てください:) .... Get-PSDrive | displayrootが実際に必要な文字列を表示するかどうかを選択します –