Thursday, December 18, 2014

Splatting in PowerShell

I recently discovered the wonderful technique of "Splatting" in PowerShell. This technique shortened a script I had been working on quite a bit and made it that much easier to understand and re-distribute. An example of Splatting is below:

This is something I'm now incorporating in my current scripts that require email functionality thanks to the Send-MailMessage cmdlet in PowerShell.

Tuesday, September 2, 2014

My Road to MCSA Series | 70-410 Edition, PT. 3 - Storage Virtualization

With just a little over two weeks in so far, I'm pretty confident that I understand most if not all of domain 1, Installing and Configuring. I wanted to check in and post a quick update on my progress.

For additional hands-on practice as I'm reading, I setup one of my lab machines to simulate Storage Pools and Storage Spaces in Windows Server 2012 R2.

To set up the lab, I first created six 5 GB VHDs on my lab host machine using computer management, numbered VHD1-6 to represent six physical disks that I would attach to my VirtualBox guest VM. Once the six drives were created, I opened the settings to my VirtualBox guest VM and added a SAS adapter. Windows Server 2012 R2 seemed to have no problems picking up on these new VHDs posing as physical disks.
Remote Desktop View of Storage Pool Available Physical Disks
From this point, I created my first Storage Space named "SVR-Lab2_Pool1" and added all available physical disks to the pool accepting defaults using the wizard. I now have a 25 GB Storage Space created from the Storage Pool consisting of the six physical drives. I was easily able to create virtual disks from here to quickly provision storage which I plan to use later for practice with file and folder permissions.

Just to toss in some PowerShell, I also used PowerShell ISE to create a Storage Pool using built in cmdlets.

One term that was used that initially tripped me up was primordial. At first I was having trouble understanding this term fully but found a really great explanation here. With the further explanation and visual aids, the easiest way for me to remember what primordial means is to think of JBOD (just a bunch of disks). Being a huge fan of virtualization anyways, this part of the lab excercise has been enjoyable and fairly easy once I understood it's use.

That's all I have for now and I'll continue to post more as I progress.

Avoiding the Unnecessary: The Importance of Testing Before Deploying

Testing a solution before deploying the solution helps you avoid the unnecessary pain and embarrassment of dealing with a post-implementation failure. Thankfully I learned this early in my career. This sage advice was passed down to me by a more senior co-worker. I was struggling to understand why my hastily constructed plan wasn't working how I imagined. My fellow IT Pro pulled me aside and asked,

“Bill, did you test this solution before deploying it?”

N00b mistake. I became red-faced and quite embarrassed as I admitted that I had not. The senior engineer and I had a talk about the importance of testing solutions before putting them into production. I've kept these valuable lessons in mind ever since.
“Bill, remember the bad 7 Ps. Piss Poor Planning Promotes Piss Poor Performance.” and they weren't done, “But that’s not all! Also remember the good 7 Ps. Proper Planning and Practice Prevents Piss Poor Performance.”

Powerful words, easy to remember, full of truth.

I’ve seen my fair share of the bad 7 Ps. The first 3 Ps (Piss Poor Planning) are often the result of an IT Pro’s bravado or machismo when working on projects. This can be witnessed in the verbal and nonverbal actions with both new and seasoned IT Pros. Trying to impress the boss, team members or even the customer by being aggressive about “being right” will often lead to these three Ps becoming apparent when deploying an untested solution into production. That’s when the last 4 Ps (Promotes Piss Poor Performance) typically are noticed by the boss, customer, or team members. And it very rarely ends well for anyone involved.

Realizing success with projects and client relationships (successful customer relationships? Or some other form of customer relationships? Would using another adjective there make more sense? I’m not sure.) requires you take the time to gather requirements by first listening to the customer, understanding the problem(s) they need solved and formulating an effective solution. But it doesn't just stop there. You must also document what worked and didn't work in order to prevent future mistakes. How else are we to learn future prevention if we don't document our current struggles along the way?

That’s why we must always strive for the good version of The 7 Ps: Proper Planning and Practice Prevents Piss Poor Performance. When you take the time to plan out a solution, you will save time, save face AND look like an IT superhero! This is where I like to show some gusto. Planning, testing and verifying, for me, is like getting to play with the toys before buying them. This allows me time to figure out if I like them enough to buy them, that I’m willing to share said toys with friends and that my friends will like them too. Everybody is happy.

But I'm also a realist and know that not all projects we IT Pros are thrown into can be planned and tested 100% of the time. Often we are required to do IT now, best practices be damned, and document it later. Don't forget about budget concerns. It’s an ongoing struggle that we have all found ourselves in more times than we wish to admit. I know I've been there, done that and have the T-shirt. With any positive process though, the change can be difficult to adjust to at first. However, the more we practice positive processes such as planning, testing, and documenting, the  easier they will become with time. We have to first make the change by following the 7 Ps.

