Tuesday, August 4, 2015

Upgrading OEM Windows 8.1 to Windows 8.1 PRO using a Volume License Key *Without reinstalling*

So the challenge this week was....


I was working with an EDU that has a pile of HP Stream 13 Laptops that shipped with Windows 8.1 with Bing (non-PRO) that need to be added to an Active Directory domain.  They already own Volume Licensing to cover Win 8.1 Pro on these laptops.

[As a note, the HP Stream13 doesn't ship with Windows Pro in any channel.  The Stream11 does in the academic channel, but not the 13]

Now as you may (or may not) know these "Chromebook competitor" low spec windows laptops usually use a very small either SSD or eMMC hard disk and the preinstalled OS image is partially compressed to save space and effect performance.  This is not something a layman can accomplish on re-install.  Its also the reason an in-place upgrade will fail.

Now the easiest way to accomplish this is to purchase Windows 8.1 Pro Pack (SKU: 5VR-00139) and use the "Add Features" dialog in Windows 8 to input the "ProPack" key.  The system then grinds for a few minutes, reboots, and magically becomes a fully licensed, activated Windows Pro machine.

Problem is.. ProPack is only sold in the retail channel for ~$100 per PC.

Regular VLKs cannot be used in the Windows "Add Features" dialog.

Here is what I was able to ferret out...

The OS doesn't seem to need to be online to validate the "ProPack" and transform the machine.  It does to activate but that's a separate issue.

Its been my experience that a "Retail RTM" key used offline will work to "Upgrade to Pro"  I suspect purchasing a single "ProPack" key might work as well.

Once the machine is Pro suddenly you can enter a valid VLK and activate.


Hope this helps.






Wednesday, August 13, 2014

Printing Frustration Kicks In. And always in the morning...


So for whatever reason (mine was an unsigned driver update) you need to delete and recreate all your network printers.

KillAllNetworkPrinters.vbs
Const NETWORK = 22
Set objNetwork = CreateObject("WScript.Network")
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colPrinters = objWMIService.ExecQuery("Select * From Win32_Printer")
   
For Each objPrinter in colPrinters
    If objPrinter.Attributes And NETWORK Then 
        strPrinter = objPrinter.Name
        objNetwork.RemovePrinterConnection strPrinter
    End If
Next

As far as adding the printers... I know there are several maybe better ways to handle this but Ive run into enough issues that I just dump a list from the printserver(s) into a bat file ala.. 

ECHO - Installing Printers
start \\printsever1\printer1
start \\printsever1\printer2
start \\printsever2\printer1
start \\printsever2\printer2
etc etc

These are not remote operations.  If you want to do it remotely... >>>>  Google.com

Wednesday, July 30, 2014

The SoftwareDistribution Folder... Sigh...
Whats all this stuff in winsxs?

So I needed to make space on a system volume. According to my research (Yes, Mine!  Do Your Own!) This script safely cleans up SoftwareDistribution and winsxs.

Again.. Don't blindly trust some blogger.  Google an answer.

*ATTN*  The below script will delete data!  You've been warned.

@ECHO OFF

ECHO * This process deletes data forever!
ECHO * This process will delete files from: 
ECHO * C:\Windows\SoftwareDistribution and \Windows\winsxs
ECHO * Don't run this if you dont know what you are doing.
ECHO * Youll likely screw things up in a bad way.
ECHO * Renaming: \Windows\softwareDistribution to \Windows\softwareDistribution.old
net stop wuauserv
rename c:\windows\SoftwareDistribution softwaredistribution.old
net start wuauserv
ECHO *
ECHO * Check that the SoftwareDistribution Folder was created.
ECHO * Run WindowsUpdate and make sure it doesnt error.
wuauclt /ShowWUAutoScan
ECHO *
ECHO ***
ECHO *** At this point if there was an issue you could just replace
ECHO ***  the SoftwareDistribution Folder if there was an issue
ECHO *** I never had an issue
ECHO *** Continuing will delete data forever! ***
PAUSE
ECHO Deleting old SoftwareDistribution Folder (\windows\softwaredistribution.old)
del c:\windows\softwaredistribution.old /q /s
ECHO Done deleting folder
ECHO * Cleaning: \Windows\winsxs\
dism /online /cleanup-image /spsuperseded
ECHO *Done and done!
ECHO *

PAUSE
Enabling Network Discovery on Server 2008R2 (and maybe other OSes)

Feel free to Google to your hearts content to figure out why that "Turn on network discovery" option wont stay on.  Knowledge is power :)

Here is the fix.

(Yes, its old school cmd line.... Yes, Its probably easier in PS)

ECHO OFF
ECHO Setting DNS Client Service to Automatic
sc config "dnscache"  start= auto
ECHO Setting Function Discovery Resource Publication Service to Automatic
sc config "fdrespub"  start= auto
ECHO Setting SSDP Discovery Service to Automatic
sc config "ssdpsrv"  start= auto
ECHO Setting uPnP Device Host Service to Automatic
sc config "upnphost"  start= auto
ECHO -
ECHO Starting those services...
ECHO -
net start "DNS Client"
net start "Function Discovery Resource Publication"
net start "SSDP Discovery"
net start "UPnP Device Host"
ECHO - Ok, That part is done.
PAUSE
control /name Microsoft.NetworkAndSharingCenter /page Advanced
ECHO - Ok.. So *Now* you can "Turn on network discovery" in the page shown.
PAUSE

If this is helpful to you.. Cheers!

-Jeff