Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1794 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°2248323
deepqck
Posté le 14-01-2015 à 10:40:31  profilanswer
 

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
mood
Publicité
Posté le 14-01-2015 à 10:40:31  profilanswer
 

n°2248332
rufo
Pas me confondre avec Lycos!
Posté le 14-01-2015 à 11:11:23  profilanswer
 

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
n°2248339
deepqck
Posté le 14-01-2015 à 11:26:48  profilanswer
 

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
n°2248554
deepqck
Posté le 16-01-2015 à 09:31:26  profilanswer
 

Personne ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

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

 

Sujets relatifs
avec innerHTML, le script ne marche plus[POWER SHELL] Problème d'import de module Active Directory
Script VBSDemande de conseil création site Web
Création d'une liste d'éléments liés à un id inputscript pour requêtes
script pour requêtesDébutant AS3 recherche une correction pour un premier script
Création de script avec lecture d'un fichier texte 
Plus de sujets relatifs à : [PowerShel] Création utilisateur Office 365 via script powershell


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR