Posts tagged: SCVMM

SCVMM Powershell list Virtual Machines status

ListVM-SEK-WMM-02-Status.bat

IOF>>

C:\Windows\System32\WindowsPowerShell\v1.0\PowerShell.exe -PSConsoleFile D:\BACKUP\BIN\Consola.psc1 -command “. ‘D:\BACKUP\BIN\ListVM-SEK-WMM-02-Status.ps1′”

<<EOF

Consola.psc1

IOF>>

<?xml version=”1.0″ encoding=”utf-8″?>
<PSConsoleFile ConsoleSchemaVersion=”1.0″>
  <PSVersion>1.0</PSVersion>
  <PSSnapIns>
    <PSSnapIn Name=”Microsoft.SystemCenter.VirtualMachineManager” />
  </PSSnapIns>
</PSConsoleFile>

<<EOF

ListVM-SEK-WMM-02-Status.ps1

IOF>>

#Declaramos los parámetros que recibe el script

$VMMHost=”sek-wmm-02.grupo.sek”
$VMFileExport=”D:\BACKUP\BIN\ListVM-SEK-WMM-02-Status.csv”

# Comprobamos si están cargados los Cmdlets de Virtual Machine Manager.
# En caso contrario los cargamos.
If(!(Get-PSSnapin | `
     Where-Object {$_.Name -eq “Microsoft.SystemCenter.VirtualMachineManager”`
                    }))
{
    Add-PSSnapin -name Microsoft.SystemCenter.VirtualMachineManager
}

# Conectamos al servidor de SCVMM
$SCVMM = Get-VMMServer $VMMHost

# Recorremos todos los hosts de virtualización administrados por el servidor
# SCVMM
ForEach($HostSrv In (Get-VMHost |Sort-Object -Property HostCluster,Name))
{

    # Mostramos por pantalla el nombre del host actual
    $HostSrv.Name
    “`tStatus`t`tVirtual Machine”

    # Recorremos las máquinas virtuales que hospeda el host
    ForEach($VM In (Get-VM -VMHost $HostSrv | Sort-Object -Property Name))
    {

        # Mostramos el nombre de la máquina virtual actual, con un tabulador
        # para así ver que pertenece al host actual, su estado y la cadena
        # de caracteres que guarda el estado
        “`t” + $VM.Status + “`t” + $VM.Name 

        # Montamos la información de la máquina en la variable de salida
        $Salida = $Salida + `
        $HostSrv.Name + “;”  + `
        $VM.Name + “;”  + `
        $VM.Status + “” + “`r`n”
                 

    } # $VM

} # $HostSrv

# Montamos la salida agregando los encabezados de tabla.
$Salida = “Host;Virtual Machine;Estado`r`n” +  $Salida

# Volcamos la salida al fichero
$Salida > $VMFileExport

<<EOF

SCVMM Powershell Start ALL Virtual Machines

StartVM-ALL.bat

IOF>>

C:\Windows\System32\WindowsPowerShell\v1.0\PowerShell.exe -PSConsoleFile D:\BACKUP\BIN\Consola.psc1 -command “. ‘D:\BACKUP\BIN\StartVM-ALL.ps1′”

<<EOF

Consola.psc1

IOF>>

<?xml version=”1.0″ encoding=”utf-8″?>
<PSConsoleFile ConsoleSchemaVersion=”1.0″>
  <PSVersion>1.0</PSVersion>
  <PSSnapIns>
    <PSSnapIn Name=”Microsoft.SystemCenter.VirtualMachineManager” />
  </PSSnapIns>
</PSConsoleFile>

<<EOF

StartVM-ALL.ps1

IOF>>

Get-VMMServer -ComputerName “sek-wmm-02.grupo.sek”
$VM = @(Get-VM)

foreach ($i in $VM)
{
 Start-VM -VM $i
}

<<EOF

SCVMM Powershell Shutdown ALL Virtual Machines

ShutdownVM-ALL.bat

IOF>>

