必须在"-"运算符的右侧提供值表达式


$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:TempUsrgrp.ps1:4 char:73
+ $_ | Select-Object @{n='UserName';e={$_.Name}},@{n='Groups';e={$groups -j <<<< oin ';'}}

你能帮我找出问题所在吗?

这看起来有点像,另一个人发帖。如果 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)}}
}

相关内容

  • 没有找到相关文章

最新更新