The other day I tweeted a short bit of code on how to automate the zeroing-out of your VDI images using SDelete:
I got quite a few DMs afterwards asking if it was possible to do the same with VMware’s OS Optimization Tool.
So without further ado, here’s the code I use as the last step in my Packer builds before closing them down for svMotioning:
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| $ErrorActionPreference = "Stop" | |
| $webserver = "webserver.contoso.local" | |
| $url = "http://" + $webserver | |
| $files = @("VMwareOSOptimizationTool.exe","VMwareOSOptimizationTool.exe.config","my_osot.xml") | |
| $exe = $files[0] | |
| $arg = "-o -t " + $files[2] | |
| # Verify connectivity | |
| if (Test-Connection $webserver -Quiet){ | |
| # Get the OSOT files | |
| ForEach ($file in $files) | |
| { | |
| Invoke-WebRequest -Uri ($url + "/" + $file) -OutFile $env:TEMP\$file | |
| } | |
| } else { | |
| throw "No connection to server. Aborting." | |
| } | |
| # Change to temp folder | |
| Set-Location $env:TEMP | |
| # Run OSOT | |
| Try | |
| { | |
| Start-Process $exe -ArgumentList $arg -Passthru -Wait -ErrorAction stop | |
| } | |
| Catch | |
| { | |
| Write-Error "Failed to run OSOT" | |
| Write-Error $_.Exception | |
| Exit -1 | |
| } | |
| # Delete files | |
| ForEach ($file in $files) | |
| { | |
| Remove-Item -Path $env:TEMP\$file -Confirm:$false | |
| } |
Please remember to swap out your web server and to specify your own XML file. You could also YOLO it and use one of the built-in templates…

…but don’t be surprised when you cripple half your apps đŸ™‚
Those that follow my adventures with EUC will probably be aware that I’m a huge fan of Linux on the VDI desktop. The cost benefits are self-evident for task and knowledge-based workers; and for power users like developers, the platform can provide an easier route to a lot of their applications.
With the advent of Office 365 and a raft of SaaS applications now available, I’ve been a big fan of Linux on the desktop for quite a while. Customers are no longer forced to use Windows unless they choose to – other options are available. In this session we learn more about the exciting opportunities available with Linux in the EUC space.