{"id":1093,"date":"2017-05-30T16:48:49","date_gmt":"2017-05-30T14:48:49","guid":{"rendered":"http:\/\/blog.purplescreen.fr\/?p=1093"},"modified":"2017-06-01T21:01:56","modified_gmt":"2017-06-01T19:01:56","slug":"verifier-la-configuration-des-cartes-reseau-de-vos-vm-powercli","status":"publish","type":"post","link":"https:\/\/blog.purplescreen.fr\/?p=1093","title":{"rendered":"V\u00e9rifier la configuration des cartes r\u00e9seau de vos VM (PowerCLI)"},"content":{"rendered":"<p>Je vous propose ce script qui vous permet de lister toutes vos VMs. Vous y trouver les informations (Nom de la VM, Hostname, IP, Gateway, Mac Addresse, Nom de la carte r\u00e9seau) que vous pouvez filtrer a l&#8217;aide de la commande &#8220;| where&#8221;.<\/p>\n<pre>Exemple : Monscript.ps1 | Where {$_.VM -eq \"Test\"}<\/pre>\n<pre>\r\n#Script By Olivier Gosselin - France\r\n#http:\/\/blog.purplescreen.fr\r\n#Tools PowerCLI 6.5 Release 1\r\n\r\n$vCenterFQDN = \"FQDN\"\r\n#$UservCenter = \"Login\"\r\n#$PasswordvCenter =\"Password\"\r\n$CredentialvCenter = Get-Credential -Message \"Identifiants pour le vCenter\"\r\n\r\nConnect-VIServer $vCenterFQDN -User $CredentialvCenter.UserName -Password $CredentialvCenter.Password\r\n\r\n$CurentPath = [System.IO.Path]::GetDirectoryName($MyInvocation.MyCommand.Definition)\r\n$Date = date | select *\r\n\r\n$AllVM = get-vm\r\n#$OneVm = get-vm -Name $option\r\n$ALL = $AllVM | Get-VMGuest\r\n#$PowerVM = get-vm -Name $VMName | select Name,PowerState\r\n\r\n    foreach ($VMs in $ALL) {\r\n$VMToolsState = $VMs.ExtensionData.ToolsStatus\r\n$GuestState = $VMs.ExtensionData.GuestState\r\n$Hostname = $VMs.HostName\r\n$ALLIPs = $VMs.nics\r\n\r\n#On verifie l'etat des VMwaretools\r\nif ($VMToolsState -eq \"toolsOk\") {\r\n    foreach ($NetIP in $ALLIPs) {\r\n$VMName = $VMs.VmName\r\n$StateCard = $NetIP.Connected\r\n$Device = $NetIP.Device\r\n$IP = $NetIP.IPAddress | select -Unique\r\n$MAC = $NetIP.MacAddress\r\n\r\n$WhereisMAC = $ALLIPs.MacAddress\r\n$WhereisGateway = [array]::indexof($WhereisMAC,\"$MAC\")\r\n\r\n$Gateway = $VMs.ExtensionData.IpStack.IpRouteConfig.IpRoute.Gateway | where {$_.Device -eq \"$WhereisGateway\"} | where {$_.IpAddress -ne $null}\r\n$GatewayIP = $Gateway.IpAddress | select -Unique\r\n\r\nif (!$IP) {\r\n$IP = \"None\"\r\n}\r\nelse {\r\n$IP = (@($IP) -join ',')\r\n}\r\n\r\nif (!$Device) {\r\n$Device = \"Unknown\"\r\n}\r\n\r\nif (!$GatewayIP) {\r\n$GatewayIP = \"None\"\r\n}\r\n#Pour l'affichage et mise en variable Gateway & Cie\r\n$Output = New-Object psobject\r\n$Output | Add-Member -MemberType NoteProperty -Name VM -Value $VMName\r\n$Output | Add-Member -MemberType NoteProperty -Name Hostname -Value $Hostname\r\n$Output | Add-Member -MemberType NoteProperty -Name StateCard -Value $StateCard\r\n$Output | Add-Member -MemberType NoteProperty -Name Device -Value $Device\r\n$Output | Add-Member -MemberType NoteProperty -Name IP -Value $IP\r\n$Output | Add-Member -MemberType NoteProperty -Name MAC -Value $MAC\r\n$Output | Add-Member -MemberType NoteProperty -Name Gateway -Value $GatewayIP\r\n\r\n#Pour l'affichage et mise en variable Route\r\n$VMName = $VMs.VmName\r\n$NetworkRoute = $VMs.ExtensionData.IpStack.IpRouteConfig.IpRoute.Network\r\n$NetworkRoute = (@($NetworkRoute) -join '|')\r\n$PrefixLength = $VMs.ExtensionData.IpStack.IpRouteConfig.IpRoute.PrefixLength\r\n$PrefixLength = (@($PrefixLength) -join '|')\r\n$IpAddressRoute = $VMs.ExtensionData.IpStack.IpRouteConfig.IpRoute.Gateway.IpAddress\r\n$IpAddressRoute = (@($IpAddressRoute) -join '|')\r\n\r\n$RouteOutput = New-Object psobject\r\n#$RouteOutput | Add-Member -MemberType NoteProperty -Name VM -Value $VMName\r\n$RouteOutput | Add-Member -MemberType NoteProperty -Name NetworkRoute -Value $NetworkRoute\r\n$RouteOutput | Add-Member -MemberType NoteProperty -Name PrefixLength -Value $PrefixLength\r\n$RouteOutput | Add-Member -MemberType NoteProperty -Name IpAddressRoute -Value $IpAddressRoute\r\n\r\n#On affiche le resultat\r\nif ($Hostname) {\r\nWrite-Host \"=============  \"$VMs.VmName\" =============\"\r\n$Output\r\nWrite-Host \"-----------> Route\"\r\n$RouteOutput\r\n}\r\n}\r\n}\r\nelse {\r\n$VMName = $VMs.VmName\r\n$PowerVM = get-vm -Name $VMName | select Name,PowerState\r\n\r\nif ($PowerVM.PowerState -eq \"PoweredOff\") {\r\n$ErreurVM = \"Erreur : La VM ($VMName) est eteinte\"\r\n}\r\nelseif ($GuestState -eq \"notRunning\") {\r\n$ErreurVM = \"Erreur : Les VMWare Tool ($VMName) ne fonctionne pas\"\r\n}\r\nelseif ($VMToolsState -eq \"toolsNotInstalled\") {\r\n$ErreurVM = \"Erreur : Les VMWare tools pour cette VM ($VMName) ne sont pas installer\"\r\n}\r\n#On ecrit les erreurs dans un fichier TXT\r\n$Day = $Date.Day\r\n$Month = $Date.Month\r\n$Hour = $Date.Hour\r\n$Minute = $Date.Minute\r\nAdd-Content -Path $CurentPath\"\\Erreur.log\" -Value \"[$Day\/$Month-$Hour.$Minute]$ErreurVM\"\r\n}\r\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Je vous propose ce script qui vous permet de lister toutes vos VMs. Vous y trouver les informations (Nom de la VM, Hostname, IP, Gateway, Mac Addresse, Nom de la carte r\u00e9seau) que vous pouvez filtrer a l&#8217;aide de la commande &#8220;| where&#8221;. Exemple : Monscript.ps1 | Where {$_.VM -eq &#8220;Test&#8221;} #Script By Olivier Gosselin&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[11,10,14],"tags":[26,16],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>V\u00e9rifier la configuration des cartes r\u00e9seau de vos VM (PowerCLI) - PurpleScreen<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/blog.purplescreen.fr\/?p=1093\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"ogosselin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\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\":\"WebPage\",\"@id\":\"http:\/\/blog.purplescreen.fr\/?p=1093\",\"url\":\"http:\/\/blog.purplescreen.fr\/?p=1093\",\"name\":\"V\u00e9rifier la configuration des cartes r\u00e9seau de vos VM (PowerCLI) - PurpleScreen\",\"isPartOf\":{\"@id\":\"https:\/\/blog.purplescreen.fr\/#website\"},\"datePublished\":\"2017-05-30T14:48:49+00:00\",\"dateModified\":\"2017-06-01T19:01:56+00:00\",\"author\":{\"@id\":\"https:\/\/blog.purplescreen.fr\/#\/schema\/person\/ad63980c08d122ffe9115ade81b21fd3\"},\"breadcrumb\":{\"@id\":\"http:\/\/blog.purplescreen.fr\/?p=1093#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/blog.purplescreen.fr\/?p=1093\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\/\/blog.purplescreen.fr\/?p=1093#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blog.purplescreen.fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"V\u00e9rifier la configuration des cartes r\u00e9seau de vos VM (PowerCLI)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.purplescreen.fr\/#website\",\"url\":\"https:\/\/blog.purplescreen.fr\/\",\"name\":\"PurpleScreen\",\"description\":\"by Olivier Gosselin\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.purplescreen.fr\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.purplescreen.fr\/#\/schema\/person\/ad63980c08d122ffe9115ade81b21fd3\",\"name\":\"ogosselin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.purplescreen.fr\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6a053a3dca3cccbeecd37d492189f38f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6a053a3dca3cccbeecd37d492189f38f?s=96&d=mm&r=g\",\"caption\":\"ogosselin\"},\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/olivier-gosselin-30090498\/\"],\"url\":\"https:\/\/blog.purplescreen.fr\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"V\u00e9rifier la configuration des cartes r\u00e9seau de vos VM (PowerCLI) - PurpleScreen","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":"http:\/\/blog.purplescreen.fr\/?p=1093","twitter_misc":{"Written by":"ogosselin","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"http:\/\/blog.purplescreen.fr\/?p=1093","url":"http:\/\/blog.purplescreen.fr\/?p=1093","name":"V\u00e9rifier la configuration des cartes r\u00e9seau de vos VM (PowerCLI) - PurpleScreen","isPartOf":{"@id":"https:\/\/blog.purplescreen.fr\/#website"},"datePublished":"2017-05-30T14:48:49+00:00","dateModified":"2017-06-01T19:01:56+00:00","author":{"@id":"https:\/\/blog.purplescreen.fr\/#\/schema\/person\/ad63980c08d122ffe9115ade81b21fd3"},"breadcrumb":{"@id":"http:\/\/blog.purplescreen.fr\/?p=1093#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["http:\/\/blog.purplescreen.fr\/?p=1093"]}]},{"@type":"BreadcrumbList","@id":"http:\/\/blog.purplescreen.fr\/?p=1093#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.purplescreen.fr\/"},{"@type":"ListItem","position":2,"name":"V\u00e9rifier la configuration des cartes r\u00e9seau de vos VM (PowerCLI)"}]},{"@type":"WebSite","@id":"https:\/\/blog.purplescreen.fr\/#website","url":"https:\/\/blog.purplescreen.fr\/","name":"PurpleScreen","description":"by Olivier Gosselin","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.purplescreen.fr\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blog.purplescreen.fr\/#\/schema\/person\/ad63980c08d122ffe9115ade81b21fd3","name":"ogosselin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.purplescreen.fr\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/6a053a3dca3cccbeecd37d492189f38f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6a053a3dca3cccbeecd37d492189f38f?s=96&d=mm&r=g","caption":"ogosselin"},"sameAs":["https:\/\/www.linkedin.com\/in\/olivier-gosselin-30090498\/"],"url":"https:\/\/blog.purplescreen.fr\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/blog.purplescreen.fr\/index.php?rest_route=\/wp\/v2\/posts\/1093"}],"collection":[{"href":"https:\/\/blog.purplescreen.fr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.purplescreen.fr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.purplescreen.fr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.purplescreen.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1093"}],"version-history":[{"count":8,"href":"https:\/\/blog.purplescreen.fr\/index.php?rest_route=\/wp\/v2\/posts\/1093\/revisions"}],"predecessor-version":[{"id":1104,"href":"https:\/\/blog.purplescreen.fr\/index.php?rest_route=\/wp\/v2\/posts\/1093\/revisions\/1104"}],"wp:attachment":[{"href":"https:\/\/blog.purplescreen.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1093"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.purplescreen.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1093"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.purplescreen.fr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1093"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}