[PowerShel] Création utilisateur Office 365 via script powershell

Création utilisateur Office 365 via script powershell [PowerShel] - Divers - Programmation

Marsh Posté le 14-01-2015 à 10:40:31    

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 :
  1. # Connexion O365 + Exchange Online
  2. import-module msonline
  3. $ident=get-credential
  4. Connect-MsolService -Credential $ident
  5. $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $ident -Authentication Basic -AllowRedirection
  6. Import-PSSession $Session
  7. #Menu
  8. $stepChoice = read host 'Le prénom ou le nom a des accents? 1 = oui / 2 = non'
  9. switch($stepChoice)
  10. {
  11. 1{Step1} #Accent
  12. 2{Step2} #Pas D'accents
  13. }
  14. function Step1
  15. {
  16. # Pour la prise en charge des accents
  17. Get-Content "\\chemin\entree.csv" -encoding string | Set-Content "\\chemin\sortie.csv" -encoding UNICODE
  18. } # Fin de Step1
  19. function Step2
  20. {
  21. $stepChoice2 = read host 'Licence Plan 1 ou E1 / 3 = Plan1 4 = E1'
  22. switch($stepChoice2)
  23. {
  24. 3{Step3} #Plan 1
  25. 4{Step4} #E1
  26. }
  27. function Step3
  28. {
  29. # Création de l'utilisateur avec une licence P1
  30. #Mot de passe: XXXXXXX
  31. 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}
  32. Start-Sleep -s 180
  33. # Ajout des alias + X500, configuration de la langue et de la timezone et ajout droit FullAccess a Toto
  34. 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}
  35. } # Fin de Step3
  36. function Step4
  37. {
  38. # Création de l'utilisateur
  39. # Forcer le mot de passe XXXXXX
  40. 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}
  41. Start-Sleep -s 180
  42. # Ajout des alias + X500, configuration de la langue et de la timezone et ajout droit FullAccess a toto
  43. 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}
  44. } # Fin de Step4
  45. } # Fin de Step2
  46. $stepChoice = read host 'Utilisateur dans active directory 5 = oui / 6 = non'
  47. switch($stepChoice3)
  48. {
  49. 5{Step5} # Oui
  50. 6{Step6} # Non
  51. }
  52. function Step5
  53. {
  54. #Name;UserPrincipalName;alias1;alias2;alias3;alias4
  55. Import-Csv -path "\\chemin\tag_utilisateur.csv" -Delimiter ";" |
  56. foreach {
  57. $mail = ($_.UserPrincipalName); $alias1 = ($_.alias1); $alias2 = ($_.alias2); $alias3 = ($_.alias3); $alias4 = ($_.alias4); $name = ($_.Name);
  58. Set-ADUser -identity $name -EmailAddress $mail -Add @{proxyAddresses=$alias1};
  59. If ($_.alias2) {
  60.  Set-ADUser -identity $name -EmailAddress $mail -Add @{proxyAddresses=$alias2}
  61. };
  62. If ($_.alias3) {
  63.  Set-ADUser -identity $name -EmailAddress $mail -Add @{proxyAddresses=$alias3}
  64. };
  65. If ($_.alias4) {
  66.  Set-ADUser -identity $name -EmailAddress $mail -Add @{proxyAddresses=$alias4}
  67. };
  68. }
  69. } # Fin Step5
  70. function Step6
  71. {
  72. Fin!
  73. } # Fin Step6


 
Par avance merci de votre aide et de vos remarques.


Message édité par deepqck le 14-01-2015 à 10:40:55
Reply

Marsh Posté le 14-01-2015 à 10:40:31   

Reply

Marsh Posté le 14-01-2015 à 11:11:23    

Question bête : pourquoi tu ne détectes pas automatiquement si y'a des accents ou pas pour les noms/prénoms :??:


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 14-01-2015 à 11:26:48    

Bonjour,
Car jusqu'à présent je faisais du cas par cas.  
Il est vrai que je peux tout à fait utiliser tout le temps la partie du script qui gère les accents. Ce n'est pas problématique.  
 
En gros, si mon utilisateur possède des accents je vais modifier le fichier entrée.csv
 
S'il n'a pas d'accents, je modifie directement le fichier sortie.csv.


Message édité par deepqck le 14-01-2015 à 11:29:37
Reply

Marsh Posté le 16-01-2015 à 09:31:26    

Personne ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed