如何通过PowerShell将Get-LocalGroupMembership输出处理为指定格式
问题:如何将本地管理员组成员格式化为「adm_user;srv1_user」格式输出
用户使用Get-LocalGroupMembership函数获取本地管理员组成员,$AdminGroups变量内容如下:
PS C:\Windows\system32> $AdminGroups
Name : adm_user
Depth : 1
ParentGroup : Administrators
Type : Local
Computername : hostname1
isGroup : FalseName : srv1_user
Depth : 1
ParentGroup : Administrators
Type : Domain
Computername : hostname1
isGroup : True
当前脚本无法实现目标输出,原脚本如下:
$AdminGroups = Get-LocalGroupMembership -Group 'Administrators' -Depth 1 $Results = foreach($AdminGroup in $AdminGroups){ [PsCustomObject]@{ Username = $AdminGroup.name -join '; ' } }
修改后的脚本
$AdminGroups = Get-LocalGroupMembership -Group 'Administrators' -Depth 1 # 提取所有成员的Name属性并拼接为分号分隔的字符串 $Results = $AdminGroups.Name -join ';' # 输出结果 $Results
原脚本问题说明
原脚本错误地在循环中对单个成员的Name属性使用-join,单个字符串无法通过-join实现拼接,最终得到的是包含多个独立对象的数组,而非合并后的单一字符串。
正确逻辑是直接提取整个集合中所有成员的Name属性形成字符串数组,再通过-join ';'将数组元素拼接成目标格式的字符串。
内容的提问来源于stack exchange,提问作者Arbelac
相关产品推荐
相关产品推荐

