|
@@ -0,0 +1,25 @@
|
|
|
+# VIRTUALBOX INSTALLATION PATH; CHANGE IF NOT INSTALLED IN THE DEFAULT LOCATION
|
|
|
+$vboxPath = ($Env:Programfiles +'\Oracle\VirtualBox\')
|
|
|
+# CASE SENSITIVE NAME OR UUID OF VMS TO KEEP RUNNING
|
|
|
+# ex @('Vm1','VM2','vm3','cfeb596c-3e21-1eec-a015-a496559a3d11')
|
|
|
+$alwaysRunningVMs = @('')
|
|
|
+
|
|
|
+# GET A LIST OF CURRENTLY RUNNING VMS
|
|
|
+$runningVMs = Invoke-Expression ('& "'+ $vboxPath +'vboxmanage.exe" list runningvms')
|
|
|
+Write-Host 'VMs Currently Running' -ForegroundColor 'Green'
|
|
|
+Write-Host '-----------------------------------------------' -ForegroundColor 'Green'
|
|
|
+Write-Host $runningVMs -ForegroundColor 'Green'
|
|
|
+Write-Host '-----------------------------------------------' -ForegroundColor 'Green'
|
|
|
+Write-Host
|
|
|
+
|
|
|
+# LOOP THROUGH $alwaysRunningVMs AND COMPARE TO RUNNING VMS
|
|
|
+for($i=0; $i -lt $alwaysRunningVMs.length; $i++){
|
|
|
+ Write-Host ('*** Checking "'+ $alwaysRunningVMs[$i] +'"')
|
|
|
+ if($runningVMs -like ('*"'+ $alwaysRunningVMs[$i] +'"*') -or $runningVMs -like ('*{'+ $alwaysRunningVMs[$i] +'}*')){
|
|
|
+ Write-Host ("`t" + $alwaysRunningVMs[$i] +' is running')
|
|
|
+ } else {
|
|
|
+ Write-Host ("`tStarting "+ $alwaysRunningVMs[$i])
|
|
|
+ Write-Host -NoNewline "`t"
|
|
|
+ Invoke-Expression ('& "'+ $vboxPath +'vboxmanage.exe" startvm '+ $alwaysRunningVMs[$i] +' --type headless')
|
|
|
+ }
|
|
|
+}
|