2013-06-26 4 views
1

Помогите мне,cant return right value from powershell script

Я думаю, что в моем скрипте что-то не так ??? Я проверяю этот скрипт под Windows, 2012.

Существует акции:

\ FS-АКЦИИ \ test12

\ FS-АКЦИИ \ TEST15

\ FS-АКЦИИ \ TEST20


function StripShare($sharename) { 

    $res=$sharename -replace ".*\\(.*)" , '$1' 
    return $res 

} 

function getShareProp($sharename) { 
    $s="" 
    Get-WmiObject -class Win32_Share -computername "." -filter "Type=0" | % { 
     if (stripshare($_.name) -eq $sharename) { 
      $s=$_.name 
     } 
    } 

    return $s 
} 

getShareProp(stripshare("s:\TEST12")) 


OUTPUT 
---- 
TEST20 

getShareProp(stripshare("s:\TEST15")) 
--- 
OUTPUT 
TEST20 

Решенный!

p.s. Что-то странное с конвейера в PowerShell 3.

function getShareProp($sharename) { 
     $s="" 
     $a=Get-WmiObject -class Win32_Share -computername "." -filter "Type=0" 
     foreach ($_ in $a) { 
      $t=stripshare($_.name) 
      if ($t -eq $sharename) { 
       $s=$_.name 
      } 
     } 

     return $s 
} 
+3

Вы должны отправить решение в качестве [ответа на свой вопрос] (http://stackoverflow.com/help/self-answer). –

ответ

0

Я не уверен, я понимаю, что вы пытаетесь достичь, но я думаю, просто добавив к фильтру, в основном обеспечивают ту же функциональность.

Get-WmiObject -class Win32_Share -computername "." -filter "Type=0 and name='TEST12'" | select Name 

или если вы ищете имя Share, связанное с физическим путем.

Get-WmiObject -class Win32_Share -computername "." -filter "Type=0 and path='S:\TEST12'" | select Name