Deleting Windows 8.1 Wireless Profiles

I have had some pretty strange behavior after upgrading to Windows 8.1. With Windows 8, Microsoft syncs up your wireless profiles to the cloud so when you have a new device, the wireless is already setup. So that is pretty cool. However, I have been having issues with it.

For our home network, our SSID is not broadcast, like it should be on yours :). We manually add a hidden network and connect that way. With Windows 8.1, I would not be able to connect sometimes. I would then type in the name of our (hidden) SSID and the associated Password. It would then connect to the WiFi router, but the problem was it would create a new network profile each time. The way Windows 8 appears to build the name is by adding the number for the new wirless profile by checking the cloud or synched wireless profile that it could not connecting and adding one up to it. For example, if my wireless network is called Network Name, the second time I connected it would be, Network Name 2. The third time I connected it would be Network Name 2 3, and then Network Name 2 3 4, etc. . I ended up with VERY long strings for my network names. It also appears to add these to the cloud based profile no matter how often I clean up.

Ultimately, I want to figure out how to clean up my wireless profiles that have been synched to the cloud. I don't really need or want the wireless profile for the restaraunt where I had a work meeting and accidently remembered the network. In the interim I have used PowerShell to enumerate all of the profiles and delete them, except the first one (aka Network Name).

One of the things I want to do is spend more time in the command line this year. Mostly, I want to not have to lookup how to do things to interact with GitHub. So in that vain, I wrote a PowerShell script to delete all but the first wireless profile I created.

So here is the PowerShell script

$profile = "Network Name"
$total = 32
$count = 2
netsh wlan show profiles
do {
 $profile = $profile + " " +$count
 $execCommand = "netsh wlan delete profile name=""$profile"""
 Invoke-Expression $execCommand
while ($count -le $total)

Also, as part of more command line, I have created a small GitHub repository to save scripts I create. Mostly so I can grab them when I am other machines. Feel free to have at em


Chocolately and BoxStarter

I recently received a new work computer (an Asus i7 that weighs 2.6 pounds, my old laptop, a Dell M6500 weighed over 8.5 lbs, it is like I am from the future now, but I digress). One of the things that I don't like about getting a new PC is setting up the computer. I am very good about making sure all of my files are stored in the cloud (via Skydrive and DropBox) and/or is under source control. I don't fear losing stuff, it is the loss time in restoring my applications and environments that makes me crazy. I always forget to install a utility I want. Or the exact moment I NEED to remote desktop is when I remember I forgot to ENABLE remote desktop.

However, since my last PC install, the world of Windows has changed, and its name is Chocolately. Chocolatey is similar to apt-get on Linux, or the NPM package manager for Node. You can, via the command line, automatically install all kinds of applications that are available on NuGet. For example, to install ReSharprer, fire up a command prompt and type

    cinst resharper

and away we go.

You can find out more at the Chocolately site. Essentially though, you can achieve all of this goodness by staring a command prompt and pasting the following

    @powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString(''))" && SET PATH=%PATH%;%systemdrive%\chocolatey\bin

So, Chocolately solves problem the first, allowing for command line install of applications. When paired with Boxstarter however, it figures out problem the second of installing many different applications that require reboots, etc, when you are setting up a new PC. BoxStarter handles reboots and logins automatically for the user. You can type one command and be on your way!

Boxstarter also enables me to setup a URL that will have all of the applications that I want installed in a single location. For example, I created a Gist file on GitHub with all of the programs I want installed when I have a PC.


You can take a look at the file, but it is pretty basic.

I setup the Explorer options I want, for example, showing file extensions, and that provides me consistency across my installs.

I then install the bevy of browsers that all web developers want at their disposal. This is followed by setups for Git, NodeJS, Text Editor, coding utilities, etc. I even have installation for applications I use specifically at home, for example, iTunes (I know, I vomit a little in my mouth each time I use it too).

Not only can you setup explorer options, but you can also setup your Windows environment! For example, I automatically enable Remote Desktop, Setup HyperV and IIS on my development machines. I do this all from a single command and it is awesome!

Update A couple of people have run into issues if you are not using a default browser that does not support Click Once (for example Google Chrome). Matt Wrock identifies the workaround in the comments below.