To quote The A-Team hero leader Hannibal, “I love it when a plan comes together.” The A-Team practiced the 7 Ps.

photo credit: bon_here via photopin cc

Monday, August 18, 2014

My Road to MCSA Series | 70-410 Edition, PT. 2 - Lab Setup

The Lab

I've completed setting up a small test lab using a few tools that are my personal favorites. Below is a sample of what that lab looks like from a 10,000 ft. view:

As you can see from the above configuration, this is a really simple setup. This configuration appears to be sufficient enough for now based on what I'm reading and learning. I have configured one VM guest as a core instance and the other as a full GUI instance, a fully functional, enterprise grade firewall router virtualized, which properly segments and isolates my physical network from my virtual network.

Something that has never worked well for me in the past with Virtualbox has been networking. This is where VMware Workstation shined for so long. Well, I can setup a robust lab using Virtualbox and pFSense. It took me only a few minutes literally to have this setup and configured, the ISO is less than 100Mb, and with it being FreeBSD based, there's really not a lot of overhead or resource demand.

I like to have remote access to these VM guests too so I can study with them even when I'm not in the lab. That's where Pertino comes in. Each VM guest has (and will have) a connection to my Pertino SDN. This will enable RDP access, and even RSAT access from my Windows 8.1 testing laptop.

To build this lab environment for yourself, here's a great guide to follow (has to be the best, most complete guide to setting up a virtual lab than I have seen in a long time!). You will want to obtain the following software / tools:

As of this evening, my lab is setup and ready for activities.

My Road to MCSA Series | 70-410 Edition, PT. 1

I'm starting out on my very first Microsoft Certification path. I've chose to pursue the MS 70-410: Installing & Configuring Windows Server 2012 R2. This is a very big deal for me, as I've been waiting for too long to get this certification, and it's the first certification I have pursued since I last obtained my CompTIA Security+ certification. That was sometime in 2009.

The reason I chose to to pursue a track focusing on Server 2012 R2 is because it's my favorite Microsoft server OS, mostly because I enjoy PowerShell and Hyper-V 3.0.  At one point, I was dabbling in MS 70-680 (Server 2008 R2) but that OS is getting long in the tooth, and I didn't see much value in pursuing it any further. I still have the book, use it for reference at work because I still have a Server 2008 R2 system in production but all new servers I have deployed in the past 6 months have all been Server 2012 R2.

So, you may be wondering, "Well, what are you using and what is your plan to get this certification?".

I'll tell you.

After much consideration, I decided to drop $234 + shipping on the CD + Voucher option that Transcender offers. The reason why I chose this as an option was because I'm used to practice drills coupled with reading and labs. I also wanted to save a few dollars on the Prometric voucher, and, something that is a huge plus for me since I've never attempted a Microsoft exam before, is that they have a 6-Months Pass the First Time Guarantee. I didn't see any other vendors offering that kind of guarantee. I don't expect to have to use it but it's reassuring to say the least. Obtaining the material was smooth, as I did not have to wait long after purchasing it to begin using the practice questions. Transcender allows you to download them after purchase.


As far as books go, I've seen great debates and conflicting reviews on which books to get. Here are the two books I'm sourcing from:

You can still use the 2012 books you have, there's no need to go out and buy new books. Some people will say you must do this, but here's the dirty little secret. Head over to TechNet, and look at this list. Once you have done that, head over to the Microsoft Virtual Academy and watch this series. Which brings me to my next couple of resources:

Video Training

I'm a huge fan of Pluralsight videos. This is the same company that used to have the old TrainSignal training series. The videos are of high quality and easy to follow. There are a couple of other resources, CBT Nuggets being one of them, which also have high quality series. QuickCert offers training with labs too, but are considerably more expensive. It's a great choice though if you don't have the ability or access to equipment and software to study for this exam.

The next resource I strongly recommend taking a look at if you are on a budget, are the high quality resources of are those of The Microsoft Virtual Academy. This is a hidden gem, not only for certification review but for everyday IT from topics geared towards the new tech to more advanced topics geared towards refreshing skills of the seasoned IT pro. Another hidden gem that can be of use is the MSDN Virtual Labs resource on TechNet.

Additional resources

If you haven't already done so, obtain trial media for Server 2012 R2 from DreamSpark or directly from TechNet Evaluation Center. DreamSpark gives you a substantially longer time to build labs and TechNet limits you to 180 days. This is where virtualization can be helpful. Build a single image, take a snapshot, then all you have to do is just get a new key. Makes building a lab much faster and easier. Also, LEARN 2 POWERSHELL!! Just going through the first few questions in my practice deck contain a lot of powershell cmdlet based questions. Get-Help [cmdlet] -showwindow , do it now!

Training Regime

