{"id":4685,"date":"2015-12-15T09:11:26","date_gmt":"2015-12-15T14:11:26","guid":{"rendered":"http:\/\/jdhitsolutions.com\/blog\/?p=4685"},"modified":"2016-01-11T10:45:32","modified_gmt":"2016-01-11T15:45:32","slug":"adding-some-power-to-hyper-v-vm-notes","status":"publish","type":"post","link":"https:\/\/jdhitsolutions.com\/blog\/powershell\/4685\/adding-some-power-to-hyper-v-vm-notes\/","title":{"rendered":"Adding Some Power to Hyper-V VM Notes"},"content":{"rendered":"<p>Since I work at home, I rely a great deal on my Hyper-V environment. I'm assuming if you are using Hyper-V at work the same is true for you.\u00a0 Because I do a lot of testing, it is difficult sometimes to remember what is running on a given VM. Did I update that box to PowerShell v5? Is that VM running Windows Server 2016 TP 3 or TP4?<\/p>\n<p>Hyper-V virtual machines have a setting where you can keep notes which seems like the ideal place to store system information.\u00a0 Since most of my Windows machines are on my public network and the virtual machine name is the same as the computer name, I can easily use PowerShell remoting to connect to each virtual machine, get some system information, and update the corresponding note.<\/p>\n<p>I can run a command like this to get the system information I need.<\/p>\n<pre class=\"lang:ps mark:0 decode:true \">Get-WmiObject win32_Operatingsystem | \r\nSelect @{Name=\"OperatingSystem\";Expression={$_.Caption}},\r\n@{Name=\"ServicePack\";Expression={$_.CSDVersion}},\r\n@{Name=\"PSVersion\";Expression= {$psversiontable.PSVersion}},\r\n@{Name=\"Hostname\";Expression={\r\n    If (Get-Command Resolve-DNSName -ErrorAction SilentlyContinue) {\r\n    (Resolve-DnsName -Name $env:computername -Type A).Name\r\n    }\r\n    else {\r\n[system.net.dns]::Resolve($env:computername).hostname\r\n}\r\n}}\r\n<\/pre>\n<p>I get back a result like this:<\/p>\n<figure style=\"width: 644px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2015\/12\/image-1.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"System Information\" src=\"http:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2015\/12\/image_thumb-1.png\" alt=\"System Information\" width=\"644\" height=\"150\" border=\"0\" \/><\/a><figcaption class=\"wp-caption-text\">system information<\/figcaption><\/figure>\n<p>In my code, I want to include the computer name just in case it is different. If the server has the Resolve-DNSName cmdlet, I invoke it otherwise I use the .NET Framework to resolve the name.<\/p>\n<p>To set the the Notes property , I can use Set-VM.<\/p>\n<pre class=\"lang:ps mark:0 decode:true \">$VM = get-vm chi-dc02\r\nSet-VM $VM -Notes $newNote\r\n<\/pre>\n<p>Be aware that this behavior will replace any existing notes. In my final code, I take that into account and by default I append the system information. But there is a parameter to replace the note contents if you wish.<\/p>\n<p>My final code also includes a parameter to use the VM's IP address instead of it's name. I have a few VMs that are not part of my test domain, but I register their names in my DNS.<\/p>\n<p>Here's the complete script.<\/p>\n<pre class=\"lang:ps mark:0 decode:true \">#requires -version 4.0\r\n#requires -module Hyper-V\r\n\r\n\r\n&lt;#\r\nUpdate the Hyper-V VM Note with system information\r\n\r\nThe script will make a PowerShell remoting connection to each virtual machine using the \r\nVM name as the computer name. If that is not the case, you can use the detected IP address\r\nand then connect to the resolved host name. Alternate credentials are supported for \r\nthe remoting connection.\r\n\r\nThe default behavior is to append the information unless you use -Replace.\r\n\r\nThe default is all virtual machines on a given server, but you can specify an\r\nindividual VM or use a wild card.\r\n\r\nYou can only update virtual machines that are currently running.\r\n\r\nUsage:\r\nc:\\scripts\\Update-VMNote chi* -computername chi-hvr2 -credential globomantics\\administrator -replace\r\n#&gt;\r\n\r\n[cmdletbinding(SupportsShouldProcess)]\r\nParam(\r\n[Parameter(Position=0)]\r\n[ValidateNotNullorEmpty()]\r\n[Alias(\"name\")]\r\n[string]$VMName = \"*\",\r\n[Alias(\"CN\")]\r\n[string]$Computername = $env:COMPUTERNAME,\r\n[Alias(\"RunAs\")]\r\n[System.Management.Automation.Credential()]$Credential = [System.Management.Automation.PSCredential]::Empty,\r\n[Switch]$ResolveIP,\r\n[Switch]$Replace\r\n)\r\n\r\n\r\nWrite-Verbose \"Starting: $($MyInvocation.Mycommand)\"\r\n\r\nWrite-Verbose \"Getting running VMs from $($Computername.ToUpper())\"\r\n\r\n$VMs = (Get-VM -Name $VMName -computername $computername).Where({$_.state -eq 'running'})\r\n\r\nif ($VMs) {\r\n    foreach ($VM in $VMs) {\r\n    Write-Host \"Processing $($VM.Name)\" -ForegroundColor Green\r\n    if ($ResolveIP) {\r\n        #get IP Address\r\n        $IP = (Get-VMNetworkAdapter $VM).IPAddresses | where {$_ -match \"\\d{1,3}\\.\" } | select -first 1\r\n\r\n        #resolve IP address to name\r\n        $named = (Resolve-DnsName -Name $IP).NameHost\r\n    }\r\n    else {\r\n        #use VMname\r\n        $named = $VM.name\r\n    }\r\n    \r\n    #get PSVersion\r\n    #get Operating System and service pack\r\n    #resolving hostname locally using .NET because not all machines\r\n    #may have proper cmdlets\r\n    $sb = { \r\n        Get-WmiObject win32_Operatingsystem | \r\n        Select @{Name=\"OperatingSystem\";Expression={$_.Caption}},\r\n        @{Name=\"ServicePack\";Expression={$_.CSDVersion}},\r\n        @{Name=\"PSVersion\";Expression= {$psversiontable.PSVersion}},\r\n        @{Name=\"Hostname\";Expression={\r\n            If (Get-Command Resolve-DNSName -ErrorAction SilentlyContinue) {\r\n            (Resolve-DnsName -Name $env:computername -Type A).Name\r\n            }\r\n            else {\r\n        [system.net.dns]::Resolve($env:computername).hostname\r\n        }\r\n        }}\r\n      } #close scriptblock\r\n    \r\n    #create a hashtable of parameters to splat to Invoke-Command\r\n    $icmHash = @{\r\n        ErrorAction = \"Stop\"\r\n        Computername = $Named\r\n        Scriptblock = $sb\r\n    }\r\n    \r\n    #add credential if specified\r\n    if ($Credential.username) {\r\n        $icmHash.Add(\"Credential\",$Credential)\r\n    }\r\n    Try {\r\n        #run remoting command\r\n        Write-Verbose \"Getting remote information\"\r\n        $Info = Invoke-Command @icmHash  | Select * -ExcludeProperty RunspaceID\r\n        #update Note\r\n        Write-Verbose \"`n$(($info | out-string).Trim())\"\r\n        if ($Replace) {\r\n            Write-Verbose \"Replacing VM Note\"\r\n            $newNote = ($info | out-string).Trim()\r\n        }\r\n        else {\r\n            Write-Verbose \"Appending VM Note\"\r\n            $current = $VM.Notes\r\n            $newNote = $Current + \"`n\" + ($info | out-string).Trim()    \r\n        }\r\n        Set-VM $VM -Notes $newNote\r\n        #reset variable\r\n        Remove-Variable Info\r\n    } #try\r\n\r\n    Catch {\r\n        Write-Warning \"[$($VM.Name)] Failed to get guest information. $($_.exception.message)\"\r\n    } #catch\r\n\r\n    } #foreach VM\r\n} #if running VMs found\r\nelse {\r\n    Write-Warning \"Failed to find any matching running virtual machines on $Computername\"\r\n}\r\n\r\nWrite-Verbose \"Ending: $($MyInvocation.Mycommand)\"\r\n<\/pre>\n<p>Note that this is a script and not a function.\u00a0 I can now easily update my virtual machines.<\/p>\n<pre class=\"lang:ps mark:0 decode:true \">C:\\scripts\\Update-VMNote.ps1 chi* -Computername chi-hvr2 -Credential globomantics\\administrator -replace\r\n<\/pre>\n<figure style=\"width: 644px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2015\/12\/image-2.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"setting VM note\" src=\"http:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2015\/12\/image_thumb-2.png\" alt=\"setting VM note\" width=\"644\" height=\"101\" border=\"0\" \/><\/a><figcaption class=\"wp-caption-text\">getting system information for the VM note<\/figcaption><\/figure>\n<p>And here's the result:<\/p>\n<figure style=\"width: 644px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2015\/12\/image-3.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"viewing the note\" src=\"http:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2015\/12\/image_thumb-3.png\" alt=\"viewing the note\" width=\"644\" height=\"121\" border=\"0\" \/><\/a><figcaption class=\"wp-caption-text\">The new note<\/figcaption><\/figure>\n<p>Of course you can modify the script to include any information you want in the note.<\/p>\n<p>If you find this useful I hope you'll let me know.<\/p>\n<p>Enjoy!<\/p>\n<h2>UPDATE JANUARY 11, 2016<\/h2>\n<p>I have updated the script and turned it into a function. You can now pipe virtual machines into the function. I also included a Passthru parameter so you can see the Note information. The function is hosted on GitHub at <a href=\"https:\/\/gist.github.com\/jdhitsolutions\/6f17c1d901ff870ff7a3.\" target=\"_blank\">https:\/\/gist.github.com\/jdhitsolutions\/6f17c1d901ff870ff7a3.<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I use they Hyper-V virtual machine note to store system information. Here&#8217;s how I get it and set with PowerShell.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"New from the blog: Adding Some Power to Hyper-V VM Notes #PowerShell","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[401,4,8],"tags":[573,534,540],"class_list":["post-4685","post","type-post","status-publish","format-standard","hentry","category-hyper-v","category-powershell","category-scripting","tag-hyper-v","tag-powershell","tag-scripting"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Adding Some Power to Hyper-V VM Notes &#8226; The Lonely Administrator<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jdhitsolutions.com\/blog\/powershell\/4685\/adding-some-power-to-hyper-v-vm-notes\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Adding Some Power to Hyper-V VM Notes &#8226; The Lonely Administrator\" \/>\n<meta property=\"og:description\" content=\"I use they Hyper-V virtual machine note to store system information. Here&#039;s how I get it and set with PowerShell.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jdhitsolutions.com\/blog\/powershell\/4685\/adding-some-power-to-hyper-v-vm-notes\/\" \/>\n<meta property=\"og:site_name\" content=\"The Lonely Administrator\" \/>\n<meta property=\"article:published_time\" content=\"2015-12-15T14:11:26+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2016-01-11T15:45:32+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2015\/12\/image_thumb-1.png\" \/>\n<meta name=\"author\" content=\"Jeffery Hicks\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@JeffHicks\" \/>\n<meta name=\"twitter:site\" content=\"@JeffHicks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeffery Hicks\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/4685\\\/adding-some-power-to-hyper-v-vm-notes\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/4685\\\/adding-some-power-to-hyper-v-vm-notes\\\/\"},\"author\":{\"name\":\"Jeffery Hicks\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/#\\\/schema\\\/person\\\/d0258030b41f07fd745f4078bdf5b6c9\"},\"headline\":\"Adding Some Power to Hyper-V VM Notes\",\"datePublished\":\"2015-12-15T14:11:26+00:00\",\"dateModified\":\"2016-01-11T15:45:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/4685\\\/adding-some-power-to-hyper-v-vm-notes\\\/\"},\"wordCount\":426,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/#\\\/schema\\\/person\\\/d0258030b41f07fd745f4078bdf5b6c9\"},\"image\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/4685\\\/adding-some-power-to-hyper-v-vm-notes\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/jdhitsolutions.com\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/12\\\/image_thumb-1.png\",\"keywords\":[\"Hyper-V\",\"PowerShell\",\"Scripting\"],\"articleSection\":[\"Hyper-V\",\"PowerShell\",\"Scripting\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/4685\\\/adding-some-power-to-hyper-v-vm-notes\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/4685\\\/adding-some-power-to-hyper-v-vm-notes\\\/\",\"url\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/4685\\\/adding-some-power-to-hyper-v-vm-notes\\\/\",\"name\":\"Adding Some Power to Hyper-V VM Notes &#8226; The Lonely Administrator\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/4685\\\/adding-some-power-to-hyper-v-vm-notes\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/4685\\\/adding-some-power-to-hyper-v-vm-notes\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/jdhitsolutions.com\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/12\\\/image_thumb-1.png\",\"datePublished\":\"2015-12-15T14:11:26+00:00\",\"dateModified\":\"2016-01-11T15:45:32+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/4685\\\/adding-some-power-to-hyper-v-vm-notes\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/4685\\\/adding-some-power-to-hyper-v-vm-notes\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/4685\\\/adding-some-power-to-hyper-v-vm-notes\\\/#primaryimage\",\"url\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/12\\\/image_thumb-1.png\",\"contentUrl\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/12\\\/image_thumb-1.png\",\"width\":644,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/4685\\\/adding-some-power-to-hyper-v-vm-notes\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Hyper-V\",\"item\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/category\\\/hyper-v\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Adding Some Power to Hyper-V VM Notes\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/\",\"name\":\"The Lonely Administrator\",\"description\":\"Practical Advice for the Automating IT Pro\",\"publisher\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/#\\\/schema\\\/person\\\/d0258030b41f07fd745f4078bdf5b6c9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/#\\\/schema\\\/person\\\/d0258030b41f07fd745f4078bdf5b6c9\",\"name\":\"Jeffery Hicks\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/832ae5d438fdcfc1420d720cd1991307927de8a0b12f2342e81c30f773e21098?s=96&d=wavatar&r=pg\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/832ae5d438fdcfc1420d720cd1991307927de8a0b12f2342e81c30f773e21098?s=96&d=wavatar&r=pg\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/832ae5d438fdcfc1420d720cd1991307927de8a0b12f2342e81c30f773e21098?s=96&d=wavatar&r=pg\",\"caption\":\"Jeffery Hicks\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/832ae5d438fdcfc1420d720cd1991307927de8a0b12f2342e81c30f773e21098?s=96&d=wavatar&r=pg\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Adding Some Power to Hyper-V VM Notes &#8226; The Lonely Administrator","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:\/\/jdhitsolutions.com\/blog\/powershell\/4685\/adding-some-power-to-hyper-v-vm-notes\/","og_locale":"en_US","og_type":"article","og_title":"Adding Some Power to Hyper-V VM Notes &#8226; The Lonely Administrator","og_description":"I use they Hyper-V virtual machine note to store system information. Here's how I get it and set with PowerShell.","og_url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/4685\/adding-some-power-to-hyper-v-vm-notes\/","og_site_name":"The Lonely Administrator","article_published_time":"2015-12-15T14:11:26+00:00","article_modified_time":"2016-01-11T15:45:32+00:00","og_image":[{"url":"http:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2015\/12\/image_thumb-1.png","type":"","width":"","height":""}],"author":"Jeffery Hicks","twitter_card":"summary_large_image","twitter_creator":"@JeffHicks","twitter_site":"@JeffHicks","twitter_misc":{"Written by":"Jeffery Hicks","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/4685\/adding-some-power-to-hyper-v-vm-notes\/#article","isPartOf":{"@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/4685\/adding-some-power-to-hyper-v-vm-notes\/"},"author":{"name":"Jeffery Hicks","@id":"https:\/\/jdhitsolutions.com\/blog\/#\/schema\/person\/d0258030b41f07fd745f4078bdf5b6c9"},"headline":"Adding Some Power to Hyper-V VM Notes","datePublished":"2015-12-15T14:11:26+00:00","dateModified":"2016-01-11T15:45:32+00:00","mainEntityOfPage":{"@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/4685\/adding-some-power-to-hyper-v-vm-notes\/"},"wordCount":426,"commentCount":2,"publisher":{"@id":"https:\/\/jdhitsolutions.com\/blog\/#\/schema\/person\/d0258030b41f07fd745f4078bdf5b6c9"},"image":{"@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/4685\/adding-some-power-to-hyper-v-vm-notes\/#primaryimage"},"thumbnailUrl":"http:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2015\/12\/image_thumb-1.png","keywords":["Hyper-V","PowerShell","Scripting"],"articleSection":["Hyper-V","PowerShell","Scripting"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/jdhitsolutions.com\/blog\/powershell\/4685\/adding-some-power-to-hyper-v-vm-notes\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/4685\/adding-some-power-to-hyper-v-vm-notes\/","url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/4685\/adding-some-power-to-hyper-v-vm-notes\/","name":"Adding Some Power to Hyper-V VM Notes &#8226; The Lonely Administrator","isPartOf":{"@id":"https:\/\/jdhitsolutions.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/4685\/adding-some-power-to-hyper-v-vm-notes\/#primaryimage"},"image":{"@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/4685\/adding-some-power-to-hyper-v-vm-notes\/#primaryimage"},"thumbnailUrl":"http:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2015\/12\/image_thumb-1.png","datePublished":"2015-12-15T14:11:26+00:00","dateModified":"2016-01-11T15:45:32+00:00","breadcrumb":{"@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/4685\/adding-some-power-to-hyper-v-vm-notes\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jdhitsolutions.com\/blog\/powershell\/4685\/adding-some-power-to-hyper-v-vm-notes\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/4685\/adding-some-power-to-hyper-v-vm-notes\/#primaryimage","url":"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2015\/12\/image_thumb-1.png","contentUrl":"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2015\/12\/image_thumb-1.png","width":644,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/4685\/adding-some-power-to-hyper-v-vm-notes\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Hyper-V","item":"https:\/\/jdhitsolutions.com\/blog\/category\/hyper-v\/"},{"@type":"ListItem","position":2,"name":"Adding Some Power to Hyper-V VM Notes"}]},{"@type":"WebSite","@id":"https:\/\/jdhitsolutions.com\/blog\/#website","url":"https:\/\/jdhitsolutions.com\/blog\/","name":"The Lonely Administrator","description":"Practical Advice for the Automating IT Pro","publisher":{"@id":"https:\/\/jdhitsolutions.com\/blog\/#\/schema\/person\/d0258030b41f07fd745f4078bdf5b6c9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jdhitsolutions.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/jdhitsolutions.com\/blog\/#\/schema\/person\/d0258030b41f07fd745f4078bdf5b6c9","name":"Jeffery Hicks","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/832ae5d438fdcfc1420d720cd1991307927de8a0b12f2342e81c30f773e21098?s=96&d=wavatar&r=pg","url":"https:\/\/secure.gravatar.com\/avatar\/832ae5d438fdcfc1420d720cd1991307927de8a0b12f2342e81c30f773e21098?s=96&d=wavatar&r=pg","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/832ae5d438fdcfc1420d720cd1991307927de8a0b12f2342e81c30f773e21098?s=96&d=wavatar&r=pg","caption":"Jeffery Hicks"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/832ae5d438fdcfc1420d720cd1991307927de8a0b12f2342e81c30f773e21098?s=96&d=wavatar&r=pg"}}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":2546,"url":"https:\/\/jdhitsolutions.com\/blog\/scripting\/2546\/powershell-hyper-v-memory-report\/","url_meta":{"origin":4685,"position":0},"title":"PowerShell Hyper-V Memory Report","author":"Jeffery Hicks","date":"November 1, 2012","format":false,"excerpt":"Since moving to Windows 8, I've continued exploring all the possibilities around Hyper-V on the client, especially using PowerShell. Because I'm trying to run as many virtual machines on my laptop as I can, memory considerations are paramount as I only have 8GB to work with. Actually less since I\u2026","rel":"","context":"In &quot;Hyper-V&quot;","block_context":{"text":"Hyper-V","link":"https:\/\/jdhitsolutions.com\/blog\/category\/hyper-v\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2012\/11\/happyreport-150x150.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":4457,"url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/4457\/creating-a-hyper-v-vm-memory-report\/","url_meta":{"origin":4685,"position":1},"title":"Creating a Hyper-V VM Memory Report","author":"Jeffery Hicks","date":"July 20, 2015","format":false,"excerpt":"I use Hyper-V to run my lab environment. Since I work at home I don't have access to a \"real\" production network so I have to make do with a virtualized environment. Given budgetary constraints I also don't have a lot of high end hardware with endless amount of RAM\u2026","rel":"","context":"In &quot;Hyper-V&quot;","block_context":{"text":"Hyper-V","link":"https:\/\/jdhitsolutions.com\/blog\/category\/hyper-v\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":4432,"url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/4432\/vmdk-to-vhdx-pdq\/","url_meta":{"origin":4685,"position":2},"title":"VMDK to VHDX PDQ","author":"Jeffery Hicks","date":"June 26, 2015","format":false,"excerpt":"I have a very old VMware ESXi server that has outlived its useful life. The hardware is at least 5 years old and my VMware license has expired. I can still bring up the server and see the virtual machines, but that's about it. I still keep the box so\u2026","rel":"","context":"In &quot;Hyper-V&quot;","block_context":{"text":"Hyper-V","link":"https:\/\/jdhitsolutions.com\/blog\/category\/hyper-v\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2491,"url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/2491\/hyper-v-vhd-summary\/","url_meta":{"origin":4685,"position":3},"title":"Hyper-V VHD Summary","author":"Jeffery Hicks","date":"September 14, 2012","format":false,"excerpt":"When I made the move to Windows 8, one of my tasks was to migrate my test environment from VirtualBox to Hyper-V. Windows 8 includes a client Hyper-V feature that is easy to use and includes PowerShell support. Plus I needed to expand my Hyper-V skills anyway, especially from the\u2026","rel":"","context":"In &quot;Hyper-V&quot;","block_context":{"text":"Hyper-V","link":"https:\/\/jdhitsolutions.com\/blog\/category\/hyper-v\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2012\/04\/computereye-150x150.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":5744,"url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/5744\/extending-hyper-v-with-powershell\/","url_meta":{"origin":4685,"position":4},"title":"Extending Hyper-V with PowerShell","author":"Jeffery Hicks","date":"November 7, 2017","format":false,"excerpt":"Lately I've been writing about my use of PowerShell type extensions as a way to get more done quickly. Or at least give me the information I want with minimal effort. I use Hyper-V a great deal and the Hyper-V cmdlets are invaluable. And while a command like Get-VM provides\u2026","rel":"","context":"In &quot;Hyper-V&quot;","block_context":{"text":"Hyper-V","link":"https:\/\/jdhitsolutions.com\/blog\/category\/hyper-v\/"},"img":{"alt_text":"image","src":"https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2017\/11\/image_thumb-4.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2017\/11\/image_thumb-4.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2017\/11\/image_thumb-4.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2017\/11\/image_thumb-4.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":4547,"url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/4547\/hyper-v-memory-utilization-with-powershell\/","url_meta":{"origin":4685,"position":5},"title":"Hyper-V Memory Utilization with PowerShell","author":"Jeffery Hicks","date":"October 6, 2015","format":false,"excerpt":"I really push the limits of my Hyper-V setup. I know I am constrained by memory and am hoping to expand my network before the end of the year. But in the meantime I have to keep close tabs on memory. I thought I'd share a few commands with you.\u2026","rel":"","context":"In &quot;Hyper-V&quot;","block_context":{"text":"Hyper-V","link":"https:\/\/jdhitsolutions.com\/blog\/category\/hyper-v\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/4685","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/comments?post=4685"}],"version-history":[{"count":0,"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/4685\/revisions"}],"wp:attachment":[{"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/media?parent=4685"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/categories?post=4685"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/tags?post=4685"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}