我有一个脚本,它从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
}
答案 0 :(得分:0)
如何改变:
$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
这是一个错字吗?