Powershell: Check if KB patch is installed

Ik wilde weten of een bepaald KB nummer was geïnstalleerd op mijn VM’s. Dit wilde ik natuurlijk niet met het handje nakijken en heb hiervoor een script bij elkaar geraapt.

Het onderstaande script kun je gebruiken in een VMware VI omgeving.

#Add-PSSnapIn VMware.VimAutomation.Core

# Connect to vCenter
$VC = Connect-VIServer (Read-Host "Enter vCenter server")

# Enter the KB#
$HotFixID = (Read-Host "Enter KB#")
Write-Host

# Get all VM’s with powerstate = PoweredOn
$VMS = Get-VM | Where {$_.PowerState -eq "PoweredOn"} | Sort Name

ForEach ($VM in $VMS)

{
# Process only Windows Server VM’s
if ($VM.Guest.OSFullName -match "Microsoft Windows Server*")
  { 
 
# Get all the info using WMI
  $results = get-wmiobject -class "Win32_QuickFixEngineering" -namespace "root\CIMV2" -ComputerName $VM 
  
    # Loop through $results and look for a match then output to screen
    foreach ($objItem in $results)
            {
                # Do the match
                if ($objItem.HotFixID -match $HotFixID)
                    {
                    write-host $objItem.CSName
                    write-host "Hotfix "$HotFixID" installed"
                    write-host
                    }
            } 
   }
}
# Disconnect from vCenter
Disconnect-VIServer -Confirm:$False

 

Zodra je het script start, word er gevraagd naar de vCenter server en het KB nummer wat je wilt nakijken.

image

De volgende output wordt gegenereerd:

image

 

Je kunt het onderstaande script gebruiken in een omgeving zonder VI3:

# Get content
$computers = get-content c:\computers.txt

# Get all the info using WMI
$results = get-wmiobject -class “Win32_QuickFixEngineering” -namespace “root\CIMV2″ -computername $computers

# Loop through $results and look for a match then output to screen
foreach ($objItem in $results)
{
    if ($objItem.HotFixID -match “KB932168″)
    {
        write-host $objItem.CSName
        write-host “Hotfix KB932168 installed”
        write-host
    }
}

 

Source: http://techittome.wordpress.com/2007/04/12/windows-powershell-script-to-check-for-specific-hotfix/

Website: vmwarescripting.com

image

Ik kwam de volgende site tegen op google: http://www.vmwarescripting.com/

Je vind hier scripts voor de volgende platformen:

  • Bash Scripts
  • Powershell Scripts
  • RCLI
  • Perl Scripts
  • Python

Vooral de Powershell scripts is al aardig gevuld. Zie http://www.vmwarescripting.com/ voor de inhoud.

VMware: vDiagram script by Alan Renouf

Alan Renouf created a new powershell / vi toolkit script which draws a nice diagram of your VI environment.

Instructions:

You will need:

  • Powershell V1 (I haven’t tried it on V2 yet)
  • The VI Toolkit
  • Microsoft Visio (I have only tried 2003 +)

How to use:

  1. Download the zip file from the bottom of this page
  2. Once extracted copy the  ‘My-VI-Shapes.vss’ file to your ‘My Documents\My Shapes’ folder.  If the folder does not exist create it and copy the file in.
  3. Run the powershell script with the following options:

To diagram the entire Infrastructure:

vDiagram.ps1 -VIServer MYVISERVER

To diagram a specific cluster use the following:

vDiagram.ps1 -VIServer MYVISERVER -Cluster "Production Cluster’

image

More info and the script can be found over here: http://teckinfo.blogspot.com/2009/01/vdiagram-document-your-vi-with-one.html

Alan keep up the good work!

Source:

image

Script: Set-VMVideoAccLevel

Hugo Peeters van www.peetersonline.nl heeft een powershell script gemaakt voor het instellen van de video hardware acceleration level. Zoals je weet staat dit bij een standaard installatie van Windows Server 2003 (en ook andere versies) standaard op none.

image

Via het script van Hugo kun je in een keer deze setting aanpassen op alle VM’s (Windows 2003 servers en deze moeten wel aan staan). Zie de onderstaande quote van Hugo:

I have created a simple, fire-and-forget script that sets the Hardware Video Acceleration Level for all your (Windows Server 2003 and Powered On) VM’s to Full. This way you can always enjoy smooth mouse movements when working in the console!

Het script kun je hier downloaden: http://www.peetersonline.nl/index.php/vmware/setting-video-hardware-acceleration-level/

