Restart VMware Tools on all Windows VM’s


After reading the post on about the VMware Tools status “not running” and in particular the part about the preferred work around:

I find that restarting the VMware Tools Service in the guest OS always gets by the problem, but loggin into every single VM that reports the wrong status for it’s VMware Tools could be a bit of a drag. So I choose to do this remotely rather that logging on to each VM.

From any Windows workstation/server, open a command pompt and run:

sc \\{vm-name-or-ip-address} stop "VMTools"
sc \\{vm-name-or-ip-address} start "VMTools"

I thought that can be done via Powershell and the VI Toolkit. So I created the following script that will restart the VMware Tools service on every running Windows VM.

$vCenter = Read-Host "Enter the vCenter servername"

Connect-VIServer $vCenter

$Service = "VMtools"
$VMs = Get-VM | Where-Object {
        $_.PowerState -eq "PoweredON" `
        -and `
        $_.Guest.OSFullName -match "Windows"
foreach($VM in $VMs)
    Write-Host "-------------------------------------------"
    Write-Host "Restarting the VMware Tools Service on" $VM
        $Svc = Get-WmiObject -Computer $VM win32_service `
        -filter "name='$Service'"
            $Result = $Svc.StopService()
            sleep 5
            $Result = $Svc.StartService()
    Write-Host "Done.. "
    Write-Host "-------------------------------------------"

Disconnect-VIServer -Confirm:$false

This script generates the following output:


Other useful blog posts or kb articles on this subject:

Source for the restart service part in my script:

Veeam FastSCP3 on Windows 7 X64


If you try to install Veeam FastSCP3 on Windows 7 X64. You’ll get the following error:


I asked a question about this error in the Veeam Forums:

Gostev suggested the following:

the workaround is to hack installation package and remove OS version check (if you know how to do this) :wink:

So this is exactly what i did. I found a script on this page: This script does exactly what i needed. It removes the OS Version Check from the MSI.

These are the steps:

  1. Download Veeam FastSCP 3 from here:
  2. Extract the zip file.
  3. Download winrar and extract the veeam_fastscp_3.0.exe.
  4. Get the scrtipt from: and save it on the desktop.
  5. Grab the extracted FastSCPSetup.msi and drop it on the script. After a couple of seconds, the following screens will popup: 
    image     image  image image
  6. You can install FastSCP 3 by running the FastSCPSetup.msi.

Remove files older than x days with PoSH


One of the Symantec Live Update Servers started to complain about low disk space. So I started Treesize Pro to see what files or folders where eating my disk space.  After a couple of seconds Treesize Pro showed me that the liveupdate files, in the c:\LiveUpdate folder where the problem.

I created the following Powershell Script (after reading the source) and scheduled this script to run once a week.

Warning: This script will remove everything that matches the remove-item cmdlet!

$Now = Get-Date
$Days = "3"
$TargetFolder = "C:\LiveUpdate"
$LastWrite = $Now.AddDays(-$days)
$Files = get-childitem $TargetFolder -include *.zip, *.x86 -recurse `
    | Where {$_.LastWriteTime -le "$LastWrite"} 

foreach ($File in $Files)
{write-host "Deleting File $File" -foregroundcolor "Red"; `
    Remove-Item $File | out-null}

Just change the $Days, $TargetFolder variables and the file extensions (*.zip, *.x86) for you environment.
Source of this script: powershell-script-to-delete-files-older-than-certain-days.aspx

VI Toolkit: Check VMware Configuration with Powershell


Hugo heeft het weer geflikt. Deze keer heeft hij een script gemaakt die alle ESX Servers vergelijkt en daar een mooi rapportje van maakt.

This Powershell script generates an overview of any items that are not available to every ESX server in a VMware cluster. These items might prevent your vm’s being vmotioned by DRS or restarted by HA. Pretty serious business, I’d say!

The items involved are:
1. datastores
2. LUNs (important when using Raw Device Mappings)
3. port groups

The output is a nicely formatted HTML page showing not only which items are misconfigured, but also where the are available and where they are absent.

Hieronder zie je een screenshot van de output:image

Het script kun je hier vinden:

Script: Backup VMware Workstation VM’s


Via het onderstaande script kun je redelijk eenvoudig een backup maken van je VMware Workstation VM’s. Mocht de VM nog actief zijn, dan wordt deze “netjes” afgesloten en vervolgens gekopieerd naar een directory op een netwerk share. Dit script heb ik geschreven voor een VM die bij ons in productie draait onder VMware Workstation (deze VM heeft een seriële modem aangekoppeld). Zo wordt er elke dag via een scheduled task een backup gemaakt.

De volgende parameters moet je meegeven aan de onderstaande function backup-wsvm:

  • $vmname – de naam van de VM.
  • $vmx – pad naar het vmx bestand.
  • $vmdir – de directory waarin de VM staat.
  • $vmbackup – de directory waar de VM naar toe gekopieerd moet worden.

function backup-wsvm{
  param([string]$vmname, [string]$vmx, [string]$vmdir, [string]$vmbackup)
  $driveltr = “v:”
  $share = \\server\share
  $date = get-date -uformat “%m-%d-%Y”
  $vmrun = “C:\Program Files\VMware\VMware Workstation\vmrun.exe”
  $stop = “stop”
  $start = “start”
  $soft = “soft”
  $Result = test-path -path “$vmbackup\$date\$vmname”

  if ($Result -eq $false)
    net use $driveltr $share
    New-Item “$vmbackup\$date\$vmname” -type directory
        & $vmrun $stop $vmx $soft
            Copy-Item $vmdir $vmbackup\$date\ -recurse
                & $vmrun $start $vmx
                    net use $driveltr /Delete

Daarna kun je via de volgende code een backup maken van je vm:

$vmname = “Powershell_Lab”
backup-wsvm “$vmname” “D:\vmware\$vmname\$vmname.vmx” “D:\vmware\$vmname” “V:\vmbackup”

Script: Powershell script for changing the AD Home Dir and Drive


Stel je bent midden in een migratie naar een andere fileserver of naar bijvoorbeeld een NetApp filer. Daarnaast wil je ook alle Home directory’s migreren. Dit houdt in dat je ook de Active Directory moet aanpassen.  Dit kun je op verschillende manieren doen. Ik heb gekozen om eens te kijken naar de Quest ActiveRoles addin voor Powershell en dat bleek behoorlijk krachtig te zij, zoals je kunt zien in het onderstaande scriptje:


Voordat je dit script kunt gebruiken heb je een PC nodig die lid is van het domain, PowerShell en de Quest AD cmd-lets geïnstalleerd heeft. Daarna kun je het script als volgt uitvoeren:

PS Scriptdir> .\Change_Home_Dir_drive.ps1


Daarna kun je in de Active Directory nakijken of het script succesvol heeft gelopen.


Script: updated


Bouke Groenescheij van heeft een update van zijn removehba script online gezet. Met dit script kun je in een handomdraai op een linux distro een ESX cd zo aanpassen dat je tijdens de installatie van een ESX server de HBA’s niet hoeft los te koppelen.

"So I went ahead and made some changes to the script which pulls apart the extra files, edits them and repacks it all up in one go…

Thanks to both of you for your work. I’ve been using my updated install media now for http deployments for a while without any issues. Its a great install process not having to worry about the san being disconnected. using the nework boot iso and a kickstart file, I can have a host rebuilt in under 15mins. That includes a reboot and configuring all my networks, hp agents & tweaks etc."

De download vind je hier: