{"id":913,"date":"2007-10-11T23:22:21","date_gmt":"2007-10-11T22:22:21","guid":{"rendered":"http:\/\/www.markwilson.co.uk\/blog\/2007\/10\/controlling-virtual-server-2005-r2-using-windows-powershell.htm"},"modified":"2007-10-15T00:15:51","modified_gmt":"2007-10-14T23:15:51","slug":"controlling-virtual-server-2005-r2-using-windows-powershell","status":"publish","type":"post","link":"https:\/\/www.markwilson.co.uk\/blog\/2007\/10\/controlling-virtual-server-2005-r2-using-windows-powershell.htm","title":{"rendered":"Controlling Virtual Server 2005 R2 using Windows PowerShell"},"content":{"rendered":"<p>One of my jobs involves looking after a number of demonstration and line of business servers running (mostly) on Virtual Server 2005 R2.  Because I&#8217;m physically located around 90 miles away from the servers and I have no time allocated to managing the infrastructure, I need to automate as much as possible &#8211; which means scripting.  The problem is that my scripting abilities are best described as basic. I can write batch files and I can hack around with other people&#8217;s scripts &#8211; that&#8217;s about it &#8211; but I did attend a Windows PowerShell Fundamentals course a few weeks back and really enjoyed it, so I decided to write some PowerShell scripts to help out.<\/p>\n<p>Virtual Server 2005 R2 has a <a href=\"http:\/\/www.microsoft.com\/com\/\">Component Object Model<\/a> (COM) API for programmatic control and monitoring of the environment (this is what the Virtual Server Administration web interface is built upon).  For a quick introduction to this API, Microsoft has an on-demand webcast (recorded in December 2004), where <a href=\"http:\/\/blogs.technet.com\/roblarson\/\">Robert Larson<\/a> explained <a href=\"http:\/\/msevents.microsoft.com\/cui\/WebCastEventDetails.aspx?culture=en-US&#038;EventID=1032259267&#038;CountryCode=US\">using the Virtual Server COM API to create scripts to automate tasks like virtual machine (VM) creation, configuration, enumeration, and provisioning VMs<\/a>.  <\/p>\n<p>The Virtual Server COM API has 42 interfaces and hundreds of calls; however the two key interfaces are for virtual machines (IVMVirtualMachine) and the Virtual Server service (IVMVirtualServer).  Further details can be found in the Programmers Guide (which is supplied with Virtual Server) and there is a <a href=\"http:\/\/www.microsoft.com\/technet\/scriptcenter\/scripts\/vs\/\">script repository for Virtual Server<\/a> available on the Microsoft TechNet website.<\/p>\n<p>Because the scripting model is based on COM, developers are not tied to a specific scripting language. This means that, theoretically, Windows PowerShell can be used to access the COM API (although in practice, my PowerShell scripts for Virtual Server are very similar to their VBScript equivalents).<\/p>\n<p>Every script using the Virtual Server COM API needs to initiate the VirtualServer.Application object.  For Visual Basic, this would mean calling:<\/p>\n<p><code>Set objVS=CreateObject(\"VirtualServer.Application)<\/code><\/p>\n<p>Because I want to use PowerShell, I have to do something similar; however there is a complication &#8211; as Ben Armstrong explains in his post on <a href=\"http:\/\/blogs.msdn.com\/virtual_pc_guy\/archive\/2006\/06\/13\/630165.aspx\">controlling Virtual Server through PowerShell<\/a>, PowerShell is a Microsoft.NET application and as such does not have sufficient priviledges to communicate with the Virtual Server COM interfaces.  There is a workaround though:<\/p>\n<ol>\n<li>Compile <a href=\"http:\/\/blogs.msdn.com\/virtual_pc_guy\/attachment\/630165.ashx\">the C# code that Ben supplies on his blog<\/a> to produce a dynamic link library (.DLL) that can be used to impersonate the COM security on the required object (I initially had some trouble with this but <a href=\"https:\/\/www.markwilson.co.uk\/blog\/2007\/10\/compiling-c-code-without-access-to-visual-studio.htm\">everything was fine once I located the compiler<\/a>). I placed the resulting VSWrapperForPSH.dll file in %userprofile%\\Documents\\WindowsPowerShell\\<\/li>\n<li>Load the DLL into PowerShell using <code>[System.Reflection.Assembly]::loadfrom(\"%userprofile%\\Documents\\WindowsPowerShell\\VSWrapperForPSH.dll\") > $null<\/code> (I do this in my %userprofile%\\Documents\\WindowsPowerShell\\profile.ps1 file as Ben suggests in his follow-up post on <a href=\"http:\/\/blogs.msdn.com\/virtual_pc_guy\/archive\/2006\/06\/15\/631857.aspx\">PowerShell tweaks for controlling Virtual Server<\/a>).<\/li>\n<li>After creating each object using the Virtual Server COM API (e.g. <code>$vs=New-Object \u00e2\u20ac\u201ccom VirtualServer.Application \u00e2\u20ac\u201cStrict<\/code>), set the security on the object with <code>[Microsoft.VirtualServer.Interop.PowerShell]::SetSecurity($vs)<\/code>.  Again, following Ben Armstrong&#8217;s advice, I do this with a PowerShell script called Set-Security.ps1 which contains the following code:\n<p><code><br \/>\nParam($object)<br \/>\n[Microsoft.VirtualServer.Interop.PowerShell]::SetSecurity($object)<\/code><\/p>\n<p>Then, each time I create a new object I call <code>set-security($<em>objectname<\/em>)<\/code>\n<\/li>\n<\/ol>\n<p>Having got the basics in place, it&#8217;s fairly straightforward to manipulate the COM objects in PowerShell and I followed Ben&#8217;s examples for <a href=\"http:\/\/blogs.msdn.com\/virtual_pc_guy\/archive\/2007\/01\/30\/listing-virtual-machines-under-powershell.aspx\">listing registered VMs on a given host<\/a>, <a href=\"http:\/\/blogs.msdn.com\/virtual_pc_guy\/archive\/2007\/01\/30\/querying-guest-operating-system-information-with-powershell.aspx\">querying guest operating system information<\/a> and <a href=\"http:\/\/blogs.msdn.com\/virtual_pc_guy\/archive\/2007\/01\/31\/examining-virtual-hard-disks-through-powershell.aspx\">examining .VHD files<\/a>.  I then spent quite a lot of time writing a script which will output all the information on a given virtual machine but although it was an interesting exercise, I&#8217;m not convinced it has much value.  What I did learn was that:<\/p>\n<ul>\n<li>Piping objects through Get-Member is can be useful for understanding the available methods and properties.<\/li>\n<li>Where a collection is returned (e.g. the NetworkAdapters property on a virtual machine object), individual items within the collection can be accessed with .item($item) and a count of the number of items within a collection can be obtained with .count, for example:\n<p><code>Param([String]$vmname)<\/code><\/p>\n<p><code>$vs=New-Object -com VirtualServer.Application -strict<br \/>\n$result=Set-Security($vs)<\/code><\/p>\n<p><code>$vm=$vs.FindVirtualMachine($vmname)<br \/>\n$result=Set-Security($vm)<\/code><\/p>\n<p><code>$dvdromdrives=$vm.DVDROMDrives<br \/>\n$result=Set-Security($dvdromdrives)<br \/>\nWrite-Host $vm.Name \"has\" $dvdromdrives.count \"CD\/DVD-ROM drives\"<\/code><\/li>\n<\/ul>\n<p>Of course, System Center Virtual Machine Manager (SCVMM) includes it&#8217;s own PowerShell extensions and therefore makes all of this work totally unnecessary but at least it&#8217;s an option for those who are unwilling or unable to spend extra money on SCVMM.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>One of my jobs involves looking after a number of demonstration and line of business servers running (mostly) on Virtual Server 2005 R2. Because I&#8217;m physically located around 90 miles away from the servers and I have no time allocated to managing the infrastructure, I need to automate as much as possible &#8211; which means &hellip; <a href=\"https:\/\/www.markwilson.co.uk\/blog\/2007\/10\/controlling-virtual-server-2005-r2-using-windows-powershell.htm\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Controlling Virtual Server 2005 R2 using Windows PowerShell<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[],"tags":[76,82],"class_list":["post-913","post","type-post","status-publish","format-standard","hentry","tag-hyper-v","tag-scripting"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Controlling Virtual Server 2005 R2 using Windows PowerShell - markwilson.it<\/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:\/\/www.markwilson.co.uk\/blog\/2007\/10\/controlling-virtual-server-2005-r2-using-windows-powershell.htm\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Controlling Virtual Server 2005 R2 using Windows PowerShell - markwilson.it\" \/>\n<meta property=\"og:description\" content=\"One of my jobs involves looking after a number of demonstration and line of business servers running (mostly) on Virtual Server 2005 R2. Because I&#8217;m physically located around 90 miles away from the servers and I have no time allocated to managing the infrastructure, I need to automate as much as possible &#8211; which means &hellip; Continue reading Controlling Virtual Server 2005 R2 using Windows PowerShell\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.markwilson.co.uk\/blog\/2007\/10\/controlling-virtual-server-2005-r2-using-windows-powershell.htm\" \/>\n<meta property=\"og:site_name\" content=\"markwilson.it\" \/>\n<meta property=\"article:published_time\" content=\"2007-10-11T22:22:21+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2007-10-14T23:15:51+00:00\" \/>\n<meta name=\"author\" content=\"Mark Wilson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@markwilsonit\" \/>\n<meta name=\"twitter:site\" content=\"@markwilsonit\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Mark Wilson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated 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:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2007\\\/10\\\/controlling-virtual-server-2005-r2-using-windows-powershell.htm#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2007\\\/10\\\/controlling-virtual-server-2005-r2-using-windows-powershell.htm\"},\"author\":{\"name\":\"Mark Wilson\",\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/98f61365e7c39d6be942174b8c4de468\"},\"headline\":\"Controlling Virtual Server 2005 R2 using Windows PowerShell\",\"datePublished\":\"2007-10-11T22:22:21+00:00\",\"dateModified\":\"2007-10-14T23:15:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2007\\\/10\\\/controlling-virtual-server-2005-r2-using-windows-powershell.htm\"},\"wordCount\":701,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/98f61365e7c39d6be942174b8c4de468\"},\"keywords\":[\"Microsoft Virtual Server\\\/Hyper-V\",\"Scripting\"],\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2007\\\/10\\\/controlling-virtual-server-2005-r2-using-windows-powershell.htm#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2007\\\/10\\\/controlling-virtual-server-2005-r2-using-windows-powershell.htm\",\"url\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2007\\\/10\\\/controlling-virtual-server-2005-r2-using-windows-powershell.htm\",\"name\":\"Controlling Virtual Server 2005 R2 using Windows PowerShell - markwilson.it\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/#website\"},\"datePublished\":\"2007-10-11T22:22:21+00:00\",\"dateModified\":\"2007-10-14T23:15:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2007\\\/10\\\/controlling-virtual-server-2005-r2-using-windows-powershell.htm#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2007\\\/10\\\/controlling-virtual-server-2005-r2-using-windows-powershell.htm\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2007\\\/10\\\/controlling-virtual-server-2005-r2-using-windows-powershell.htm#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Controlling Virtual Server 2005 R2 using Windows PowerShell\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/\",\"name\":\"markwilson.it\",\"description\":\"get-info -class technology | write-output &gt; \\\/dev\\\/web\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/98f61365e7c39d6be942174b8c4de468\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/98f61365e7c39d6be942174b8c4de468\",\"name\":\"Mark Wilson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/i0.wp.com\\\/www.markwilson.co.uk\\\/blog\\\/uploads\\\/image-4.png?fit=800%2C800&ssl=1\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/www.markwilson.co.uk\\\/blog\\\/uploads\\\/image-4.png?fit=800%2C800&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.markwilson.co.uk\\\/blog\\\/uploads\\\/image-4.png?fit=800%2C800&ssl=1\",\"width\":800,\"height\":800,\"caption\":\"Mark Wilson\"},\"logo\":{\"@id\":\"https:\\\/\\\/i0.wp.com\\\/www.markwilson.co.uk\\\/blog\\\/uploads\\\/image-4.png?fit=800%2C800&ssl=1\"},\"description\":\"A Chartered IT Professional, with recent experience in technology leadership, IT strategy and practice management roles, Mark Wilson is an Enterprise Architect in the Advisory and Management Group at risual. During a career spanning more than two decades, Mark has gained widespread recognition as an expert in his field including both industry and national press exposure. In addition to certifications from Microsoft, VMware, Red Hat, The Open Group and Axelos, Mark held a Microsoft Most Valuable Professional (MVP) award for three years and is now part of the MVP Reconnect programme. Mark is also well-known on social media and maintains an award-winning blog.\",\"sameAs\":[\"http:\\\/\\\/www.markwilson.co.uk\\\/\",\"https:\\\/\\\/www.instagram.com\\\/markwilsonuk\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/markawilson\\\/\",\"https:\\\/\\\/x.com\\\/markwilsonit\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCWHlZCoHRTocdvtrOJ2IL4A\"],\"url\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/author\\\/mark-wilson\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Controlling Virtual Server 2005 R2 using Windows PowerShell - markwilson.it","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.markwilson.co.uk\/blog\/2007\/10\/controlling-virtual-server-2005-r2-using-windows-powershell.htm","og_locale":"en_GB","og_type":"article","og_title":"Controlling Virtual Server 2005 R2 using Windows PowerShell - markwilson.it","og_description":"One of my jobs involves looking after a number of demonstration and line of business servers running (mostly) on Virtual Server 2005 R2. Because I&#8217;m physically located around 90 miles away from the servers and I have no time allocated to managing the infrastructure, I need to automate as much as possible &#8211; which means &hellip; Continue reading Controlling Virtual Server 2005 R2 using Windows PowerShell","og_url":"https:\/\/www.markwilson.co.uk\/blog\/2007\/10\/controlling-virtual-server-2005-r2-using-windows-powershell.htm","og_site_name":"markwilson.it","article_published_time":"2007-10-11T22:22:21+00:00","article_modified_time":"2007-10-14T23:15:51+00:00","author":"Mark Wilson","twitter_card":"summary_large_image","twitter_creator":"@markwilsonit","twitter_site":"@markwilsonit","twitter_misc":{"Written by":"Mark Wilson","Estimated reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.markwilson.co.uk\/blog\/2007\/10\/controlling-virtual-server-2005-r2-using-windows-powershell.htm#article","isPartOf":{"@id":"https:\/\/www.markwilson.co.uk\/blog\/2007\/10\/controlling-virtual-server-2005-r2-using-windows-powershell.htm"},"author":{"name":"Mark Wilson","@id":"https:\/\/www.markwilson.co.uk\/blog\/#\/schema\/person\/98f61365e7c39d6be942174b8c4de468"},"headline":"Controlling Virtual Server 2005 R2 using Windows PowerShell","datePublished":"2007-10-11T22:22:21+00:00","dateModified":"2007-10-14T23:15:51+00:00","mainEntityOfPage":{"@id":"https:\/\/www.markwilson.co.uk\/blog\/2007\/10\/controlling-virtual-server-2005-r2-using-windows-powershell.htm"},"wordCount":701,"commentCount":0,"publisher":{"@id":"https:\/\/www.markwilson.co.uk\/blog\/#\/schema\/person\/98f61365e7c39d6be942174b8c4de468"},"keywords":["Microsoft Virtual Server\/Hyper-V","Scripting"],"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.markwilson.co.uk\/blog\/2007\/10\/controlling-virtual-server-2005-r2-using-windows-powershell.htm#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.markwilson.co.uk\/blog\/2007\/10\/controlling-virtual-server-2005-r2-using-windows-powershell.htm","url":"https:\/\/www.markwilson.co.uk\/blog\/2007\/10\/controlling-virtual-server-2005-r2-using-windows-powershell.htm","name":"Controlling Virtual Server 2005 R2 using Windows PowerShell - markwilson.it","isPartOf":{"@id":"https:\/\/www.markwilson.co.uk\/blog\/#website"},"datePublished":"2007-10-11T22:22:21+00:00","dateModified":"2007-10-14T23:15:51+00:00","breadcrumb":{"@id":"https:\/\/www.markwilson.co.uk\/blog\/2007\/10\/controlling-virtual-server-2005-r2-using-windows-powershell.htm#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.markwilson.co.uk\/blog\/2007\/10\/controlling-virtual-server-2005-r2-using-windows-powershell.htm"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.markwilson.co.uk\/blog\/2007\/10\/controlling-virtual-server-2005-r2-using-windows-powershell.htm#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.markwilson.co.uk\/blog"},{"@type":"ListItem","position":2,"name":"Controlling Virtual Server 2005 R2 using Windows PowerShell"}]},{"@type":"WebSite","@id":"https:\/\/www.markwilson.co.uk\/blog\/#website","url":"https:\/\/www.markwilson.co.uk\/blog\/","name":"markwilson.it","description":"get-info -class technology | write-output &gt; \/dev\/web","publisher":{"@id":"https:\/\/www.markwilson.co.uk\/blog\/#\/schema\/person\/98f61365e7c39d6be942174b8c4de468"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.markwilson.co.uk\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":["Person","Organization"],"@id":"https:\/\/www.markwilson.co.uk\/blog\/#\/schema\/person\/98f61365e7c39d6be942174b8c4de468","name":"Mark Wilson","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/uploads\/image-4.png?fit=800%2C800&ssl=1","url":"https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/uploads\/image-4.png?fit=800%2C800&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/uploads\/image-4.png?fit=800%2C800&ssl=1","width":800,"height":800,"caption":"Mark Wilson"},"logo":{"@id":"https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/uploads\/image-4.png?fit=800%2C800&ssl=1"},"description":"A Chartered IT Professional, with recent experience in technology leadership, IT strategy and practice management roles, Mark Wilson is an Enterprise Architect in the Advisory and Management Group at risual. During a career spanning more than two decades, Mark has gained widespread recognition as an expert in his field including both industry and national press exposure. In addition to certifications from Microsoft, VMware, Red Hat, The Open Group and Axelos, Mark held a Microsoft Most Valuable Professional (MVP) award for three years and is now part of the MVP Reconnect programme. Mark is also well-known on social media and maintains an award-winning blog.","sameAs":["http:\/\/www.markwilson.co.uk\/","https:\/\/www.instagram.com\/markwilsonuk\/","https:\/\/www.linkedin.com\/in\/markawilson\/","https:\/\/x.com\/markwilsonit","https:\/\/www.youtube.com\/channel\/UCWHlZCoHRTocdvtrOJ2IL4A"],"url":"https:\/\/www.markwilson.co.uk\/blog\/author\/mark-wilson"}]}},"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":1259,"url":"https:\/\/www.markwilson.co.uk\/blog\/2008\/10\/just-a-few-of-the-new-features-to-expect-in-windows-server-2008-r2.htm","url_meta":{"origin":913,"position":0},"title":"Just a few of the new features to expect in Windows Server 2008 R2","author":"Mark Wilson","date":"Monday 27 October 2008","format":false,"excerpt":"In case you hadn't noticed, it's Microsoft's conference season - PDC this week, WinHEC next, TechEd EMEA the two weeks after that... lots of announcements - and I'm missing them all! Luckily, last week I got the chance to catch up with Ward Ralston (a Group Technical Product Manager in\u2026","rel":"","context":"In \"Microsoft Virtual Server\/Hyper-V\"","block_context":{"text":"Microsoft Virtual Server\/Hyper-V","link":"https:\/\/www.markwilson.co.uk\/blog\/tag\/hyper-v"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1046,"url":"https:\/\/www.markwilson.co.uk\/blog\/2008\/04\/powershell-running-on-server-core.htm","url_meta":{"origin":913,"position":1},"title":"PowerShell running on server core","author":"Mark Wilson","date":"Thursday 10 April 2008","format":false,"excerpt":"Aaron Parker saw my presentation on Windows Server 2008 server core earlier this week and it got him thinking... I said that Microsoft don't see server core as an application platform but there's no real reason why not as long as the applications you want to run don't have dependencies\u2026","rel":"","context":"In \"Microsoft Application Virtualization (App-V\/SoftGrid)\"","block_context":{"text":"Microsoft Application Virtualization (App-V\/SoftGrid)","link":"https:\/\/www.markwilson.co.uk\/blog\/tag\/app-v"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":900,"url":"https:\/\/www.markwilson.co.uk\/blog\/2007\/09\/mounting-virtual-hard-disks-in-windows-vista.htm","url_meta":{"origin":913,"position":2},"title":"Mounting virtual hard disks in Windows Vista","author":"Mark Wilson","date":"Wednesday 12 September 2007","format":false,"excerpt":"Microsoft's Virtual PC Guy (Ben Armstrong) wrote a blog post last year about using the VHDMount utility from Virtual Server 2005 R2 SP1 with a few registry edits to enable right-click mounting\/dismounting of virtual hard disk (.VHD) files. As .VHD files become ever more prevalent, this is a really useful\u2026","rel":"","context":"In \"Microsoft Virtual Server\/Hyper-V\"","block_context":{"text":"Microsoft Virtual Server\/Hyper-V","link":"https:\/\/www.markwilson.co.uk\/blog\/tag\/hyper-v"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":797,"url":"https:\/\/www.markwilson.co.uk\/blog\/2007\/05\/windows-powershell-for-it-administrators.htm","url_meta":{"origin":913,"position":3},"title":"Windows PowerShell for IT administrators","author":"Mark Wilson","date":"Wednesday 23 May 2007","format":false,"excerpt":"\"Go away or I will replace you with a very small shell script\" [T-shirt slogan from an attendee at tonight's Windows PowerShell for IT administrators event.] I'm back in my hotel room having spent the evening at one of Microsoft UK's TechNet events and this time the topic was Windows\u2026","rel":"","context":"In \"Microsoft Windows\"","block_context":{"text":"Microsoft Windows","link":"https:\/\/www.markwilson.co.uk\/blog\/tag\/windows"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":936,"url":"https:\/\/www.markwilson.co.uk\/blog\/2007\/11\/creating-and-managing-a-virtual-environment-on-the-microsoft-platform.htm","url_meta":{"origin":913,"position":4},"title":"Creating and managing a virtual environment on the Microsoft platform","author":"Mark Wilson","date":"Saturday 3 November 2007","format":false,"excerpt":"Several months back, I blogged about a Microsoft event with a difference - one which, by and large, dropped the PowerPoint deck and scripted demos in favour of a more hands-on approach. That was the Windows Vista after hours event (which I know has been popular and re-run several times)\u2026","rel":"","context":"In \"Microsoft System Center Virtual Machine Manager\"","block_context":{"text":"Microsoft System Center Virtual Machine Manager","link":"https:\/\/www.markwilson.co.uk\/blog\/tag\/scvmm"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1245,"url":"https:\/\/www.markwilson.co.uk\/blog\/2008\/10\/useful-links-october-2008.htm","url_meta":{"origin":913,"position":5},"title":"Useful Links: October 2008","author":"Mark Wilson","date":"Friday 31 October 2008","format":false,"excerpt":"A list of items I've come across recently that I found potentially useful, interesting, or just plain funny: Exchange 2007 server sizing resources - Some resources to use when calculating how many Exchange Server servers are required for a given scenario and how large they should be. WPtouch: WordPress On\u2026","rel":"","context":"In \"Useful Websites\"","block_context":{"text":"Useful Websites","link":"https:\/\/www.markwilson.co.uk\/blog\/tag\/useful-websites"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/posts\/913","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/comments?post=913"}],"version-history":[{"count":0,"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/posts\/913\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/media?parent=913"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/categories?post=913"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/tags?post=913"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}