Bonjour à tous,
Je suis amené à créer fréquemment des nouveaux utilisateurs Office 365 via powershell.
Après la création, j'ajoute via Powershell des attributs particulier dans les propriétés de l'utilisateur AD.
Actuellement je procède en utilisant différents fichiers .PS1 pour réaliser cette tache.
L'idée serai de réunir ces différents morceaux de script dans un même fichier avec un menu proposant différents choix.
J'ai fouillé à gauche et à droite pour essayer de trouver quelque chose qui pourrait faire le job.
J'ai trouvé des petites idées que j'ai adapté à mes besoins.
Je n'ai pas testé ce script en prod, j'aurais voulu votre avis avant.
Code :
- # Connexion O365 + Exchange Online
- import-module msonline
- $ident=get-credential
- Connect-MsolService -Credential $ident
- $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $ident -Authentication Basic -AllowRedirection
- Import-PSSession $Session
- #Menu
- $stepChoice = read host 'Le prénom ou le nom a des accents? 1 = oui / 2 = non'
- switch($stepChoice)
- {
- 1{Step1} #Accent
- 2{Step2} #Pas D'accents
- }
- function Step1
- {
- # Pour la prise en charge des accents
- Get-Content "\\chemin\entree.csv" -encoding string | Set-Content "\\chemin\sortie.csv" -encoding UNICODE
- } # Fin de Step1
- function Step2
- {
- $stepChoice2 = read host 'Licence Plan 1 ou E1 / 3 = Plan1 4 = E1'
- switch($stepChoice2)
- {
- 3{Step3} #Plan 1
- 4{Step4} #E1
- }
- function Step3
- {
- # Création de l'utilisateur avec une licence P1
- #Mot de passe: XXXXXXX
- Import-CSV -path \\chemin\sortie.csv -Delimiter ";" | foreach {$DisplayName = ("" + $_.DisplayName + "" ); $mail = ($_.mail + "@mondomaine.fr" ); $prenom = ($_.prenom); $nom = ($_.nom); New-MsolUser -DisplayName $DisplayName -UserPrincipalName $mail -FirstName $prenom -LastName $nom -Password "XXXXX" -LicenseAssignment "LycenceType" -PreferredLanguage "fr-FR" -UsageLocation FR}
- Start-Sleep -s 180
- # Ajout des alias + X500, configuration de la langue et de la timezone et ajout droit FullAccess a Toto
- Import-CSV -path \\\chemin\sortie.csv -Delimiter ";" | foreach {$mail = ($_.mail + "@mondomaine.fr" ); $mail2 = ($_.mail + "@mondomaine.onmicrosoft.com" ); $legacy = ("/o=DomaineLocal/ou=Premier groupe d'administration/cn=Recipients/cn=" + $_.mail); Set-Mailbox -Identity $mail -EmailAddresses SMTP:$mail,$mail2,X500:$legacy; Set-MailboxRegionalConfiguration -identity $mail -Language fr-FR -TimeZone 'Romance Standard Time' -LocalizeDefaultFolderName; Add-MailboxPermission -Identity $mail -User toto@mondomaine.onmicrosoft.com -AccessRight FullAccess -InheritanceType All}
- } # Fin de Step3
- function Step4
- {
- # Création de l'utilisateur
- # Forcer le mot de passe XXXXXX
- Import-CSV -path \\chemin\sortie.csv -Delimiter ";" | foreach {$DisplayName = ("" + $_.DisplayName + "" ); $mail = ($_.mail + "@mondomaine.fr" ); $prenom = ($_.prenom); $nom = ($_.nom); New-MsolUser -DisplayName $DisplayName -UserPrincipalName $mail -FirstName $prenom -LastName $nom -Password "XXXXXX" -LicenseAssignment "LycenceType" -PreferredLanguage "fr-FR" -UsageLocation FR}
- Start-Sleep -s 180
- # Ajout des alias + X500, configuration de la langue et de la timezone et ajout droit FullAccess a toto
- Import-CSV -path \\chemin\sortie.csv -Delimiter ";" | foreach {$mail = ($_.mail + "@mondomaine.fr" ); $mail2 = ($_.mail + "@mondomaine.onmicrosoft.com" ); $legacy = ("/o=DomaineLocal/ou=Premier groupe d'administration/cn=Recipients/cn=" + $_.mail); Set-Mailbox -Identity $mail -EmailAddresses SMTP:$mail,$mail2,X500:$legacy; Set-MailboxRegionalConfiguration -identity $mail -Language fr-FR -TimeZone 'Romance Standard Time' -LocalizeDefaultFolderName; Add-MailboxPermission -Identity $mail -User toto@mondomaine.onmicrosoft.com -AccessRight FullAccess -InheritanceType All}
- } # Fin de Step4
- } # Fin de Step2
- $stepChoice = read host 'Utilisateur dans active directory 5 = oui / 6 = non'
- switch($stepChoice3)
- {
- 5{Step5} # Oui
- 6{Step6} # Non
- }
- function Step5
- {
- #Name;UserPrincipalName;alias1;alias2;alias3;alias4
- Import-Csv -path "\\chemin\tag_utilisateur.csv" -Delimiter ";" |
- foreach {
- $mail = ($_.UserPrincipalName); $alias1 = ($_.alias1); $alias2 = ($_.alias2); $alias3 = ($_.alias3); $alias4 = ($_.alias4); $name = ($_.Name);
- Set-ADUser -identity $name -EmailAddress $mail -Add @{proxyAddresses=$alias1};
- If ($_.alias2) {
- Set-ADUser -identity $name -EmailAddress $mail -Add @{proxyAddresses=$alias2}
- };
- If ($_.alias3) {
- Set-ADUser -identity $name -EmailAddress $mail -Add @{proxyAddresses=$alias3}
- };
- If ($_.alias4) {
- Set-ADUser -identity $name -EmailAddress $mail -Add @{proxyAddresses=$alias4}
- };
- }
- } # Fin Step5
- function Step6
- {
- Fin!
- } # Fin Step6
|
Par avance merci de votre aide et de vos remarques.
Message édité par deepqck le 14-01-2015 à 10:40:55