{"id":397,"date":"2015-12-26T13:46:14","date_gmt":"2015-12-26T12:46:14","guid":{"rendered":"http:\/\/www.yanael.com\/?p=397"},"modified":"2016-01-09T22:54:04","modified_gmt":"2016-01-09T21:54:04","slug":"script-powershell-ad-scanner-ajouter","status":"publish","type":"post","link":"https:\/\/www.yanael.com\/wp\/script-powershell-ad-scanner-ajouter-397\/","title":{"rendered":"Script Powershell AD – Scanner et Ajouter"},"content":{"rendered":"

\"image002\"<\/a>Mettre a jour le champ email<\/h2>\n

 <\/p>\n

Aujourd’hui, je vous propose un script powershell assez simple que j’ai du mettre en place pour mettre \u00e0 jour les champs email des comptes utilisateurs d’un active directory.<\/p>\n

Il affiche un choix de menu que l’on peut ais\u00e9ment agrandir et adapter \u00e0 d’autres traitements. Bas\u00e9 sur QAD et en admettant que vous avez les droits admin (sinon il faut faire un get-credential et le stocker dans une variable, vous pouvez facilement le modifier).<\/p>\n

De plus, il vous permet de voir une structure compos\u00e9e de commandes imbriqu\u00e9es telles que do-until-switch-foreach-for assez astucieuse je trouve. Les logs sont g\u00e9n\u00e9r\u00e9s pour \u00eatre adapter a la structure mais on pourrait tr\u00e8s bien le faire en try-catch pour mettre en place une gestion des erreurs si le script venait a grandir et effectuer d’autres traitements. Vous d\u00e9couvrirez \u00e9galement la notion de $tableau, bref que du bonheur \ud83d\ude00<\/p>\n

 <\/p>\n

Cls\r\n $log = \"result.log\"\r\n $scriptpath = get-location\r\n $date = get-date\r\n \"*** Debut *** a $date\" >> $log\r\n$req = get-qaduser -searchroot 'votre domaine ici' -enabled | select samaccountname,mail,givenname,userprincipalname\r\n\r\n$tableau = @()\r\n\r\n[Int]$nbr = 0 | Out-Null\r\n[Int]$nbr2 = 0 | out-null\r\n\r\ndo {\r\ndo {\r\nWrite-Host \"\"\r\nWrite-Host \"A - Scanner et Ajouter les emails aux utilisateurs du domaine\"\r\nWrite-Host \"Q - Quitter\"\r\nWrite-Host \"\"\r\nwrite-host -nonewline \"Entrer votre choix (A\/Q) puis entr\u00e9e : \"\r\n$choix = read-host\r\nwrite-host \"\"\r\n$ok = @(\"A\",\"Q\") -contains $choix\r\nif ( -not $ok) { Write-Host \"Choix pas disponible\" -fore Red }\r\n}\r\nuntil ( $ok )\r\nswitch ( $choix ) {\r\n\"A\" {\r\nWrite-Host \"Vous avez choisi 'A'\"\r\ncls\r\n\r\nforeach ($user in $req) {\r\n\r\nwrite-host \"***************\" -BackgroundColor black -ForegroundColor White\r\nwrite-host $user.samaccountname\r\n\r\nif(Get-QADMemberOf $user.samaccountname -Indirect -Name Posh_ID){\r\n\r\n# comptes non valide pour creation email\r\n\r\nwrite-host \"Compte de service trouv\u00e9s\" -foregroundcolor red\r\nwrite-host \"MAJ Email IGNOREE... $user\" -foregroundcolor red\r\n$nbr++\r\n\r\n}else{\r\n\r\nif($user.mail -eq $null){\r\n\r\n# comptes valides on continue\r\n\r\nwrite-host \"Ce compte n'a pas d'email et va etre mis a jour\" -ForegroundColor Yellow\r\nset-aduser -identity $user.samaccountname -EmailAddress $user.UserPrincipalName\r\nwrite-host \"MAJ Email ... $user\" -ForegroundColor Green\r\n$nbr2++\r\n\"MAJ Email ... $user\" >> $log\r\n\r\n}\r\n}\r\n$tableau += $user\r\n}\r\n\r\nfor ($count = 0; $count -le $tableau.Length; $count++){\r\n$user = $tableau[$count]}\r\n#cls\r\nWrite-host \"Il y a $nbr comptes ignores\" -ForegroundColor red\r\nWrite-host \"Il y a $nbr2 comptes a modifier\" -ForegroundColor Green\r\n\"Termin\u00e9 ! Nbre comptes ignores $nbr et nombre comptes modifies $nbr2\" >> $log\r\nwrite-host \"Termin\u00e9 voir $scriptpath\\$log\" -ForegroundColor Green\r\n# $tableau >> $log\r\n\"*** Fin *** a $date\" >> $log\r\n}\r\n\"Q\" {\r\ncls\r\nWrite-Host \"Bye\" -fore yellow\r\n\"Aucun changement effectue $date\" >> $log\r\nbreak\r\n}\r\n}\r\n}\r\nuntil ( $choix -eq \"Q\" )\r\n\r\n<\/pre>\n

Bon on va d\u00e9tailler tout ca et le r\u00e9ecrire car il ya eu une conversion malheureuse de plugin wordpress sur la syntaxe du code et vlan, patatra…<\/p>\n \n","protected":false},"excerpt":{"rendered":"

Mettre a jour le champ email   Aujourd’hui, je vous propose un script powershell assez simple que j’ai du mettre en place pour mettre \u00e0 jour les champs email des comptes utilisateurs d’un active directory. Il affiche un choix de menu que l’on peut ais\u00e9ment agrandir et adapter \u00e0 d’autres traitements. Bas\u00e9 sur QAD et […]<\/p>\n","protected":false},"author":6,"featured_media":3951,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0},"categories":[203,202,219],"tags":[207,242,241,206,240,244],"yoast_head":"\nScript Powershell AD - Scanner et Ajouter | Tranches de Veek<\/title>\n<meta name=\"description\" content=\"Mettre a jour le champ email   Aujourd'hui, je vous propose un script powershell assez simple que j'ai du mettre en place pour mettre \u00e0 jour les\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.yanael.com\/wp\/script-powershell-ad-scanner-ajouter-397\/\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Script Powershell AD - Scanner et Ajouter | Tranches de Veek\" \/>\n<meta name=\"twitter:description\" content=\"Mettre a jour le champ email   Aujourd'hui, je vous propose un script powershell assez simple que j'ai du mettre en place pour mettre \u00e0 jour les\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.yanael.com\/wp\/wp-content\/uploads\/ngg_featured\/PowerShellBanner.png\" \/>\n<meta name=\"twitter:creator\" content=\"@ari0k\" \/>\n<meta name=\"twitter:site\" content=\"@ari0k\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"ari0k\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.yanael.com\/wp\/script-powershell-ad-scanner-ajouter-397\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.yanael.com\/wp\/script-powershell-ad-scanner-ajouter-397\/\"},\"author\":{\"name\":\"ari0k\",\"@id\":\"http:\/\/www.yanael.com\/wp\/#\/schema\/person\/9e29ebede3b1978adbfcf2d0af50a879\"},\"headline\":\"Script Powershell AD – Scanner et Ajouter\",\"datePublished\":\"2015-12-26T12:46:14+00:00\",\"dateModified\":\"2016-01-09T21:54:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.yanael.com\/wp\/script-powershell-ad-scanner-ajouter-397\/\"},\"wordCount\":192,\"publisher\":{\"@id\":\"http:\/\/www.yanael.com\/wp\/#\/schema\/person\/aba6b325d853c0a1a94f3542c487c6d7\"},\"keywords\":[\"active directory\",\"email\",\"menu\",\"powershell\",\"script\",\"utilisateurs\"],\"articleSection\":[\"Powershell\",\"Scripts\",\"T\u00e9l\u00e9chargements\"],\"inLanguage\":\"fr-FR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.yanael.com\/wp\/script-powershell-ad-scanner-ajouter-397\/\",\"url\":\"https:\/\/www.yanael.com\/wp\/script-powershell-ad-scanner-ajouter-397\/\",\"name\":\"Script Powershell AD - Scanner et Ajouter | Tranches de Veek\",\"isPartOf\":{\"@id\":\"http:\/\/www.yanael.com\/wp\/#website\"},\"datePublished\":\"2015-12-26T12:46:14+00:00\",\"dateModified\":\"2016-01-09T21:54:04+00:00\",\"description\":\"Mettre a jour le champ email   Aujourd'hui, je vous propose un script powershell assez simple que j'ai du mettre en place pour mettre \u00e0 jour les\",\"breadcrumb\":{\"@id\":\"https:\/\/www.yanael.com\/wp\/script-powershell-ad-scanner-ajouter-397\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.yanael.com\/wp\/script-powershell-ad-scanner-ajouter-397\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.yanael.com\/wp\/script-powershell-ad-scanner-ajouter-397\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"http:\/\/www.yanael.com\/wp\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Script Powershell AD – Scanner et Ajouter\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/www.yanael.com\/wp\/#website\",\"url\":\"http:\/\/www.yanael.com\/wp\/\",\"name\":\"Tranches de Veek\",\"description\":\"404 - C'est comme la vie, mais en plus Geek !\",\"publisher\":{\"@id\":\"http:\/\/www.yanael.com\/wp\/#\/schema\/person\/aba6b325d853c0a1a94f3542c487c6d7\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/www.yanael.com\/wp\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fr-FR\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"http:\/\/www.yanael.com\/wp\/#\/schema\/person\/aba6b325d853c0a1a94f3542c487c6d7\",\"name\":\"ari0k\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"http:\/\/www.yanael.com\/wp\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/8ce11527add5c4c8a0afb43e6cf75917?s=96&d=retro&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/8ce11527add5c4c8a0afb43e6cf75917?s=96&d=retro&r=g\",\"caption\":\"ari0k\"},\"logo\":{\"@id\":\"http:\/\/www.yanael.com\/wp\/#\/schema\/person\/image\/\"},\"sameAs\":[\"http:\/\/www.yanael.com\"]},{\"@type\":\"Person\",\"@id\":\"http:\/\/www.yanael.com\/wp\/#\/schema\/person\/9e29ebede3b1978adbfcf2d0af50a879\",\"name\":\"ari0k\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"http:\/\/www.yanael.com\/wp\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2c51ca3338c41882e80fc5a17ad72e9b?s=96&d=retro&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2c51ca3338c41882e80fc5a17ad72e9b?s=96&d=retro&r=g\",\"caption\":\"ari0k\"},\"sameAs\":[\"http:\/\/yanael.com\",\"tranches.de.veek\",\"https:\/\/twitter.com\/ari0k\"],\"url\":\"https:\/\/www.yanael.com\/wp\/author\/ari0k\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Script Powershell AD - Scanner et Ajouter | Tranches de Veek","description":"Mettre a jour le champ email   Aujourd'hui, je vous propose un script powershell assez simple que j'ai du mettre en place pour mettre \u00e0 jour les","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.yanael.com\/wp\/script-powershell-ad-scanner-ajouter-397\/","twitter_card":"summary_large_image","twitter_title":"Script Powershell AD - Scanner et Ajouter | Tranches de Veek","twitter_description":"Mettre a jour le champ email   Aujourd'hui, je vous propose un script powershell assez simple que j'ai du mettre en place pour mettre \u00e0 jour les","twitter_image":"https:\/\/www.yanael.com\/wp\/wp-content\/uploads\/ngg_featured\/PowerShellBanner.png","twitter_creator":"@ari0k","twitter_site":"@ari0k","twitter_misc":{"\u00c9crit par":"ari0k","Dur\u00e9e de lecture estim\u00e9e":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.yanael.com\/wp\/script-powershell-ad-scanner-ajouter-397\/#article","isPartOf":{"@id":"https:\/\/www.yanael.com\/wp\/script-powershell-ad-scanner-ajouter-397\/"},"author":{"name":"ari0k","@id":"http:\/\/www.yanael.com\/wp\/#\/schema\/person\/9e29ebede3b1978adbfcf2d0af50a879"},"headline":"Script Powershell AD – Scanner et Ajouter","datePublished":"2015-12-26T12:46:14+00:00","dateModified":"2016-01-09T21:54:04+00:00","mainEntityOfPage":{"@id":"https:\/\/www.yanael.com\/wp\/script-powershell-ad-scanner-ajouter-397\/"},"wordCount":192,"publisher":{"@id":"http:\/\/www.yanael.com\/wp\/#\/schema\/person\/aba6b325d853c0a1a94f3542c487c6d7"},"keywords":["active directory","email","menu","powershell","script","utilisateurs"],"articleSection":["Powershell","Scripts","T\u00e9l\u00e9chargements"],"inLanguage":"fr-FR"},{"@type":"WebPage","@id":"https:\/\/www.yanael.com\/wp\/script-powershell-ad-scanner-ajouter-397\/","url":"https:\/\/www.yanael.com\/wp\/script-powershell-ad-scanner-ajouter-397\/","name":"Script Powershell AD - Scanner et Ajouter | Tranches de Veek","isPartOf":{"@id":"http:\/\/www.yanael.com\/wp\/#website"},"datePublished":"2015-12-26T12:46:14+00:00","dateModified":"2016-01-09T21:54:04+00:00","description":"Mettre a jour le champ email   Aujourd'hui, je vous propose un script powershell assez simple que j'ai du mettre en place pour mettre \u00e0 jour les","breadcrumb":{"@id":"https:\/\/www.yanael.com\/wp\/script-powershell-ad-scanner-ajouter-397\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.yanael.com\/wp\/script-powershell-ad-scanner-ajouter-397\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.yanael.com\/wp\/script-powershell-ad-scanner-ajouter-397\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"http:\/\/www.yanael.com\/wp\/"},{"@type":"ListItem","position":2,"name":"Script Powershell AD – Scanner et Ajouter"}]},{"@type":"WebSite","@id":"http:\/\/www.yanael.com\/wp\/#website","url":"http:\/\/www.yanael.com\/wp\/","name":"Tranches de Veek","description":"404 - C'est comme la vie, mais en plus Geek !","publisher":{"@id":"http:\/\/www.yanael.com\/wp\/#\/schema\/person\/aba6b325d853c0a1a94f3542c487c6d7"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/www.yanael.com\/wp\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"fr-FR"},{"@type":["Person","Organization"],"@id":"http:\/\/www.yanael.com\/wp\/#\/schema\/person\/aba6b325d853c0a1a94f3542c487c6d7","name":"ari0k","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"http:\/\/www.yanael.com\/wp\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/8ce11527add5c4c8a0afb43e6cf75917?s=96&d=retro&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8ce11527add5c4c8a0afb43e6cf75917?s=96&d=retro&r=g","caption":"ari0k"},"logo":{"@id":"http:\/\/www.yanael.com\/wp\/#\/schema\/person\/image\/"},"sameAs":["http:\/\/www.yanael.com"]},{"@type":"Person","@id":"http:\/\/www.yanael.com\/wp\/#\/schema\/person\/9e29ebede3b1978adbfcf2d0af50a879","name":"ari0k","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"http:\/\/www.yanael.com\/wp\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2c51ca3338c41882e80fc5a17ad72e9b?s=96&d=retro&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2c51ca3338c41882e80fc5a17ad72e9b?s=96&d=retro&r=g","caption":"ari0k"},"sameAs":["http:\/\/yanael.com","tranches.de.veek","https:\/\/twitter.com\/ari0k"],"url":"https:\/\/www.yanael.com\/wp\/author\/ari0k\/"}]}},"_links":{"self":[{"href":"https:\/\/www.yanael.com\/wp\/wp-json\/wp\/v2\/posts\/397"}],"collection":[{"href":"https:\/\/www.yanael.com\/wp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.yanael.com\/wp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.yanael.com\/wp\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.yanael.com\/wp\/wp-json\/wp\/v2\/comments?post=397"}],"version-history":[{"count":0,"href":"https:\/\/www.yanael.com\/wp\/wp-json\/wp\/v2\/posts\/397\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.yanael.com\/wp\/wp-json\/wp\/v2\/media\/3951"}],"wp:attachment":[{"href":"https:\/\/www.yanael.com\/wp\/wp-json\/wp\/v2\/media?parent=397"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.yanael.com\/wp\/wp-json\/wp\/v2\/categories?post=397"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.yanael.com\/wp\/wp-json\/wp\/v2\/tags?post=397"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}