0
$adsi = [ADSI]"WinNT://$env:COMPUTERNAME" 
$adsi.Children | where {$_.SchemaClassName -eq 'user'} | Foreach-Object { 
$groups = $_.Groups() | Foreach-Object {$_.GetType().InvokeMember("Name", 'GetProperty', $null, $_, $null)} 
$_ | Select-Object @{n='UserName';e={$_.Name}},@{n='Groups';e={$groups -join ';'}} 
} 

こんにちは...私は上記のスクリプトをサーバー2008で実行すると、以下のエラーが表示されます。' - '演算子の右側に値式を指定する必要があります

You must provide a value expression on the right-hand side of the '-' operator. 
At C:\Temp\Usrgrp.ps1:4 char:73 
+ $_ | Select-Object @{n='UserName';e={$_.Name}},@{n='Groups';e={$groups -j <<<< oin ';'}} 

あなたは問題を見つけ出すために私を助けることができますか?

+1

エラーメッセージのフォーマットは少し奇妙に見える...あなたはどこからこれをコピーしました?それに奇妙な文字があるように見える... – restless1987

+0

はい、私は試してみるためにこれを持っています... –

+0

また、エラーはpowershell v1.0にのみ表示されているが、他のバージョンではその細かい..あなたが私を助けることができるかどうか私に教えてください。 –

答えて

0

これは、他の人が紹介したようなものです。 Powershel 1は-join(私は本当に知らないが、私はのように見える)をサポートしていない場合、あなたはそれで行くことができる:

$adsi = [ADSI]"WinNT://$env:COMPUTERNAME" 
$adsi.Children | Where-Object {$_.SchemaClassName -eq 'user'} | Foreach-Object { 
    $groups = $_.Groups() | Foreach-Object {$_.GetType().InvokeMember("Name", 'GetProperty', $null, $_, $null)} 
    $_ | Select-Object @{n='UserName';e={$_.Name}},@{n='Groups';e={[string]::(';',$groups)}} 
}