【问题标题】:Getting strange result using get-adgroupmember for groups that have only one member对只有一个成员的组使用 get-adgroupmember 得到奇怪的结果
【发布时间】:2015-02-15 08:50:24
【问题描述】:

我有一个脚本,它从 SQL Server 中的一个表中读取组列表,并用组成员填充另一个表。这用作 SQL 安全审计的一部分。该脚本运行良好,但有一个例外。如果该组只有一个成员,则数据不正确。
SamAccountName 应该是 X012345,名字应该是 Jane Doe,但我得到的是“D”和“”。

下面是部分代码:

foreach ($groupID in $dbdata)
{
$Scan_Date = $dbdata.Scan_Date[$dn]
$group = $dbdata.groupID[$dn]
$Group_Name = $dbdata.Group_Name[$dn]
[array]$groupusers = get-adgroupmember $Group_Name -Recursive | select SamAccountName, name
#$groupusers
$gn = 0
[string]$col1 = ""
[string]$col2 = ""
    foreach ($name in $groupusers)
    {
    $groupusers[$gn]
    $col1 = $groupusers.SamAccountName[$gn]
    $col2 = $groupusers.name[$gn]
    $col2 = $col2.replace("'","`'`'")
 write-host $Group_Name, $col1, $col2
$query = @"
INSERT INTO $ssi_table
           ([GroupID]
           ,[Scan_Date]
           ,[Group_Name]
           ,[User_ID]
           ,[User_Name])
     VALUES ('$Group_Name', '$Scan_Date', '$Group_Name', '$col2', '$col3')
"@
Run-SqlQuery -Query $query -Database $ssi_database -Server $ssi_instance

    $gn = $gn + 1
    }

【问题讨论】:

    标签: powershell active-directory


    【解决方案1】:

    如何改变:

    $col1 = $groupusers.SamAccountName[$gn]
    $col2 = $groupusers.name[$gn]
    

    到:

    $col1 = $groupusers[$gn].SamAccountName
    $col2 = $groupusers[$gn].name
    

    对于单个值,您将从 SamAccountName/name 中获取第“$gn”字符。

    还有一件事,$col3 是从哪里来的?
    您将值分配给 $col1 和 $col2,但将 $col2 和 $col3 插入 DB。
    这是笔误吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      • 2020-10-08
      • 1970-01-01
      • 2013-08-21
      相关资源
      最近更新 更多