A 13-post collection

52 Tools: Greenshot

I've used Greenshot ("cinst greenshot" using Chocolatey) almost daily since I installed it. It inserts itself as a workflow process tool for acting on screenshots. Rarely would anyone just take a screenshot and save it, but rather there's probably some action needed.

With Greenshot, you press the PrintScreen button and drag a box around what you want, and then choose an option from the menu. It supports plugins including Imgur and Dropbox which I use frequently.

Also the "Open in image editor" option lets you add annotations and blur out text.

Check out this tool!

52 Tools: Modern.IE

I always liked the idea of BrowserStack, but there's a gap in that it won't work with local servers that use NTLM authentication. Which is what I mostly create.

So lately I've taken to downloading the VMs from Modern.IE. Our minimum supported browser is IE9, so I download the Win7/IE9 VM, and also the Win7/IE10 VM. I get IE11 coverage from my Windows 8 host.

After downloading, I install Chocolatey and throw on Chrome, Firefox and Fiddler and it makes a great disposable web test VM. I should really make that into a BoxStarter script and see what else makes sense on there.

To come full circle, I manage my VM connections with RDCMan.

52 Tools: Visual Studio's "Tools.DiffFiles"

Here's a simple but powerful tool I've learned to use regularly. Open two files in Visual Studio, and in the Command Window (Ctrl-W, A) run :

Tools.DiffFiles <File1> <File2>

I used it the other day in combination with this CSS parse error diagnostic technique find an issue with IE9 rendering of a style sheet.

52 Tools: Automated package installers

Maybe in a future post in this blog series, I'll finally learn and document how to SysPrep a VM with the software I want already installed on it. For now, though, when I stand up a new development VM (or demo server, or set up a new Windows tablet), I install from an ISO, apply Windows Patches, set up features and install software.

For a very detailed walkthrough of a similar process to what I've learned, check out Robin Osborne's great 4-part blog series from Jan 2012:

  1. Installing Applications & Utilities with Ninite
  2. Installing Frameworks and Components with WebPI
  3. Installing.. uh.. everything.. with Chocolatey -- with an nerdy overlap discussion about using Chocolatey to automate WebPI
  4. Installing Custom Stuff, Interesting Things Encountered, and Conclusion

As Mr. Osborne details, a lot of this can be automated. I've started to rely more heavily on package management tools. Three in particular have provided me a lot of value:

As I'm getting better at this, I just noticed BoxStarter on Scott Hanselman's Ultimate Tools List. I'll have to try that!


I'm using this everywhere including on my 8" Windows 10 Preview Tablet. Instead of going to various Shareware and freeware sites to downlod software, I fire up an administrative command window, and copy this text from chocolatey.org (on Windows 10, you can ctrl-v paste into the command window):

@powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin

In that same Window I go forth with a set of utilities I like to have around. Depending on the computer, I usually browse the Chocolatey packages list and find others.

choco install googlechrome
choco install notepadplusplus
choco install 7zip
choco install paint.net
choco install rdcman
choco install lastpass
choco install irfanview
choco install teracopy

Web Platform Installer

WebPI is how I install the various SDKs needed for whatever I'm working on. Basically I look here for anything from Microsoft's platform, depending on what I'm working on (Azure SDK, Office SDK, web developer tools, etc). It's slightly better than searching the web for individual installers.


There's not much to say here other than if you know you need to add a bunch of Windows Features on a new VM, you can take a note of them and script it out. For instance, we use these features which we run as a PowerShell script. If you follow with the discussion on the blog post about a server feature cloning process, you can quickly interrogate a known working server to figure out what needs to go on the next one.

