Author Topic: Use Windows PowerShell to Manage Virtual Machines  (Read 2397 times)

0 Members and 2 Guests are viewing this topic.

Use Windows PowerShell to Manage Virtual Machines
« on: July 02, 2010, 05:19:25 PM »

Offline Nick

  • Administrator
  • Platinum Member
  • *
  • Posts: 46028
  • Karma: +1000/-0
  • Gender: Male
  • NickCS
    • http://www.facebook.com/nickcomputerservices
    • http://www.twitter.com/nickcomputer
    • Computer Chiangmai

Use Windows PowerShell to Manage Virtual Machines

Here are a few examples of how you can use Windows PowerShell scripts to manage virtual machines running on a Server Core installation. Note that these scripts are presented as samples and may need to be customized to work in your environment.

You can use Windows PowerShell to manage virtual machines running on Hyper-V servers running Server Core, but you must run your scripts remotely from a computer that has Windows PowerShell installed on it. In addition, your Windows PowerShell scripts can be used only to access the WMI interface on the targeted Server Core installation. This means the primary Windows PowerShell cmdlet you will use to manage virtual machines running on Server Core is the Get-WmiObject cmdlet, which also has the associated gwmi alias in Windows PowerShell.

Here are a few examples of how you can use Windows PowerShell scripts to manage virtual machines running on a Server Core installation. Note that these scripts are presented as samples and may need to be customized to work in your environment.


Displays the State of All Virtual Machines

Code: [Select]
$VMState=@{2="Running" ; 3="Stopped" ; 32768="Paused" ; 32769="Suspended";
32270="Starting" ; 32771="Snapshotting" ; 32773="Saving" ; 32774="Stopping" }
get-wmiobject -computername localhost -Namespace root\Virtualization
-query "Select * from MSVM_Computersystem where Description like
'%Virtual%' " | format-table -autosize @{Label=”VM Name”;
expression={$_.elementName}}, Description, @{Label =”VM State”;
expression={$VmState[$_.EnabledState]}}


Creates a Snapshot of All Virtual Machines

Code: [Select]
$VSMgtSvc=Get-WmiObject -ComputerName localhost
-NameSpace "root\virtualization"
-Class "MsVM_virtualSystemManagementService"
get-wmiobject -computername localhost -Namespace root\Virtualization
-query "Select * from MSVM_Computersystem where Description like
'%Virtual%' " | foreach-object {$VSMgtSvc.psbase.invokeMethod
("CreateVirtualSystemSnapshot",@($_,$Null,$null)) }


Saves the State of All Running Virtual Machines

Code: [Select]
$VSMgtSvc=Get-WmiObject -ComputerName localhost -NameSpace "root\
virtualization" -Class "MsVM_virtualSystemManagementService"
Get-WmiObject -computername Localhost -NameSpace "root\virtualization"
-Query "Select * From MsVM_ComputerSystem Where Caption Like 'Virtual%'
and EnabledState = 2" | foreach-Object {$_.RequestStateChange(32769) }


From the Microsoft Press book Windows Server 2008 Server Core Administrator’s Pocket Consultant by Mitch Tulloch.

credit: technet.microsoft.com


 
Share this topic...
In a forum
(BBCode)
In a site/blog
(HTML)


Related Topics

  Subject / Started by Replies Last post
0 Replies
3747 Views
Last post June 11, 2010, 06:56:51 PM
by Nick
0 Replies
3395 Views
Last post June 11, 2010, 07:03:17 PM
by Nick
0 Replies
3374 Views
Last post June 11, 2010, 07:10:30 PM
by Nick
0 Replies
3976 Views
Last post June 16, 2010, 02:10:11 PM
by Nick
0 Replies
3480 Views
Last post June 16, 2010, 07:14:52 PM
by Nick
0 Replies
3899 Views
Last post June 16, 2010, 09:24:15 PM
by Nick
0 Replies
4113 Views
Last post July 03, 2010, 03:11:45 PM
by Nick
0 Replies
3523 Views
Last post July 03, 2010, 03:14:50 PM
by Nick
0 Replies
4949 Views
Last post July 03, 2010, 03:15:40 PM
by Nick
0 Replies
1092 Views
Last post November 10, 2016, 12:12:16 PM
by Nick