1

请帮助我,

我在想,我的剧本有什么问题???我正在 Windows 2012 下测试这个脚本。

有股:

\FS-SHARES\TEST12

\FS-SHARES\TEST15

\FS-SHARES\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

解决了!

ps 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
}
4

1 回答 1

0

我不确定我是否理解您要完成的工作,但我认为仅添加到过滤器将主要提供相同的功能。

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

或者,如果您正在寻找与物理路径关联的共享名称。

Get-WmiObject -class Win32_Share -computername "." -filter "Type=0 and path='S:\TEST12'" | select Name
于 2013-09-06T18:48:26.237 回答