Add-WindowsFeature Application-Server
Add-WindowsFeature AS-NET-Framework
Add-WindowsFeature AS-Web-Support
Add-WindowsFeature AS-WAS-Support
Add-WindowsFeature AS-HTTP-Activation
Add-WindowsFeature FileAndStorage-Services
Add-WindowsFeature Storage-Services
Add-WindowsFeature Web-Server
Add-WindowsFeature Web-WebServer
Add-WindowsFeature Web-Common-Http
Add-WindowsFeature Web-Default-Doc
Add-WindowsFeature Web-Dir-Browsing
Add-WindowsFeature Web-Http-Errors
Add-WindowsFeature Web-Static-Content
Add-WindowsFeature Web-Http-Redirect
Add-WindowsFeature Web-Health
Add-WindowsFeature Web-Http-Logging
Add-WindowsFeature Web-Log-Libraries
Add-WindowsFeature Web-Request-Monitor
Add-WindowsFeature Web-Performance
Add-WindowsFeature Web-Stat-Compression
Add-WindowsFeature Web-Dyn-Compression
Add-WindowsFeature Web-Security
Add-WindowsFeature Web-Filtering
Add-WindowsFeature Web-Basic-Auth
Add-WindowsFeature Web-Client-Auth
Add-WindowsFeature Web-Digest-Auth
Add-WindowsFeature Web-Cert-Auth
Add-WindowsFeature Web-IP-Security
Add-WindowsFeature Web-Url-Auth
Add-WindowsFeature Web-Windows-Auth
Add-WindowsFeature Web-App-Dev
Add-WindowsFeature Web-Net-Ext45
Add-WindowsFeature Web-Asp-Net45
Add-WindowsFeature Web-ISAPI-Ext
Add-WindowsFeature Web-ISAPI-Filter
Add-WindowsFeature Web-Mgmt-Tools
Add-WindowsFeature Web-Mgmt-Console
Add-WindowsFeature Web-Scripting-Tools
Add-WindowsFeature NET-Framework-Features
Add-WindowsFeature NET-Framework-Core
Add-WindowsFeature NET-Framework-45-Features
Add-WindowsFeature NET-Framework-45-ASPNET
Add-WindowsFeature NET-WCF-Services45
Add-WindowsFeature NET-WCF-HTTP-Activation45
Add-WindowsFeature NET-WCF-TCP-PortSharing45
Add-WindowsFeature User-Interfaces-Infra
Add-WindowsFeature WAS
Add-WindowsFeature WAS-Process-Model
Add-WindowsFeature WAS-Config-APIs

52 Tools: AIDA64 Extreme

When I get into coding or consulting or gaming, all my screen real estate is being used, and sometimes I just want to quickly know how my system is being utilized (often wondering why it's running slow). I could monkey around with an on-screen display or, obviously, open the task manager or resource monitor. But I've decided to hook up a small (4x40 character) external LCD display which I have had around for years and push some PC vitals to it.

This tool review is for AIDA64 Extreme, a trialware system information program that costs $40 and integrates well with external LCD displays like mine.

What this tool does is much like Speccy and CPU-Z. What drew me to it, however, was its extensive set of external LCD display options.

AIDA Display Options

The model that I have is an Pertelian x2040. I think the company went out of business, and although the LCD Smartie open source project looked promising to be able to interact with it, the driver doesn't render the text properly. Apparently there is also a fix for this but I don't have the kind of development chops to make the fix happen.

Anyhoo, AIDA64 writes nicely to it. Now at a glance if I'm in a game or full screen in a Virtual Machine, I can see how the host computer is doing.

The middle percentage is the GPU fan percentage, but either my fan is never on, or that value doesn't work.

You can download the config file I'm using here.

Don't have an old school external LCD screen? you can run the monitor on any external tablet or phone using the RemoteSensor option, which basically starts a web server and hosts an streaming HTML page with graphs and whatnot (awesome!)

RemoteSensor sample settings

One UI gotcha on the desktop app is in order to hide the main UI (and deselect the icon in the task bar), you have to right click on the tray icon and choose "Hide Window". It also needs to run as administrator (I believe this is needed to get some of the temperatures).

Update: You can configure both minimize and close to just shut down the main window and stay open in the tray. You can also configure the splash screen to not show up and the app to start with Windows. All that basically makes it run like a Windows Service. Which makes the Windows developer in me think, why couldn't this be a Windows Service?