Installing Windows 8 with an SSD


I recently purchased a new Windows 8 laptop and rebuilt it, copied all my stuff over, etc. It had a relatively small ~25 GB SSD drive and while it wasn’t slow to boot and login, it wasn’t that fast either. In my search for the “7 second” boot time, I came across a bunch of articles and suggestions and ended up rebuilding my laptop several times to finally get the extremely fast start time. After doing all that I found yet another tip to make it even faster, but decided it wasn’t worth yet another day to rebuilt it yet again.

First, let me give you the links I found, then I’ll give you an outline of the process I followed. How you do it will depend on the size of your SSD and how much pain you’re willing to go through.

The best guide for implementing/using an SSD with Windows 8:

Using symbolic links to move user profiles over to your main drive:

First off, I tried to cheat and do a Windows Easy Transfer to get my data and profile from my old machine to my new one. It didn’t end up working for me because WET sees your new SSD drive as the C:\ and won’t do the restore because it thinks you’re out of space. I ended up having to copy everything over and setting everything up manually. Just be aware!

So in my case I had a 25GB SSD and a 1TB HDD. I wanted the OS on the SSD (C:\) and everything else on the HDD (D:\). Because my SSD is relatively small I elected not to create a Rapid Start partition, but it’s the last piece that is supposed to make the OS super fast.

When you install the OS make sure you delete all the partitions on both disks and follow the 1st guide above fairly close. Here’s where I deviated:

  • I made a very small pagefile and moved it to the D:\
  • I elected not to keep my user profile on C:\ due to the space limitations. I also didn’t want to just move pictures/videos/etc to d:\, so I used symbolic links (more on that in a bit). Note that this has caused me a few issues, but nothing I haven’t been able to get around.
  • I left the UAC on. I’ve been burned by viruses before and keeping the UAC on is worth the annoyance for me

In addition to moving my profile using the second link I provided above (symbolic links), I also moved some other Windows directories like SoftwareDistribution and Temp. This clears up some non-essential files that can severely impact how much disk space you have. I went from having less than 2GB free on the SSD to about 9GB.

I found other suggestions for how to move user profiles to the other drive, including sysprep, but that gave me a ton of issues. I felt using the symbolic link was the cleanest way to go. Note that I also tried moving ProgramData over, but as others suggested it would it gave me a ton of problems with the Metro interface.

I tried changing the default program files location in the registry, because I was tired of changing it when I installed apps, but other things got flaky when I did that. IE10 stopped working completely. I don’t use IE normally, but I do like having the builtin browser working successfully, especially given how much MS ties into it.

That’s about it. My boot time went from about 1 minute before to maybe 5-7 seconds after. It wakes from sleep almost instantly. I haven’t particularly noticed that the shell itself is faster, but this is a new laptop that is much faster than my old one, so it’s hard to judge.

Do you have any other suggestions on how to speed up Windows 8? Any other good tips of items to move to the local disk? Let me know in the comments!

Quicktip: Windows 2012/8 KMS Activation

So you’ve got a Windows 2008 R2 domain and a KMS server that services licenses for all your desktops and servers. You’ve also got people itching at the bit to be able to install Windows 8 on their desktops or Server 2012 on their servers. And they also want to be activated. What’s an admin to do?

First off, your KMS server needs to be Windows 2008 R2 SP1.

Then you need to go register, download and install this hotfix on your KMS server:

That hotfix will require a reboot of course.

After the reboot, go to a command prompt and type: slmgr.vbs /ipk KEY <== Where KEY is your 2012 KMS key from the VLMS site

Once it tells you that the key install was successful type slmbr.vbs /ato to re-activate your server against your new KMS. It should show successful as well.

After that you can type slmgr.vbs /dlv to get a look at your KMS server.

Your description should now show VOLUME_KMS_2012_C channel. And you’re done!

And the client keys are here, in case you need them:

I’m not a project manager, but…, part 2.

As I said before, I’m not a project manager in real life, but I like to say I can play one on TV. I know enough to get by and know enough to come up with plans, timelines, resources, etc, to give my projects life and get them to completion. It’s not a skill all sys admins have as it requires thinking outside of the technology box and figuring out how your projects and deployments can affect other groups and other people. I like puzzles and can usually think my way around problems, and I think it’s helped me with regards to this kind of thing.

The newest fad these days is Agile, with its terms like Daily Scrum, Sprints, Scrum Master, Demos, Reviews, User Stories, etc. If you happen to be on the job boards there’s a good chance that when you look at PM jobs you’ll see a ton that mention Agile and what that kind of experience. I know, because my wife is a real Project Manager :).

Agile doesn’t have a PM, though. Their term for it is Scrum Master, I guess because you manage all the “scrum” and have daily calls, burndown charts, stories, tasks, and etc.

You can get an official definition of Scrum off of Wiki, here: They have a Manifest and everything:

