You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

获取本地LA组活跃成员的PowerShell脚本无数据问题求助

PowerShell脚本问题:无法获取本地组成员数据

我是PowerShell新手,现有一份记事本格式的LA组列表(示例:LA-AAAAAA、LA-BBBBB、L-CCCCCC),需要获取这些组中的所有活跃用户。LA-AAAAA这类组以服务器名AAAAA命名,本质是获取拥有服务器访问权限的用户(加入LA组即拥有权限)。我尝试了下方的PowerShell脚本,但未返回成员数据:导出文件仅显示LA组名称,无用户列表,恳请技术指导。

$logtext = $null

$datenow = get-date -Format "dd-MM-yyyy"

New-PSDrive -Name "R" -PSProvider "FileSystem" -Root "**Path**"

    $LogfileName = "LA-group-members_"+ $datenow +"_4.txt"
    $Logfile = "R:\Logs\$LogfileName"
    $ServerList = Import-Csv **PATH**

    get-date *>> $Logfile

    foreach ($Server in $ServerList){
        $LaGroup = "LA-" + $Server.ServerName
        $logtext += "`n"
        $logtext += "$LaGroup"
        $logtext += "`n"
        $logtext += "---------------------------------------`n"
    
        $Members = Get-LocalGroupMember  #$LaGroup

        foreach ($Member in $Members){

            $logtext +=  $Member.name
            $logtext += "`n"
        }

        $logtext +=  "=======================================`n"

    }

#Write variable data to logfile
$logtext *>> $Logfile

Remove-PSDrive -Name "R"

问题排查与修复方案

核心问题

脚本中Get-LocalGroupMember的目标组参数被注释掉(#$LaGroup),导致命令未指定要查询的组,自然无法返回对应成员数据。

修复后的完整脚本

$logtext = $null
$datenow = Get-Date -Format "dd-MM-yyyy"

# 替换**Path**为实际网络共享路径
New-PSDrive -Name "R" -PSProvider "FileSystem" -Root "**Path**"

$LogfileName = "LA-group-members_"+ $datenow +"_4.txt"
$Logfile = "R:\Logs\$LogfileName"
# 替换**PATH**为实际CSV文件路径,确保CSV首列是ServerName
$ServerList = Import-Csv "**PATH**"

Get-Date *>> $Logfile

foreach ($Server in $ServerList){
    $LaGroup = "LA-" + $Server.ServerName
    $logtext += "`n"
    $logtext += "$LaGroup"
    $logtext += "`n"
    $logtext += "---------------------------------------`n"

    try {
        # 传入目标组参数,取消注释
        $Members = Get-LocalGroupMember -Group $LaGroup
        foreach ($Member in $Members){
            # 追加成员类型(用户/组)便于区分
            $logtext +=  "$($Member.Name) [$($Member.ObjectClass)]"
            $logtext += "`n"
        }
    }
    catch {
        # 捕获组不存在或权限不足的错误,避免脚本中断
        $logtext += "错误:无法访问组 $LaGroup - $($_.Exception.Message)`n"
    }

    $logtext +=  "=======================================`n"
}

# 写入日志文件
$logtext *>> $Logfile

Remove-PSDrive -Name "R"

额外注意事项

  1. CSV格式校验:确保你的记事本(CSV文件)首行是ServerName,后续每行是对应服务器名(如AAAAAA、BBBBBB)
  2. 权限要求:运行脚本的账号必须拥有查询目标机器本地组的权限
  3. 远程服务器适配:如果LA组在远程服务器上,需改用远程查询,示例:
    # 替换原$Members行,远程查询指定服务器的组
    $Members = Invoke-Command -ComputerName $Server.ServerName -ScriptBlock { 
        Get-LocalGroupMember -Group $using:LaGroup 
    }
    

内容的提问来源于stack exchange,提问作者Noorullah Shakerullah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 18:20:39