2

我是一個相當新的SSIS工具用戶,我喜歡它!但我有一個項目,我不知道如何配置該工具。我有一個MySQL表中約300個域組的列表,我需要通過循環讀取每個域組,併爲每個組查詢ActiveDirectory獲取成員的列表/枚舉。結果我會寫入另一個表,該表的第一列中的組名和第二列中的sAMAccountName。每個域組成員都有一行,而不是每個成員只有一行,而是每個組的帳戶成員只有一行。SSIS包循環展開AD組成員列表

我正在使用KingswaySoft的SSIS Integration Toolkit for Directory Services連接管理器來訪問AD信息。 - 或者如果有另一種機制,聽到別人正在使用的東西也會很棒!

我很好的連接和寫入數據庫表,但循環部分以及如何傳遞參數和建立數據行寫是什麼讓我撓我的頭:\ - 幫助!

回答

0

爲了遍歷不同組中的組成員,您需要參數化AD源組件的[ContainerPath]屬性。您可以在SSIS中使用屬性表達式編輯器來對此屬性進行參數化並指定可在Foreach循環容器中使用的變量。

enter image description here

一旦有了[ContainerPath]屬性參數化,可以把這個數據流任務(包含廣告來源成分)爲Foreach循環容器和提供組pathes到可變你之前指定,這樣當您運行包時,任務將遍歷所有組並返回相應組的成員信息。

感謝您選擇KingswaySoft作爲您的集成解決方案。希望這回答您的問題,如果您有任何其他問題,請隨時告訴我們。

KingswaySoft支持

0

你可以用戶PowerShell將數據階段到一個文件,然後加載與SSIS。 Powershell有一個可用於此目的的活動目錄cmdlet模塊。谷歌「遠程服務器管理工​​具」來搜索下載這個地方。這是鏈接的Windows 10:https://www.microsoft.com/en-us/download/details.aspx?id=45520

下面是一些安裝說明一旦安裝>https://4sysops.com/archives/how-to-install-the-powershell-active-directory-module/

,請按照下列步驟來設置包:

  1. 創建PowerShell腳本文件(例如,c :\ TEMP \ StageAdUsers.ps1)
    • 添加以下內容:

$adserver = "mydomain.com" 
$outputFile = "c:\temp\myad.txt" 
if (test-path $outputFile) 
{ 
    remove-item $outputFile 
} 


$groups = Get-ADGroup -server $adserver -filter * -Properties members 
foreach($group in $groups) 
{ 

    foreach($member in $group.members) 
    { 
     $user = get-aduser $member -ErrorAction SilentlyContinue 
     $newLine = "$($group.SamAccountName)`t$($user.SamAccountName)" 
     add-content $outputFile $newLine 
    } 
} 
  • 添加執行處理任務。
    • 指定的PowerShell爲可執行文件(C:\ WINDOWS \ SYSTEM32 \ WindowsPowerShell \ V1.0 \ powershell.exe)
    • 添加爲參數:-ExecutionPolicy繞道 - 文件C:\ TEMP \ StageAdUsers.ps1
  • 添加一個數據流任務加載平面文件
  • 的內容在上面的腳本中,我們使用Get_AdGroup cmdlet來獲取所有羣體。如果有意義的話,這可以被濾除。有一個名爲Get-AdGroupMembers的cmdlet,但是這有一個大小限制,所以我們使用「-properties members」作爲解決方法。
    最後,我們將組名和用戶名放在一行中,用製表符分隔('t)。添加內容將創建文件,如果它不存在,並且只添加一個新行。如果腳本存在,該腳本的開頭會將其刪除。

    m