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,但在其他版本的罰款.. .pls讓我知道你是否可以幫助我...... –

回答

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)}} 
} 
相關問題