My goal is to hit at least 10+ questions a few times a day on each domain, and in a few weeks start going through practice exams. I will slowly build up while also reading material and practicing concepts on my few virtual machines and an old box I have at home. I haven't scheduled my exam yet but being optimistic, I would like to take it mid-November. 

Final Thoughts Before I Begin This Journey

I think I may post regular updates and make this a series of sorts, document what topics I'm struggling with and what I have learned along the way. The test may not be as hard for me as I'm thinking, but again, I have not sat for a Microsoft exam before. This is truly a new frontier for me and I hope that it opens some new doors in my career. This is something I have been meaning to do for a long time now but have had too many excuses. Some have been just plain fear of failure, others have been time and lack of funds. Recent life events have removed that last excuse from the equation, and now all I have left to overcome is the fear of failure. 

I will not fail.

Sunday, May 11, 2014

VPN The Pertino Way or How I Stopped Worrying and Learned to Love Software Defined Networking

I've been meaning to write about this for some time now. How many of you out there have had problems with traditional VPN clients & hardware in the past? My guess is quite a few of you reading this have at one point or another. I've struggled with enough of them that I'm not a huge fan of VPN clients, and preferred, until now, hardware VPN's. Up until last year, I was also not very familiar with Software Defined Networking (SDN), but I did understand the power and benefits that this technology represents to the world of IT.

My attitude towards VPN's has changed since then. Let me tell you why.

About a year ago I was working with someone who was looking for a way to stay connected to their office while not having to mess with a traditional VPN connection. My options were pretty limited at the time. I suggested using something like LogMeIn (which I will never recommend again, but that's a topic for another post) and TeamViewer, but these options required more interaction that what they, the client, wanted. They were also not willing to introduce yet another app to enable remote access. The client was also not very IT savvy and wanted everything done the easiest way possible. Well, for the project, I had to settle for a old PPTP VPN with a set of custom instructions to use built in Windows 7 tools. It worked, but was still a bit of a pain. You can probably guess the support calls I would receive from time to time. I was not happy with the solution, and I hated to set it up that way but the client understood and worked with it.

I'm always seeking out new ways to do things or products to try. One day, I was talking with some other IT professionals on a forum and was introduced to a new product called Pertino.
It was explained to me that once I read up about it and tried it out, my view on VPN connectivity would be forever changed.

And it was.

According to their site, the Pertino service gives you access to LAN like connectivity, a private address space, end-to-end security, optimized and easily managed VPN. It utilizes the Elastic cloud infrastructure, Network Virtualization, Software Defined Networking, Network Service Virtualization with real-time organization and orchestration. Pretty impressive right?

I reached out to Pertino to get setup with an account to try it out both at home and at the client. The setup was pretty straight forward & easy to understand. There was very little for me to do other than install and create a network. So I added a few devices at home and started some basic tests. I connected a few different devices. I added my Android devices (Motorola Razor M & Nexus 7 2013), added a laptop and even my Server 2012 R2 home server that I use for testing and exam practice. The installation process was consistent across all devices. That's the very first thing I noticed.

After setting up a few devices, I decided to do a little testing. "What do I typically use a VPN connection for?" I asked myself. So I proceeded to fire up the new Microsoft RDP app for Android (TechNet Article), and with some minor hiccups mostly related to DNS resolution I was able to use RDP while connected with Pertino. Now, since then, there is a little bit of integration now with the Pertino app for Android which allows you with a few presses on my tablet I'm in. It was just like if I were using LMI or TeamViewer, but at a fraction of the cost, a fraction of the setup time, and a fraction of the trouble, which was next to none.

Okay, so I can RDP, big whoop right? Hold the phone. So I asked myself another question, "What if I don't need to RDP? What if I just want to access a file share or do some PowerShell remoting or look at an internal SharePoint site? Does it work then?" To my shock, it did. At a fraction of the cost, a fraction of the setup time, and a fraction of the trouble. Okay, now I'm a little impressed.

No, scratch that, I'm VERY impressed. This is what SDN is about. Ease of use. Ease of Management. Ease of Deployment. Where has this product been all my life?

I introduced this product to the client who was also intrigued by the ease of use. Unfortunately due to circumstances beyond my control I was not able to see the project through 100% but the MSP that took over was intrigued after talking with me about the product and took my notes from the initial trial. They were planning on continuing the testing at that client site.

Pertino is a GREAT product with GREAT support. I have not yet been disappointed with the level of response I had to questions or suggestions about the product. The team that develops and promotes the product really do care about what their users say and have went above and beyond to continually improve the product. Many of the features that have been recently added were the result of user feedback. Not many companies do that these days. So, I tip my hat to the team at Pertino. Keep up the good work. There haven't been too many products lately that I have been so eager to promote.

I recommend any small business or even home user that wants to create an easy to use, cost effective and well supported VPN product to check out Pertino. Using it my make you think twice about setting up VPN connectivity for a distributed workforce in a whole new way.