Wi-Fi Slow After Updating to Windows 10 Creators Update - Fixed

I woke up this morning and decided that it would be a good idea to update my primary computer to the Windows 10 Creators Update. I wasn't being offered the Creators Update via the "Check for Updates" interface, so I went ahead and did the manual process by running the Windows 10 Update Assistant. Even though this is the "manual" process its still mostly automatic, it runs though a download phase, an install phase, then after a couple reboots you're good to go.

After the final reboot I logged in. At first everything was looking good, it was only after I started an NVIDIA driver update that I noticed that the download was taking longer than usual... much longer. Like any reasonable person I went to www.speedtest.net to check things out. A measly 3.49 Mpbs download, I thought it was interesting that upload didn't seem to be affected.

I did another check on www.speedtest.net from a different computer in the house and was still getting around 80 Mpbs download speeds, this confirmed that the issue was isolated to my desktop that was just updated to the Creators Update.

Next steps? Google it of course. I have the ASUS USB-AC56 802.11ac Wireless USB Adapter so I figured it must be something to do with this specific Wi-Fi adapter. After clicking 3 or 4 different links I came across the fix in this Reddit post (https://www.reddit.com/r/techsupport/comments/64ek76/windows_creator_update_usb_ac56_terrible_5ghz/) which subsequently links to the SNB Forum (https://www.snbforums.com/threads/usb-ac68-slow-download-after-w10-creators-update-solution.38532/), this was my first visit to the SNB Forum, which is a cool place to hang out if you're into that sort of thing. User timex18 on the SNB Forum had the fix, which is to update to a newer version of the Realtek driver.

When you do a fresh install of Windows 10 you get the driver version 1030.11.503.2016.

Screen shot of the adapter driver version prior to updating

Screen shot of the adapter driver version prior to updating

As timex18 referenced, you can download a newer version from Softpedia (http://drivers.softpedia.com/get/NETWORK-CARD/REALTEK/Realtek-Wireless-USB-Network-Adapter-Driver-1030-13-704-2016.shtml). I would rather download the drivers from the source so I checked out http://www.realtek.com/ but they don't host the driver for this adapter there... and it appears as if their website has not been updated since 1999. I never feel comfortable when downloading drivers from random websites, and although this link did get me the correct file you must be cautious to click on the correct links on Softpedia and not one of the copious advertisement links that try to bait you by using the word "Download". If you've navigated the site properly you should now have the file realtek_wlan_1030.13.704.2016.zip downloaded.

Screen shot of the driver download

Screen shot of the driver download

Extract the downloaded ZIP file by right clicking on it and hitting "Extract All..." then follow the prompts. You should now have the extracted source files, in my case I stored them in my Downloads folder.

Now open up Device Manager (Winkey + X then click on Device Manager). Expand Network Adapters, right click on ASUS USB-AC56 802.11ac Wireless USB Adapter and select Update Driver.

Click Browse my computer for driver software

Copy and paste in the path where you extracted the drivers. You're probably running the 64 bit version of Windows 10 so make sure to select the Win10X64 folder, if you're running the 32 bit version of Windows 10, select the Win10X86 folder. In my case the path is C:\Users\username\Downloads\realtek_wlan_1030.13.704.2016\realtek_wlan_1030.13.704.2016\realtek_wlan_1030.13.704.2016\Win10X64.

The process should only take a minute or two.

You'll be notified when the process is completed.

Finally, check the driver version to confirm that it was updated.

Screen shot of the adapter driver version after updating

Screen shot of the adapter driver version after updating

That's it. I went back to the browser to run another test on www.speedtest.net and the results were much better, I didn't have to restart the computer, I didn't even refresh the browser page.




Chromecast Ultra Stuck at Fetching Update 0% - Fixed

I received a Chromecast Ultra for Christmas this year. I was real excited to plug it in and watch some Netflix only to be thwarted by connectivity issues. A quick search reveals that I'm not the only one who has run into this. You plug it in, power it up, get the Goole Home app on your phone, connect it to your WiFi and then it tries to update, but gets stuck at 0%. During this update period you can't cast any content. Rebooting the thing doesn't fix it, it just goes right back into the update, where it continues to fail to connect.


Things I tried that didn't work.

  • Rebooted the Chromecast
  • Reset the Chromecast to factory defaults
  • Gave the Chromecast a static IP (DHCP reservation on the router)
  • Put the Chromecast in the DMZ
  • Let it sit for 15 minutes at 0%

I was poking around the Chromecast support site and noticed that it specifically says that it supports 802.11ac on their specifications page. Huh, I wonder if that means that it doesn't support older WiFi technologies like 802.11b/g/n (spoiler, it does work on a 802.11g/n network). What this got me thinking was that the issue could be a router configuration setting. I was on a network with a Comcast router/modem combination so I opened up the configuration to take a peek. Logging into the router is easy, open up your web browser and type . The default username is "admin", default password is "password", if you haven't yet, you should take the time to set a different password to bump up your security posture just a little bit. The setting that allowed me to get the Chromecast Ultra past the updating phase was to configure the security Mode: to WPA2-PSK (AES), it was originally set to WPA2/WPA with TKIP/AES.

Comcast Router Configuration Settings

Comcast Router Configuration Settings

I rebooted the Chromecast once more after making this change and the thing updated right away! I was worried that I might have to reconnect all of the laptops, tablets, and phones connected to the WiFi network after changing the security mode, but it wasn't an issue, everything kept working.

I'm not 100% confident this setting was the silver bullet, it could have very well been that it needed to be rebooted 10 times, but give it a shot, let me know if it worked for you.

TL:DR - If your Chromecast is stuck at fetching Update 0% ry setting your WiFi security mode to WPA2 (as opposed to WPA/WPA2)



Microsoft Ignite Experience

I attended my first Microsoft Ignite this year. It was amazing! I believe there were something like 25,000 people there. The Georgia World Congress Center where the event was held is absolutely huge. Ignite took what seemed like the entire conference center, I definitely got my steps in as I commuted from session to session. Getting from building A to building C was at least a good quarter mile walk.

There were a ton of vendors on site giving away trinkets to whoever would give them a minute to listen to their spiel. Here are some of the things I gathered, I thought the solar powered LED lantern that Lenovo gave away was kind of neat.

Various odds & ends

Various odds & ends

Some vendors were giving out tshirts, I thought the SolarWinds design was the best, it's the one with the gorilla destroying the city.

The Delta Saints played an awesome show on Thursday night. This is second time I've seen them live and they definitely had the crowd hooked. It's always cool to see a band go from playing small venues to a larger event.

The Delta Saints

The Delta Saints

I'll try to get another post up soon about my thoughts of the event content. There were way too many sessions to attend in person. Thankfully Microsoft provides videos of most of the sessions that were presented at https://myignite.microsoft.com/videos

OneDrive for Business Next Gen Sync Client ConfigMgr Detection Method

Recently the OneDrive for Business Next Generation Sync Client was released. This new client brings the OneDrive sync feature out of the Office suite and into a standalone product. I'm not sure if it supported by Microsoft, but you can have both the Office integrated OneDrive for Business client and this new Next Gen client running at the same time. One of the key features missing from the Next Gen client is that you can't sync a SharePoint library using it. You can read all about the features and nuances of the client in Microsoft's post.

The installation files can be downloaded from this site http://go.microsoft.com/fwlink/p/?LinkId=248256.

Detecting the install

The installation for the new client is pretty straight forward so I'm not going to go into detail there, create a new Application, select a script type installer and run "OneDriveSetup.exe /silent" as your Installation Program. In my testing I was able to get the new client installed without any trouble (I tested on Windows 7 only, I'm not sure if my results are applicable to Windows 8, or Windows 10) using "OneDriveSetup.exe /silent" as my installation command line. You'll notice that this installation does not require administrator rights to run, nor does it show up in Add/Remove Programs. Instead the OneDrive application is installed to the user profile directory of which ever user ran the installation, it installs to %LOCALAPPDATA%\Microsoft\Onedrive\ , this also means that the installer will need to be run for each user who logs into the computer that wants to use this version of OneDrive. Given this information I thought I could use a file type detection method by using the path of %LOCALAPPDATA%\Microsoft\Onedrive\ and file name OneDrive.exe.

Seems simple enough, right? However this ends up with a failed install. Why? Because this detection rule runs in System context, regardless if you chose the "Install for User" or "Install for System" installation behavior. I was stuck on this for a while, after some searches I found that others have run into similar issues and discovered that if you run a script based detection method that it runs in the user's context if you choose install for user. I then configured a PowerShell script based detection method and used the command "Test-Path $env:LOCALAPPDATA\Microsoft\Onedrive\OneDrive.exe".

This cleared up the detection issue I was having and I was getting successfully installations when installing from the Application Catalog.

This by no means a comprehensive way to deploy the new OneDrive client, you might want to do some things like remove the old client, prompt your users to log into Office 365, or other things that would smooth the transition from the previous OneDrive client to the Next Gen client.



Dynamically Set Hostname in SCCM Task Sequence

You may be in a situation where you need to dynamically set the hostname of a machine as part of your SCCM task sequence. For a zero touch deployment you'll want to use a method that requires no interaction. In my experience I've found that using the serial number of the machine provides a decent unique string. 

A note about Windows hostname length. On some forums the maximum size of a Windows hostname is a debate, however I find it best to stick to what Microsoft has published on their site, 15 character maximum and a restriction on some special characters. https://support.microsoft.com/en-us/kb/909264

Know what platform you're deploying to

In order to support both physical and virtual platforms I set up most task sequences with separate rules to accommodate physical and virtual machines.

Separate task sequence steps are used based on the target platform 

Separate task sequence steps are used based on the target platform 

Physical Machines

Each Name Workstation has a different condition associated with it, for example the Name Workstation (Physical) step will only run if the system mode does not equal "Virtual Machine". 

Uses the task sequence variable %SerialNumber% as the hostname

Uses the task sequence variable %SerialNumber% as the hostname

This step only runs if the task sequence variable Model does not equal "Virtual Machine"

This step only runs if the task sequence variable Model does not equal "Virtual Machine"

For workstations I like to use only the serial number of the computer which can be accomplished by just typing %SerialNumber% into the Value: box. Most manufactures use a unique string that is fewer than 10 characters, however you should take some samples in your environment first, below is a screenshot of a home built PC that I use, I believe it is an ASRock motherboard. You can see what the serial number of a machine is by opening a PowerShell prompt and typing "Get-WMIObject Win32_BIOS"

On a home built system the serial number is not populated

On a home built system the serial number is not populated

VMWare Virtual Machines

VMWare VMs are a different beast, they have very long serial numbers that contain spaces. See example below

Because of the long serial number what I like to do is just take the last two characters and prefix it with "VM-" (obviously this gives you less entropy, but I haven't found the need to image many VMWare machines yet). You'll see in the screenshot below you can do some basic string manipulation using VB script syntax, we're taking the right most two characters from the %SerialNumber% task sequence variable, then adding "VM-" to the beginning.

To ensure this step only runs on a VMWare virtual machine I use the following criteria.


Hyper-V Virtual Machines

Hyper-V is similar to VMWare where the serial number is going to be long, however the format is a bit easier to work with.

Hyper-V serial numbers are 32 character string with dashes

Hyper-V serial numbers are 32 character string with dashes

For Hyper-V I take the rightmost 8 characters of the serial number and prefix that with "VM-"

In order to ensure this only runs on the Hyper-V platform I use the following conditions

Final Thoughts

There are many ways to accomplish the task when you're working with computers. Hopefully these examples put you on the right track for a task sequence that can accommodate your needs. Comment on this if you know a better way of doing it, I'd like to hear how others are accomplishing this.