0

これはちょっと難しい質問ですが、ここに行きます。netapp 上の Filer 共有について報告するために、powershell スクリプトを作成しています。すべての共有のレポートを作成できるところまで来ましたが、ここでやりたいことは、CSV 出力から作成した配列を取得し、共有名の値を抽出することです。ただし、この値の前にサーバー名「\filer\」を追加して、UNC パスを作成したいと考えています。

UNC を調べて、それを使用して Filer 共有に関する情報を生成するつもりです。NTFS アクセス許可、パス情報など。

コードは次のとおりです。

$sharelist = Import-CSV z:\shares.csv
foreach ($item in $sharelist)
{
$sharelist += $item | add-member -name "Filer" -Value "\\<filername>\" -Membertype NoteProperty
}

これは、配列を作成し、UNC 情報と一致するように配列に新しいプロパティを追加しています...

次に、select オブジェクトを実行して出力をクリーンアップします。

$sharelist | select-object mountpoint,filer,sharename,description | export-csv Z:\sharereport.csv -NoTypeInformation

これにより、Excel で開いたときに整理された新しい csv が生成されます。

ただし、オブジェクト「filer」と「sharename」を取得して、それらをまとめてUNCパスを生成したいと考えています。

\\<filername>\<sharepath>

おそらく、次のように foreach ループを使用できると思いました。

foreach ($object in $sharelist.sharename)
{
$object -replace $object,"\\<filer>\" + $object
}

ただし、これは機能しません...これを行うにはいくつかの異なる方法があると思いますので、これに関するガイダンスをいただければ幸いです。単純な問題ですが、私のパワーシェルはひどく貧弱です (改善されていますが)。

また、Netapp Powershell ツールキットを使用して共有に関する情報を取得し、元の共有リスト配列を生成しています。

みんな、ありがとう。

4

1 に答える 1

1

Join-Path を試す...

foreach ($object in $sharelist) {
    Join-Path \\<filer>\ $object
}
于 2013-08-07T18:28:20.690 に答える