SysAdmin Corner: Getting More From Windows

As a non-Windows user who’s forced to use Windows on regular occasion, there can often be problems or limitations about the OS that can cause you to throw your hands up in frustration. I’ve been there. But in this quick article, I’m going to talk about some free apps that will help you introduce some new-found power to the OS.

Though my general OS of choice is Debian Linux, it’s not practical for everything. At my office, for instance, I run Windows to make use of most of my industry’s programs (which are not cross-compiled for multiple OSes). However, using Linux so often leaves me with a frustrating desire at times for something more powerful when I am in Windows, and craving certain tools. The more I began to think about this, the more deficient Windows became to me – and I longed for a solution outside of “Well, then go install Linux!” At times, that’s simply not an option.

At the same time, many Windows users don’t know what they’re missing if they’ve never worked with Linux – things like virtual desktops and command pipes have not even begun to find their way into Windows, and I can’t understand why. The development community has certainly not ignored them, though – so I’ve taken a few minutes to outline a few tools that a Windows user can make use of to help bring some power back to the desktop.

You may have never heard of or thought about these types of tools – they may very well be solutions looking for problems to an average user that has spent much of life in a Windows world. But I promise you – spend some time with a few of them (especially the virtual desktops!) and you’ll begin to find yourself integrating them into your workflow and hopefully being more productive because of it.

As a final note – I have chosen the “portable” versions of each app wherever possible. This is because one of my absolute least-favorite aspects of Windows (and, since OS X 10.5, Mac OS as well) is the multitude of stray registry pieces every installed program seems to need and its insistence on installing everything into a privileged directory (“C:\Program Files”). Ergo, if I don’t have to install it, I won’t.

Virtual Desktops

Virtual desktops, aka Workspaces, are an integral part of pretty much every OS aside from Windows. Imagine your desktop, but then imagine multiple versions – each running different programs. You can switch between them with a button press or a click of your mouse, moving seamlessly from one suite of programs to the next. Maybe your music is on one, Photoshop or Lightroom on another, and your term paper on another with Firefox loaded up with your research tools. Or, how about a virtual machine running fullscreen, just a button-press away from your current desktop? Imagine not having to navigate through 8 different Firefox windows to find the one with the tabs you wanted to look at, or the Explorer window that’s opened to the right folder, because each instance is with the programs that you’re using it with.

Using virtual desktops means no longer being slave to a Start bar with 33 programs on it and a desktop that you’re constantly shuffling which things are open and which are minimized. Linux users have had this ability practically since time began, and Apple even joined in with its “Spaces” – one of the most celebrated additions to OS X 10.5. However, Microsoft has refused to get with the program – even Windows 8 is still missing this feature.

VirtuaWin Portable is a wonderful solution to bring this feature to Windows. It’s free, it’s fast, and it runs from a USB stick with no administrator privileges required. It’s extensively configurable, allowing you to choose and define almost all aspects of its behavior – from hotkeys to task tray. After growing used to this behavior on Linux, I’ve found it to be a vital part of my workflow – my day-to-day office work now allows me to move between multiple screens that each have a “project” going, without interfering with each other.

Command-Line Upgrade

One of my main reasons for loving Linux is the power of some of its command-line tools. Things like piping (feeding the results of one program directly into another), the powers of awk, grep and sed, and the love of my administrative life – the find tool – become a habit that is impossible to break when transitioning between OSes. Let’s face it – Windows Explorer, even with its upgraded indexing (and Powershell on the server), is crappier than even the worst file managers on Linux… and the most powerful file manager on ‘nix is the command line.

Cygwin brings back that power by installing a complete Linux API that runs in Windows, and suddenly a proper terminal is once again just a click away. It also brings with it a full complement of command-line tools that you’d expect from ‘nix, including all of the above powerhouses. It illustrates the entirety of the OS the way that Linux does, right down to pipes and streams and signals if the app is built to use it. Even cron, the event scheduler, is implemented!

While we’re on the subject of apps, it’s another place where Cygwin shines – many common Linux apps have been brought over to run natively on Windows within Cygwin, merging some of the best of Linux and Windows. For instance, Windows can have an appropriate OpenSSH server or Apache 2 server running on it, with configs that can be ported from Linux. Tools like SCP (Secure CoPy) and FTP can run natively on Windows without the need for other more complex and less secure third-party solutions.

Cygwin even has the ability to connect to other X11-servers running remotely (think Windows Remote Desktop, only better), making it an immensely powerful tool for the Linux user. Though most Windows people won’t know or care why they should run something so convoluted, it’s an added bonus to an already powerful OS enhancement.

Oh, and once you use your first cron-initiated find -> rsync from one Windows machine to another Windows machine, you may just never go back. Dropbox will seem like child’s play.

File Security

Working on a system that’s not yours can have a lot of consequences to it, but the worst of which is probably that when you lose access to that system, others gain access to the contents – both current and past. Mario has recently released a wonderful article on the functions of TrueCrypt, and I strongly urge you to take a look at it.

For everything that TrueCrypt has going for it to protect your current files, there is still the concern about having data pulled from the past. For that, I strongly recommend keeping Eraser handy on a USB drive somewhere. Eraser is a one-trick pony – it makes sure the dead stay dead (though a cautionary note that on NAND flash drives and SSDs, you need to be extra careful). Sure, you could “Secure delete” from the Recycle Bin, but that removes EVERY file in the bin – something that is not always desired (especially on someone else’s system).

The only other note here is to remember that things like MS Office will make “ghost” copies of your files while you view or edit them – even if they’re on an encrypted USB key. Always be smart and know what your software is doing – the whole OpenOffice suite comes in a portable version, too, if you need that!

Tracing and Monitoring

Sometimes, it’s nice to know what’s really going on in your system. Whether it be finding all the registry keys for a file or finding all of the things it touches on the hard drive, there are points you just need to know. Process Monitor, which has been in existence for ages but formerly as FileMon and RegMon, is just the tool for the job.

Process Monitor looks for many of the API calls originating from all running programs, and allows you to drill down to see what each process is requesting from the OS. This allows you to easily trace through a program’s request for registry keys and files to find out how your software is behaving. It’s useful for debugging, or even just for the curiosity of why/where a file has been accessed. The search filters are incredibly powerful and non-destructive, meaning you can analyze the same log for multiple things – which is fantastic for a real-time capture tool!

The other useful tool for diagnosis is WireShark, which you will see whole tutorials for on TG soon in the SysAdmin corner. Wireshark is a packet-capture and analysis tool, which basically means it listens to everything on your network and then digs through it at a very, very low level. If you’re not familiar with what could be gained from such a deep examination of your network, fear not – it’s not for everyone (even most power users) and you’ll learn soon enough how to use some of its basics right here. For now, know that it exists, know that it is powerful and know that when you want to know why computer X is not connecting to computer Y, Wireshark will likely help you find the solution – if you know how to ask it.

Down Time

Hey, we all need a break, right? Don’t judge me! Hey, I feel you judging me… ok, so maybe Wagic is a little shameful, maybe… but still…

Final Thoughts

Though not everyone has the list of grudges against Windows that I do, it’s pretty safe to say that some things could stand to be implemented a little more cleanly and directly for the power-user in all of us. Given that, these tools have helped ease my frustrations countless times when I’ve encountered a problem or need that is particularly deficient in Windows. Once you spend a little time using things like virtual desktops or the Linux “find” tool, it’s just hard to go back.

Every one of these apps is free, and many are very small and don’t even require installation. I hope that you’ll take the time to check them out, and find out what you’ve been missing.