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 に答える