VI Toolkit: Set VMware Tools Upgrade Policy

 

Tijdens het googlen naar informatie over de VI Toolkit kwam ik het onderstaande script tegen.

Connect-VIServer <VirtualCenterServer>
#  NAME: set-VMautoUpdate.ps1
#  AUTHOR: angoletti1 / LucD
#  SOURCE:  http://communities.vmware.com/message/937094#937094

[Reflection.Assembly]::LoadWithPartialName("vmware.vim")

$vmConfigSpec = New-Object VMware.Vim.VirtualMachineConfigSpec
$vmConfigSpec.Tools = New-Object VMware.Vim.ToolsConfigInfo
$vmConfigSpec.Tools.ToolsUpgradePolicy = "UpgradeAtPowerCycle"

Get-VM | % { (Get-View $_.ID).ReconfigVM($vmConfigSpec)}

 

Via dit script kun je in één keer alle VM’s aanpassen.

Bron: http://www.blkmtn.org/the-value-of-digging-through-an-SDK

VI Toolkit: Create an Overview Of All cmdlets

 

Het volgende commando genereerd een html file met daarina een overzicht van alle VI cmdlets.

Get-Command -PSSnapin VMware.VimAutomation.Core | ConvertTo-Html –Property CommandType,Name,Definition -title "VIToolkit" > D:\vitoolkit_cmdlets.html

Voer deze code wel  uit als een oneliner!

 

Het volgende overzicht wordt gegenereerd:

image

Nu heb je in een oogopslag een overzicht van alle cmdlets.

Release: PowerGUI 1.5.2

image

De volgende zaken zijn verbeterd of toegevoegd.

Our key focus in this release has been on performance and stability improvements. Some highlights include:

  1. We added 3 new languages (Chinese, Greek, and Polish).
  2. [Admin console] The grid performance has been significantly improved so simple nodes like Process or Services take 1-2 seconds to load.
  3. [Admin console] You can now assign icons to any nodes/links/actions: in the properties dialog box simply click the Icon picture and browse to the ico file.
  4. [Admin console] Fixed a lot of the grid issues: handling of $null properties, multivalued properties, PSCustomObject properties, etc.
  5. [Admin console] Node deletes now have a confirm dialog box. ;)
  6. [Editor] Significantly improved highlighting performance for large scripts (1000-2000 lines of code).
  7. [Debugger] Fixed some compatibility issues with Microsoft’s current v2 builds.
  8. Multiple bugfixes for the issues reported by the online community.

As usual, autoupdate will be turned on in a week or so. So if you want the latest build now – go get it here!

 

Bron: http://dmitrysotnikov.wordpress.com/2008/09/18/powergui-152-rtms/

VI-Toolkit: Start VM’s within a Resource Pool script.

Ik ben sinds kort bezig met het bestuderen van Powershell en dan vooral met de VI-Toolkit. In mijn lab omgeving thuis maak ik bepaalde omgevingen binnen een resource pool. Ik heb bijvoorbeeld een Server 2003 lab waarin een klein Windows 2003 domain draait. Omdat ik nogal wat verschillende labs heb, maak ik voor elk lab een aparte Recource Pool aan. Om het starten van zo’n lab te versimpelen heb ik het onderstaande script gemaakt.

image

In het eerste blok van het script wordt er verbinding gemaakt met de VC Server. Via de cmd-let

Connect-VIServer de variable $hostname word gevuld d.m.v. een vraag. Dit geld ook voor de variable $rp.

Nadat de variabelen zijn gevuld en er verbinding is gemaakt met de VC Server wordt het laatste blok uitgevoerd. 

 

Als je dit script uitvoert vraagt hij om de volgende input:

What host do you want to connect to?: w2003vc (voer hier de naam van je virtualcenter server in).

Enter Resource Pool: srv2003 (voer hier de naam van de resource pool in).

Vervolgens worden alle VM’s die in de resource pool srv2003 zitten opgestart.

image

In VirtualCenter zie je ook het e.e.a. starten:

image

Om dit script te kunnen gebruiken als Shutdown script verander je de volgende regel:

{Start-VM | $vm} in {Shutdown-VMGuest | $vm} (Deze optie werkt alleen als de VMware Tools actief zijn. Je kunt ook Stop-VM gebruiken om de VM uit te zetten).

Follow

Get every new post delivered to your Inbox.

Join 975 other followers