使用此代码时:
MERGE
INTO target_table tgt
USING source_table src
ON ( src.object_id = tgt.object_id )
WHEN MATCHED
THEN
UPDATE
SET tgt.object_name = src.object_name,tgt.object_type = src.object_type
WHEN NOT MATCHED
THEN
INSERT ( tgt.object_id
, tgt.object_name
, tgt.object_type )
VALUES ( src.object_id
, src.object_name
, src.object_type );
这样可行,但本地管理员组中两个以上成员的组成员身份返回类似于:
{Administrator, Domain Admins, Prod Server Admin...
我如何花费输出来显示完整会员资格? 此外,在仅选择与组名称x或y匹配的某些组的指针或返回True之后,还存在组x等。
答案 0 :(得分:1)
您可能遇到输出显示格式问题,其中列数据超出了PowerShell中表格格式的可显示宽度。
您可以尝试使用Format-List cmdlet显示列表中的内容,而不是查看具有多个成员的本地管理员组是否正确显示。查看上面的链接,了解它的帮助,但使用它的一个基本示例是:
Get-Service | Format-List
至于您的过滤问题,看起来您正在使用反射来调用收集该数据的方法,因此使用PS cmdlet来帮助那些更难,所以我建议您像那样获取数据现在,但是单独做一个临时变量,然后过滤数据,选择你想要的特定组,使用类似的东西来匹配你的组名,并在if语句中,将相关数据放入另一个变量,然后你用于你的最终输出。
if ($item -match "groupNameX") { #Then... }
答案 1 :(得分:0)
终于解决了。
遇到this回答。
首先,找到一个脚本块,将成员资格输出为PSObject属性:
$SB = {
$members = net localgroup administrators |
where {$_ -AND $_ -notmatch "command completed successfully"} |
select -skip 4
New-Object PSObject -Property @{
Members=$members
}
}
然后修改了本地管理员栏目:
'Local Admins' = $admins.Members -join ','
输出仍然被截断,但是现在而不是export-CSV将列内容显示为 System.Object [] ,它现在显示带有-join中指定的分隔符的完整输出。