C:\Windows\System32\WindowsPowerShell\v1.0\PowerShell.exe -PSConsoleFile D:\BACKUP\BIN\Consola.psc1 -command “. ‘D:\BACKUP\BIN\ShutdownVM-ALL.ps1′”

<<EOF

Consola.psc1

IOF>>

<?xml version=”1.0″ encoding=”utf-8″?>
<PSConsoleFile ConsoleSchemaVersion=”1.0″>
  <PSVersion>1.0</PSVersion>
  <PSSnapIns>
    <PSSnapIn Name=”Microsoft.SystemCenter.VirtualMachineManager” />
  </PSSnapIns>
</PSConsoleFile>

<<EOF

ShutdownVM-ALL.ps1

IOF>>

Get-VMMServer -ComputerName “sek-wmm-02.grupo.sek”
$VM = @(Get-VM)

foreach ($i in $VM)
{
 Shutdown-VM -VM $i
}

<<EOF

SCVMM Powershell Install Virtualization Guest Services into Virtual Machines

IOF>>

# Filename:         InstallVirtualGuestServices.ps1
# Description:      Finds all virtual machines managed by Virtual Machine
#                   Manager on which virtual guest services are not
#                   installed and installs the appropriate service.
# Connect to the Virtual Machine Manager server.

$VMMServer = Get-VMMServer -ComputerName “sek-wmm-02.grupo.sek”

# Find all virtual machines without virtual guest services.

$VMs = @(Get-VM)
$VMsWithoutServices = @($VMs | where { $_.HasVMAdditions -eq $False })

if ($VMsWithoutServices.Count -eq “0″) { throw “All virtual machines have virtual guest services installed.” }

# Install virtual guest services on all the computers in the array.

foreach ($VM in $VMsWithoutServices)
{
     Set-VM –VM $vm –InstallVirtualizationGuestServices $TRUE -RunAsynchronously

}

<<EOF

Not mine. Dont remember the author.

Backup Microsoft SCVMM database to file

BackupVMMDatabase.bat

IOF>>

ECHO OFF

rem date?
FOR /F “TOKENS=2-4 DELIMS=/ ” %%A IN (‘DATE /T’) DO (SET date=%%B%%A%%C)

rem db? filename?

SET file=BackupVMMDatabase
SET filename=%file%_%date%.bak

del /Q D:\BACKUP\VMM_DATABASE\%filename%.rar

del /Q D:\BACKUP\TEMP\*.*

rmdir D:\BACKUP\TEMP

mkdir D:\BACKUP\TEMP

C:\Windows\System32\WindowsPowerShell\v1.0\PowerShell.exe -PSConsoleFile D:\BACKUP\BIN\Consola.psc1 -command “. ‘D:\BACKUP\BIN\BackupVMMDatabase.ps1′”

rar_64bits a -ao -ow -m4 -mt4 -rr -rv -v1G -vn -t D:\BACKUP\VMM_DATABASE\%filename%.rar D:\BACKUP\TEMP

del /Q D:\BACKUP\TEMP\*.*

rmdir D:\BACKUP\TEMP

<<EOF

Consola.psc1

IOF>>

<?xml version=”1.0″ encoding=”utf-8″?>
<PSConsoleFile ConsoleSchemaVersion=”1.0″>
  <PSVersion>1.0</PSVersion>
  <PSSnapIns>
    <PSSnapIn Name=”Microsoft.SystemCenter.VirtualMachineManager” />
  </PSSnapIns>
</PSConsoleFile>

<<EOF

BackupVMMDatabase.ps1

IOF>>

# Description: Backs up the VMM database.

# Specify the VMM server and domain.
$VMMServer = Get-VMMServer -ComputerName “sek-wmm-02.grupo.sek”

# Specify the backup folder path and name. To back
# up a database to a network share, specify the UNC
# path, for example, \\SQLServer01\VMMBackups.

Backup-VMMServer –Path “D:\BACKUP\TEMP” -VMMServer $VMMServer

<<EOF

WordPress Themes