If you’ve tinkered with Windows 10 preview much, you may have seen some of the new features beyond the UI changes. If you dig a little deeper, you would notice the new CMD console capabilities, and the new task bar alert features. Going a little deeper than that, you may notice the file system changes, and new entries in the Registry and in the CIM environment. New WMI namespaces and classes to be more specific.
But you may also have noticed that CMD and PowerShell are still separate. That a right-click on a Printer object still has a lot of redundant menu labels and overlapping of functionality. That the Registry and File system still drag along a strange way of dealing with 32-bit applications on 64-bit platforms. That “slmgr.vbs” is still relevant with PowerShell grabbing the spotlight. All that.
Is your face looking kind of confused right now? It should.
Back in the mid 1990’s, there was a lot of discussion in the IT world at large about which philosophical direction is most beneficial: Backwards compatibility or full-speed-ahead change. Apple seemed to pursue the latter, while Microsoft held to the former. To this day, you can find remnants of Windows 3.11 laying around in Windows 10 build 10166 and the latest Windows Server 10 preview. Don’t believe me? Log onto a Windows 10 machine (or VM) and start poking around.
So, enough veiled bashing. What I really want to ponder here is what a truly rewritten Windows client product would look like.
- PowerShell and CMD would be a singular component, with formatting capabilities to support fairly basic code writing.
- No more “Program Files (x86)”, not even “Program Files”, but just “Apps”. Short and simple.
- SC, NET xxx, REGSVR32, IPCONFIG, MSTSC, MSRA, SHUTDOWN, LOGOFF, SFC, DISM, ROBOCOPY, XCOPY, SCHTASKS, W32TM, NLTEST, DSxxx, CSVDE, LDIFDE, and all those crusty old commands would be combined, streamlined and replaced with PowerShell cmdlets.
- The Registry would be mountable within Explorer.
- The Registry would be hosted via SQL Express.
- No more WOW6432Node crap.
- No more SID’s. Only GUID’s.
- Active Directory would be SQL based, not JET-based.
- NTDSUTIL would be replaced with a PowerShell cmdlet.
- One file system (ReFS or NTFS, pick one)
- One scripting platform only. As much as I still like WSH, I’d have to choose PowerShell.
- WQL would be nearly parallel with T-SQL.
- Finish building out PowerShell for things like GPO management (including editing policies), application installation, and whatever else is not 100% mapped out.
- Right-click pop-up menus would be customizable
- Windows 10 would report version 10.x.x.x rather than 6.x.x.x
- WINS, NetBIOS, gone
- App-V encapsulation would be the default, not exception. A la “click once”, or similar.
- No more .EXE installers, ever. Period.
- No more “per-user” installations. Per-machine with optional per-user accessibility.
- No more vendor-controlled payload handling. Force everything into distinct locations based upon feature or function it serves.
- Most important: EVERYTHING would have a 1:1 exposure to both PowerShell and a GUI module. No command or feature would be allowed in one without the other.
What do you think? What baggage would you dump and/or replace in Windows?