It sounds like your default browser is not click-once enabled. Using START from the command line will invoke the url in your default browser. If that browser is IE or another browser that has a click-once extension, Boxstarter should be invoked. If Firefox or Chrome (or Opera or safari or anything not IE) is your default browser and you had no extension that is "click once" app aware, the behavior you describe sounds normal. Chrome is my default browser but I installed an extension from that will allow it to work with click once apps like Boxstarter's web launcher.

Just to reiterate... You need to update your default browser to support click once. Links for


Saying Hello to.... DocPad

I recently blogged about moving off of WordPress to a new blogging platform. I have been looking at several different options during this time and have finally picked one. There were three that really piqued my interest; Ghost, Jekyll with hosting on Github, and DocPad.

Each of the platforms had different things that made it interesting to me, and some things I did not like. Let's review each of them

##Ghost## Ghost Logo

I think Ghost is pretty awesome. When I started thinking about redoing my blog, it had a lot of things I was interested in. The platform is elegant. It uses Markdown for creating content, and the online editor for it is VERY nice. The other thing that really interested me is that it is all built on Node.JS. This is a platform I am definitely interested in growing my skill base.

However, despite all of these things, Ghost was not for me. In reality, is another blogging/CMS platform. The same limitations I was having with WordPress, in terms of page structure, adding JavaScript content, etc, would still be an impediment on Ghost. Essentially, Ghost is WordPress 2.0, a MUCH nice WordPress, hosted with Node.JS instead of PHP, but not for me and the things I would like to do.

##Jekyll## Jekyll Logo

Jekyll was VERY close to being what I chose. The magic of Jekyll is that it creates static HTML from templates. Essentially, you create a page layout. You can then create posts and content using Markdown to be combined with your layout and it will create static HTML. By serving up static HTML, your hosting costs quickly become much less since you are serving up static pages, and millions of web servers over the world are VERY good at that.

Jekyll also has the added benefit of being tied to GitHub and its GitHub Pages platform. I can have the fine folks at GitHub and their operations folks be responsible for ensuring my site is up. It also has some slick features where you check in your Markdown file in GitHub and your site content is automatically deployed.

However, like Goldilocks finding the porridge a bit too cool, there were some things that steered me away. First, while the automatic updating feature is slick, it is a limited subset of the Jekyll functionality. Further, Jekyll is based on the Ruby programming platform. While I find that more interesting than WordPresss’ PHP, it is definitely not as high up on my list as Node.JS.

Which brings us too….

##DocPad## DocPad Logo

Ultimately, I ended up picking DocPad. I REALLY liked the idea of static page generation. I have been around the web now that it is all back where it started, with developers putting static HTML files on a server. Who would have thunk? Of course, this is much nicer since you have templates to go and create the site. It is also a Node.JS application, which is of interest. You can also auto deploy your markdown files and have it create the static HTML in an Azure web instance after you commit and push your changes to GitHub. VERY SLICK. Of course, I pay for the CPU part of that, and only when I create content. The rest will all be static HTML files being sent by IIS.

It is really very slick how easy the site setup was. I will detail my instructions down the road. I do LOVE the Node Package Manager and the magic of package.json which allows you to quickly get a site up and running on your machine.

I give a lot of credit to the site redo to my old Skyline colleague and now Microsoft guy, Jason Young. As I was investigating my next blog platform, he published a post about migrating his site to DocPad. The gold star for Jason was taking the DocPad site and configuring Azure to compile the markdown to static HTML and then set for hosting. This is what moved me from going to Jekyll to Docpad. VERY COOL!

Also, hat tip to Erv Walter for great stuff he did in setting up the platform and UI that Jason and I have both, VERY liberally borrowed from.

Obviously, my site has a lot of UI cleanup I would like to do, I also need to edit a lot of posts, but here it is, in all of it's static glory.


Why DocPad

  • Node.JS platform
  • Templating engine to allow creation of static HTML files
  • Enable Javascript on pages
  • Auto publish from a GitHub repository
  • Markdown language for publishing
  • Lots of extensibility via Plugins

Erv Walter GitHub repository for

Jason Young GitHub repository for

My GitHub repository for


John Ptacek I'm John Ptacek, a software developer for Skyline Technologies. This blog is my contains my content and opinionss, which are not those of my employer.

Currently, I am reading Norse Mythology by Neil Gaiman

@jptacekGitHubLinkedInStack OverflowGoogle+