Agile software development is a group of software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development and delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change. It is a conceptual framework that promotes foreseen interactions throughout the development cycle. The Agile Manifesto introduced the term in 2001.

The whole point of Agile and why management loves the idea of it is that you can releases out the door quicker. Let’s say you have a team of Java Developers (who all know how to develop Java, of course!) and you know you’ve got a release coming up in 3 months. With Agile you would come up with the high level deliverables and try to break those up into chunks called User Stories to make the work smaller and more manageable so that your developers can have something easy to develop against. Then you have to decide how quickly you want this work done. From my research the typical “sprints” are 2-4 weeks (a sprint is your turn around time to get a typical story done) although I’ve worked a place that did 1 week sprints, which don’t work very well in my opinion. You see, part of the problem with Agile is that it’s very top-heavy with meetings. You have to have daily meetings where you go around and every person has to say what they did yesterday, what they plan on getting done today, and any issues they’re having. Then you have to have a meeting that can last half a day where you plan all the stories you want to get done in your sprint. Then at the end of the sprint you have another half day meeting where everyone talks about or demos what they got done in the sprint. The shorter your sprints the more percentage amount of time you’re spending in meetings.

So a “User Story” or just “Story” is the term used to describe what you want to get out of your sprint or tasks. Let’s take our example of the release you want to get done in 3 months. Say your goal is to have your web site up and running. Your story might be in the format of:

“As a web developer, I want to have a finished website so that I can browse to it and give it to customers for them to order products”.

Note the 3 different parts of that Story: “As a…”. In your Stories, you need to do them from different perspectives so that everyone knows which direction you’re coming from. Another tack for this one might be “As a customer of XYZ Company, I want a website so that I can order products”.

The 2nd and 3rd parts are fairly obviously, it’s what you want and why you want them.

This story might be called your “Epic” Story, which simply means that it’s the very high level of what you want. You really don’t get requirements or needs or what it takes to get that done from that story, but then you can create sub-Stories such as “As a developer I need to get the requirements for product ordering on the web from a customer” or “As a Marketing Associate, I need a web site that advertises our products so that we can sell more”. As you can see, for this 3 month release cycle you could generate hundreds of stories. Most of which you won’t know on day 1, but as you go on and refine your products and requirements they can generate other stories that get to the nitty-gritty such as: “As a graphics designer I need to build the logo for the web site so that…”

The idea behind Agile is to do your best to break the work down into workable chunks so that everyone on your team can work on any task and throw their results in the pot. High-level stories are usually generated by the Product Owner (another Agile term, simply means the person who is requesting the product and probably providing all the requirements). Lower level stories that get done in the sprint are usually tasked out by the team in planning sessions. Then the results are demo-ed in your Retro session. The idea here is that if you have requirements to build a screen or web page, you can take it back to the Owner and team (even if it’s only GUI and doesn’t actually do anything yet) and see if they like it. If they don’t, you take it back, create a new story for it and re-work it. The example we had in training was that say the Owner said they wanted the color to be yellow, then after they saw it they wanted it purple. So next week you make it purple. Then they see purple and want it red… this can go on for as long as you let it. One of the major tenets of Agile (which I don’t agree with it at all), is that it’s cheaper to do re-work (and re-work, and re-work) than it is to just do it right the first time after planning things out using the Waterfall method.

Well that’s high-level Agile. I attempted to give it un-bias. Now for the bias 🙂

Let’s re-read that blurb from Wiki:

Agile software development is a group of software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development and delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change. It is a conceptual framework that promotes foreseen interactions throughout the development cycle. The Agile Manifesto introduced the term in 2001.

Do you see the pieces I’ve bolded there? “Software development”. The first thing I tell people is that I’m NOT a Software Developer, and I definitely don'[t play one on TV. I’m a Systems Admin, Engineer, & Architect. Pick your flavor and that’s me. I might be asked to come in to a company and “migrate us from Exchange 2007 to Exchange 2010, on a new Active Directory Forest”. That’s a long term project requiring buying tons of software or writing scripts and coming up with plans for how to architect your new AD, your new Exchange DAG’s, how to migrate PC’s over, regular domain members, etc. Give me a day and I can have a 10 page document for how it affects your environment to do this project. We’d also need to discuss HA and DR options, decide how much of that we want to throw in the mix, etc.

Your ask (or your Epic User Story) might be an incredibly easy statement, but it generates tons of work depending on the size of your environment and might end up being a multi-year project.

