1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
| Write-Host "Hello, World"
#vider le contenu des 2 fichiers, s'ils existent
#$strFileName="C:\Users\SESA27384\Desktop\AD\SESAOK.csv"
if (test-path "C:\Users\SESA27384\Desktop\AD\SESAOK.csv") {clear-content C:\Users\SESA27384\Desktop\AD\SESAOK.csv}
#$strFileName="C:\Users\SESA27384\Desktop\AD\SESANOK.csv"
if (test-path "C:\Users\SESA27384\Desktop\AD\SESANOK.csv") {clear-content C:\Users\SESA27384\Desktop\AD\SESANOK.csv}
#création des 2 tables pour les logs (à faire avant le foreach)
$sesaNOK=@()
$sesaOK=@()
#import du fichier csv à une seule colonne
[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
$objForm = New-Object System.Windows.Forms.OpenFileDialog
$objForm.InitialDirectory = "c:\"
$objForm.Title = "Selectionner un fichier :"
$objForm.FilterIndex = 3
$Show = $objForm.ShowDialog()
If ($Show -eq "Cancel")
{
"Annulé par l'utilisateur"
}
Else
{
write-host $objForm.FileName
}
$path=$objForm.FileName
#Ouvre une fenêtre.
[reflection.assembly]::LoadWithPartialName("System.Windows.Forms")
$form1 = New-Object Windows.Forms.Form
$form1.text = "Contrôles"
$form1.Size = New-Object System.Drawing.Size(300,200)
#Liste déroulante (ComboBox).
$liste1 = New-Object System.Windows.Forms.Combobox
$liste1.Location = New-Object Drawing.Point 20,20
$liste1.Size = New-Object System.Drawing.Size(250,30)
$liste1.DropDownStyle = "DropDownList"
$liste1.Items.AddRange(("GAD-SU-NextGenPDM_NonPROD","GAD-SU-NextGenPDM_PrePROD","GAD-SU-MediaReviewUATGroup","GAD-SU-MediaReviewUserGroup"))
$liste1.SelectedIndex = 0
#Attache le contrôle à la fenêtre
$form1.controls.add($liste1)
#Affiche le tout.
$form1.ShowDialog()
#Affiche la sélection.
write-host "ComboBox = " $liste1.Text
$ADgroup=$liste1.text #on affecte le choix de la liste déroulante dans la variable $ADgroup
#fin liste déroulante
#Fin.
$csv = Import-Csv -path $path
foreach($line in $csv)
{
$columnvalue = $line.name
$data = @()
$domains = "gad.schneider-electric.com","eur.gad.schneider-electric.com","apa.gad.schneider-electric.com","nam.gad.schneider-electric.com","gmea.gad.schneider-electric.com"
foreach($domain in $domains)
{
$data += Get-ADUser -filter "((EmployeeID -like '$columnvalue') -OR (name -like '$columnvalue')) -AND (enabled -eq '$true') " -Server $domain
}
[bool]$data
if ($data) { Write-Host "Insert $columnvalue"
$Group = Get-ADGroup -filter {name -eq $ADGroup}
Write-Host "Group=$Group /ADgroup=$ADgroup"
Add-ADGroupMember -Identity $Group -Member $data -Server "gad.schneider-electric.com"
#Add-ADGroupMember "CN=GAD-SU-NextGenPDM_NonPROD,OU=Access Management,OU=Groups,DC=gad,DC=schneider-electric,DC=com" -server gad.schneider-electric.com -Member $data
$sesaOK +=$line #si $data existe, on a inséré le SESA et ajoût de la ligne (donc le SESA) ds la variable $sesaOK
# ces 4 lignes, pour mémoire :
#foreach ($User in $data) #on explore la variable $data{
# Write-Host $user.SamAccountName #pour chq ligne, on sélectionne la propriété SamAccountName (qui contient le SESA)
# $New=$User|Select-Object SamAccountName #construire un objet avec une seule propriété
# $New | Export-csv -path C:\Users\SESA27384\Desktop\AD\SESAOK.csv -Append #export de cet objet
#}
}
if (!$data) { Write-Host "Entry Not Found $columnvalue"
$sesaNOK +=$line #SESA pas inséré donc ajoût de la ligne (donc le SESA) ds la variable $sesaNOK
}
}
#export des 2 variables ds les 2 fichiers de log
$sesaNOK | Export-csv -path C:\Users\SESA27384\Desktop\AD\SESANOK.csv
$sesaOK | Export-csv -path C:\Users\SESA27384\Desktop\AD\SESAOK.csv |
Partager