我的PowerShell技能薄弱/生锈。寻求帮助。
总体而言,我想执行以下操作:
使用LDAP从Teradata中提取Active Directory组名称的静态列表。
SELECT GroupName FROM DB1.AdGroupList
将这些条目存储在内存中的表中以供参考。
Get-ADGroupMember
获取每个组的成员。将该组名和AD数据放入第二个Teradata表。
"Insert into DB1.AdGroupMembers
(GroupName, Name, GivenName, SurName, SamAccountName)"
第一个问题是从LDAP获取Teradata数据并将其存储。 PowerShell对于Teradata几乎没有帮助。
答案 0 :(得分:0)
队友提出了一个简单但实用的解决方案。 AD列表在脚本中进行了硬编码,并且输出到文本文件。 SSIS将提取文本文件。这不是完整的解决方案,但是使我们能够停止运行MS Access进程。
Import-Module ActiveDirectory
$ObjectResults = @()
$Groups = "HardCodedGroup1","HardCodedGroup1"
Foreach ($Group in $Groups)
{
$Members = (Get-ADGroupMember $Group)
# $Uname = ( Get-ADUser -Filter $Group | Select-Object samaccountname )
ForEach ($Member in $Members)
{
$Out = New-Object PSObject
$Out | Add-Member -MemberType noteproperty -Name Name -Value $Member.Name
$Out | Add-Member -MemberType noteproperty -Name Group -Value $Group
$Out | Add-Member -MemberType noteproperty -Name USERNAME -Value
$Member.samaccountname
$Out
$ObjectResults += $Out
}
}
$ObjectResults | export-csv C:\Temp\AD\output.csv -NoTypeInformation