2

Je suis un utilisateur relativement nouveau de l'outil SSIS et j'adore! Mais j'ai un projet que je ne sais pas comment configurer l'outil. J'ai une liste d'environ 300 groupes de domaine dans une table MySQL que j'ai besoin de lire chacun par une boucle et pour chaque groupe de requête ActiveDirectory pour obtenir la liste/énumération des membres. Les résultats que j'écrirais à une autre table qui aurait le nom de groupe dans la première colonne et dans la deuxième colonne le sAMAccountName. Une ligne pour chaque membre du groupe de domaine, pas une seule ligne avec tous les membres mais une ligne par membre de compte du groupe. J'utilise la boîte à outils d'intégration SSIS de KingswaySoft pour le gestionnaire de connexions des services d'annuaire pour accéder aux informations AD. - ou s'il existe un autre mécanisme, il serait également intéressant d'entendre ce que les autres utilisent! Je suis bon avec la connexion et l'écriture sur les tables db, mais la partie en boucle et comment passer les paramètres et construire les lignes de données à écrire est ce qui me gratte la tête: \ -help!Package SSIS pour la boucle pour développer la liste des membres du groupe AD

Répondre

0

Pour parcourir en boucle les membres du groupe dans différents groupes, vous devez paramétrer la propriété [ContainerPath] pour le composant Source AD. Vous pouvez utiliser l'éditeur d'expressions de propriété dans SSIS pour paramétrer cette propriété et spécifier une variable pouvant être utilisée dans le conteneur de boucles Foreach.

enter image description here

Une fois que vous avez le [ContainerPath] propriété paramétrés, vous pouvez mettre cette tâche de flux de données (contient le composant source AD) dans un conteneur de boucles Foreach et fournir un groupe Pathes à la variable spécifié précédemment afin que lorsque vous exécutez le package, la tâche parcourt tous les groupes et renvoie des informations sur les membres pour le groupe correspondant.

Nous vous remercions d'avoir choisi KingswaySoft comme solution d'intégration. J'espère que cela répond à votre question, n'hésitez pas à nous faire savoir si vous avez d'autres questions.

KingswaySoft Soutien

0

Vous pourriez powershell utilisateur de mettre en scène les données dans un fichier, puis charger que, avec SSIS. Powershell a un module de cmdlets de répertoire actif qui peut être utilisé à cette fin. Google "Remote Server Administration Tools" pour rechercher où télécharger ceci. Voici le lien pour Windows 10: https://www.microsoft.com/en-us/download/details.aspx?id=45520

Voici quelques instructions d'installation>https://4sysops.com/archives/how-to-install-the-powershell-active-directory-module/

Une fois installé, procédez comme suit pour mettre en place le paquet:

  1. Créez un fichier script Powershell (c.-à-c : \ temp \ StageAdUsers.ps1)
    • ajouter le contenu suivant:

:

$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 
    } 
} 
    Ajouter
  1. une tâche d'exécution de processus.
    • Spécifiez powershell que l'exécutable (C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe)
    • Ajouter cet argument: -ExecutionPolicy Bypass -File c: \ temp \ StageAdUsers.ps1
  2. Ajouter une tâche de flux de données pour charger le contenu du fichier plat

Dans le script ci-dessus, nous utilisons l'applet de commande Get_AdGroup pour aller chercher tous les groupes. Cela peut être filtré si cela a du sens. Il existe une applet de commande appelée Get-AdGroupMembers, mais celle-ci a une limite de taille. Nous utilisons donc les "membres -propriétés" comme solution de contournement.
Enfin, nous mettons en scène le nom du groupe et le nom d'utilisateur dans une ligne, séparés par un onglet (`t). add-content créera le fichier s'il n'existe pas et ajoute simplement une nouvelle ligne. Le début du script supprime le fichier s'il existe.

m