In a case like this, do you imagine I’m going to use Waterfall, or am I going to use Agile? Waterfall, hands-down. There’s no room for error in a project like this. You can’t simply do a lot of work and push it out and then go, “but I wanted it green”. This is a project that needs to be very precise and leaves little room for error. It also needs to be planned out to the nines. If you don’t account for the fact that at some point you’ll need to ADMT your users over and hopefully you moved your SIDHistory and hopefully they can still access their resources on FileServerA… the first user you migrate will be a huge and colossal failure. Oh, and hopefully you didn’t forget about your Public Folders and Shared Mailboxes. How did you account for those? And what if your team only has 1 Exchange guy? You’re not really at a place where you can task a story out and let everyone on your team do the work. Plus, you’ve got a team of Windows Engineers. Maybe 2 Exchange guys, 2 SQL guys, 2 web guys. They all have very specialized skills and what admin wants to be a generalist who knows just a little bit about everything? That’s the guy who ends up not moving up the ladder and just isn’t specialized enough.

This post is already way longer than I wanted it to be, but I’ll just end it by saying that I think Agile has it’s place. For software developers. You have a team of Java developers (maybe with varying levels of skill, but you get the point) and they can all mostly do each other’s jobs. You have a team of Engineers and you probably have 1 guy who’s doing all the work on the project.

New Microsoft Certification Tracks

So I, like most of us, got an email from Microsoft in the last week or so telling me that I’d attained a new certification by doing absolutely nothing. I’ve been an MCSE since 1998 on Windows NT, then Windows 2000, then Windows 2003. When they came out with the MCITP certification back in 2009/2010, I was a little annoyed since all of the products and technologies I like to show expertise on now each required their own certification. So I got the MCITP on EA, SQL and Exchange. It was a lot of tests and some extra tests I wouldn’t have normally taken, except I wanted the cert.

But back to my original point: I got an email that I’ve attained the new cert “Microsoft Certified Solutions Associate” on Windows 2008. Being always suspicious of “free” stuff I immediately put 2 and 2 together and saw that my new cert was MCSA, which has always been the lesser of Microsoft certs. I’d seen all the articles lately saying that they were completely changing the program again for Windows 8 (now 2012) so I assumed that when the new software got released that I’d have to change over. Who knew that you needed to re-up before the new one even came out??

Here’s a good article on the changes:

So now to get your MCSE (Microsoft Certified Solutions Expert) you have to decide which track you want (Cloud, SQL, etc.) and take yet another couple of exams. (And then of course take more tests when Windows 2012 comes out). Who’s ready to take more tests? Annoying!

Regardless of my complaints, here I am studying up on Systems Center, which seems like a heck of a lot of bloated software (my test environment has 8 servers, with 7 different pieces of software running) to do some very cool stuff. But who wants to go back to being an MCSA??


Windows 8 & Multi-Tenancy AD

So apparently all the new hyped-up multi-tenant features of Windows 8 that Microsoft and all the blogs have been slathering over is all related to Hyper-V and how you can use it to do multi-tenancy (MT). Their version of MT is literally only talking about how you can have multiple VM’s running in Hyper-V and how they can be completely separated on the same box (good article here ). Apparently it does this by vlan tagging – which I didn’t realize wasn’t already an option in Hyper-V. We’ve been doing this in ESX for years the exact same way.

What this means is that AD is still normal Windows Active Directory. Sure there are some nice, new, bells and whistles, and a whole new, clunky interface, but underneath it’s still the same AD it always was. This makes me sad in this day of “Cloud” and everyone having to have their own public and private cloud, the buzz words like IaaS, SaaS, etc. Still no multi-tenant AD. And for most companies and customers out there who don’t want to build a whole new AD to support a half dozen servers, we’re still back to the old ways of setting custom AD permissions on OU’s and objects. Mark me sad.

To sum up: multi-tenancy in Win 8 is just Hyper-V with vlan-tagging. Stuff we’ve been able to do for years, anyway.

Back to the drawing board for me!

Windows Server “8” Metro Interface

Can I say how much I absolutely hate the Windows Server 8 Metro interface? Who decided we wanted to manage a server like it was an iPad? In my testing it’s made things incredibly difficult to try and find where the heck everything is at. Have we truly come to a point where we want admins who just know who to swipe things on the screen?

So the Start button is completely gone. Okay, not that big of a deal, right? We’re admins from the Windows 3.1 days, we don’t need no stinking Start button. But, wait… how the heck do you open anything?

After Googling the problem myself the best answer I came up with was “jam the mouse point all the way to the bottom left of the screen”. That really doesn’t work when you’re using a remote app to get to the console, but let’s play along. What I found was that if you move the mouse literally to the bottom left as far down as you can go, you finally get this little menu to pop up.

Don’t let that little picture fool you, it’s incredibly small. And if you try to move the mouse so you can  hover over it and click, it disappears. So as soon as it comes up you just have to click on it.

What it gives you after that is this wonderful Metro screen:

This screen lets you see the roles/features you have installed, IE, and finally(!) the Control Panel or My Computer. I’ve yet to find the command line on the interface, but they do have Powershell pinned to the taskbar and you can do most everything through there if you need to.

That’s as far as I’ve gotten so far… stay tuned!