Monday, December 28, 2015

2016 Subaru WRX - Replacing the Starlink Head Unit

I've spent a lot of time and WAY too much money on this project, so I figured I might be able to help someone else out with their 2016+ WRX Premium or Limited trim vehicle in replacing the head unit with an aftermarket one.

With the 2015 and previous year models of the WRX, it's extremely simple to replace the factory 2DIN radio that's in the car. Couple of harnesses from Metra, crimp everything together, and screw the new 2DIN aftermarket unit right into the dash. Pop the trim piece back in place, and you're all set.

With the 2016's, the Starlink unit changes EVERYTHING.

Before I begin the instructions, I'm going to provide a parts list of everything you'll need to provide the various functions.


  1. Any aftermarket 2DIN radio / navigation unit of your choosing.
    1. I chose the Kenwood DDX9902S. It supports both Apple CarPlay and Android Auto. I have an iPhone 6S Plus, so I wanted to take advantage of the cool CarPlay features.
      CRUTCHFIELD: DDX9902S (Click Here)
  2. For factory harness integration, use the Metra 70-1761 harness.
    1. This is just a standard issue integration harness. Contains 2 separate ones, for whatever reason, Subaru and Toyota do it this goofy way. They work well though.
      CRUTCHFIELD: Metra 70-1761 (Click Here)
  3. For the 28-pin advanced feature harness, use the AutoHarnessHouse 28-pin.
    1. This harness integrates the advanced functions, which includes the reverse camera power, the reverse trigger (when you put the car in reverse), the reverse camera signal, and the steering wheel button integration. You'll only use about 8 of the pins, but you'll want to invest in this harness.
      AUTOHARNESSHOUSE: 28-Pin Integration Harness (Click Here)
  4. For the steering wheel controls, I used the iDataLink Maestro SW.
    1. This module is flashable with different software. You can use the utility on their website to flash it with your car's specific parameters. It takes about 5 minutes to flash the module, and you wire it in with the 28-pin integration harness and the head unit of your choice to retain the steering wheel controls.
      CRUTCHFIELD: iDataLink Maestro SW (Click Here)
  5. To retain the reverse camera, you need to provide 6 volts DC to it.
    1. The Subaru reverse camera accepts 6v DC to power it. Without some sort of wizardry, you're only going to find 12v DC from the car. In order to step-down convert 12v DC to 6v DC, you'll need an adapter. This one is small, and works well.
      AMAZON: 12v DC to 6v DC Step-Down Converter (Click Here)
  6. To mount the aftermarket 2DIN head unit, you need a mounting kit.
    1. I used the Metra 99-8905B. It's a 1 or 2 DIN mounting kit, and will fit most aftermarket head units for use in a Subaru WRX. Worked great for me, mounts exactly as expected.
      AMAZON: Metra 99-8905B Mounting Kit (Click Here)
  7. You'll need a powered antenna adapter in order for your AM/FM radio to work on your aftermarket unit.
    1. I used the Metra 40-LX11 to integrate the factory powered antenna.
      AMAZON: Metra 40-LX11 (Click Here)
  8. If you want to retain the factory USB port in the center console, you'll need an adapter.
    1. I used the Metra AXSUBUSB. It's basically a Subaru factory USB integration piece. It's plug-and-play, very simple.
      AMAZON: Metra AX-SUBUSB (Click Here)
  9. You're going to need a few genuine Subaru parts in order to make your aftermarket 2DIN radio fit correctly.
    1. Once you remove the 2DIN Starlink unit, you won't have a dash trim piece. The factory plastic trim around the radio is actually mounted directly to the Starlink head unit. You cannot separate the plastic trim from the radio itself, so be prepared to order a replacement. Call your nearest Subaru dealership and have them get the following parts for you:
      WRX Carbon Fiber Trim / Dash Cover
      SUBARU: Stock Code 66065VA000, Figure # 66065O, Model Year 2015

      WRX Center Console Vent Cover
      SUBARU: Stock Code 66065VA000, Figure # 66065U, Model Year 2015

      WRX Plastic Tapping Steel Screws, ONLY if needed (if you lose screws)
      SUBARU: Stock Code 66065VA000, Figure # Q500013


This one's a bit of a challenge, I'll be honest with you. You're going to need:
10mm socket
3/8" Drive Ratchet
3/8" Drive Extender (at least 12")
Wedge Tool to pop plastic out

The procedure:
1. Remove the center console vent cover underneath the engine display and the climate control display. This can be done by wedging in between it and the flat level plastic under the display and pulling back towards you. Be gentle and take your time, because there are harnesses connected to the hazard switch and the multi function button for the engine display. Disconnect them, and remove the vent cover.

2. Once the vent cover is removed, it exposes 2 10mm bolts that mount the radio from the front into the center console. Remove those 2 10mm bolts and set them aside.

3. You will need to drop the glove box out of the passenger side, which exposes the glove box frame. To do this, press firmly on the sides of the glovebox section that lowers down, which will push in the stoppers from keeping it going down all the way. At this point, it will swing down in full motion. Be careful though, because on the right hand side, there is a "fake hydraulic pump" that causes the glovebox to drop slowly (preventing dropping on your passenger's knees) - this pump also need to be unclipped. Set the glove box aside.

4. On the left hand side of the glove box frame, there is a roughly square shaped hole. If you peek up in there, you can see the right hand side 10mm bolt on the back of the radio that mounts it to the center console from the back side. Magnetize your 3/8" 10mm socket, and use the extension to reach the 10mm socket into the hole and remove the 10mm bolt. This is bolt 3 of 4. If you do not magnetize the socket, you risk dropping the 10mm bolt into the dash cavity.

5. On the driver's side, peek up under the steering column where there is a gap between the steering column and the knee guard plastic. You'll see the same 10mm bolt on the left hand side of the radio. It'll take a little longer to get it out, but just inserting the extension with the 10mm socket on there will get the bolt out. Be patient, it'll probably take you 5 minutes to get it done, but this one is bolt 4/4, so you're almost finished. Make sure this one is also magnetized, because you'll risk dropping this one in the dash cavity too.

6. Now that you have all 4 10mm bolts removed, it's just plastic clips between you and removing the radio. On the top of the radio on each side, there is a clip that goes into the plastic center console frame. Popping those out will break it loose, and from that point forward, just use any plastic wedge tools that you have to work your way around the radio, freeing it from all of the plastic clip mounting points around it.

Photo Credit: NASIOC, User DJFRED

7. Once you break the Starlink radio free, you have to worry about the following items on the back of it before you go yanking it out of there. Be gentle, take your time.
-Radio harness #1 - has power, accessory, 2 speakers, illumination, etc.
-Radio harness #2 - has 2 more speakers on it.
-28-pin advanced feature harness - has reverse cam, steering wheel controls, bluetooth mic, etc.
-Factory ground for the radio
-Sirius XM antenna
-AM/FM Antenna
-USB Port Harness
-Climate Control Harness

Photo Credit: NASIOC, User DJFRED

8. Remove the climate control pod from the 2016 Starlink trim. There are 4 screws on the back of it (these are the plastic tapping screws part # Q500013 from Subaru if you drop / lose / break any).

Now you have the Starlink radio all as one unit (plastic trim, buttons, touchscreen, head unit, etc.) - set this aside for a rainy day, or if you want to sell it so some poor person. My personal opinion, the Starlink unit is AWFUL and should never be used again.

Photo Credit: NASIOC, User DJFRED

At this point, you can begin connecting your wiring harnesses, etc. and reassembling your radio. You're going to take the climate control pod and mount it to the 2015 WRX trim piece 66065O mentioned earlier in this article the exact same way it was mounted to the 2016 Starlink trim piece. See example:
Note: I am missing 2 screws in this image. Those are the Q500013 screws.

Once your aftermarket radio is assembled and mounted in the car, it should look like the following picture. There are 4 screws, they're exactly like the 2015's. Please note that there are 2 screws in this picture that are NOT visible, but they are at the bottom of the radio where the plastic meets up with the guide bar.

The basic harnesses (Metra 70-1761, Metra 40-LX11) will get you up and running with USB, AM/FM Radio, and Bluetooth connectivity to your phone. Don't forget to run the bluetooth microphone in order to place and receive calls.

Now, on to the advanced features...

Before I get started with that, we have to establish the pinout on the 28-pin factory harness in order to understand what each pin does, and where you need to connect your aftermarket equipment.

Photo Credit: NASIOC, User DJFRED

HUGE thank you to DJFRED for putting this together. It's accurate, and it saved my life, made everything a LOT easier. Match up your pinout on the 28-pin integration harness from AUTOHARNESSHOUSE to this one, and everything should be pretty easy.


For the reverse camera, there are 3 components that you need to be concerned about.
1. Reverse trigger (lets the head unit know when the car is in reverse)
Connect pin # 2 on the 28-pin harness to your reverse trigger wire on your head unit. On the Kenwood DDX9902S, it's actually a standalone wire coming out of the back of the head unit.

2. Reverse camera power.
For the reverse camera power, I used the accessory wire on the Metra 70-1761 harness for 12v DC positive to the input side of the SMAKN 12v DC > 6v DC converter. This ensures that the reverse cam only gets power when the car is running.

For the reverse camera ground, I just tapped the 12v DC ground / black wire into the ground for the Metra 70-1761 harness. With these two wires, you have power to the reverse camera at all times when the car is on or in accessory mode. You can actually trigger power to the reverse camera differently, and I can research that for you, but be warned that there will be a delay when putting the car in reverse and waiting for the reverse cam to come to life.

The 6v DC positive wire connects to pin # 11 in the diagram, and the 6v DC ground / negative wire connects to pin # 20 in the diagram.

3. Reverse camera signal
I actually trimmed down a standard RCA cable, and used the positive lead from it, and connected it to the back of the Kenwood unit. Be warned here though, I did not ground the video RCA, I only used the positive lead, which actually creates interference on the video. I'll re-wire this when it's a little warmer outside, but for now, it works pretty good. See below for an example:

The Kenwood DDX9902S has customizable guide lines (yellow, orange, red, green).


Steering wheel controls are actually pretty straightforward, and they're quick and responsive. I'd even say it's quicker than the factory unit at responding to input.

To integrate steering wheel controls...

1. Flash your iDataLink Maestro SW with the 2016 WRX > Head Unit combination software.
Go to and install the ActiveX Plugin.
Go to and create your account.
Go to and login, and flash your Maestro SW with the correct firmware.

This requires Windows 7 and Internet Explorer. Newer OS's are not supported. Takes about 5 mins on a Win7 machine.

2. Wire up the iDataLink Maestro SW to the 28-pin integration harness and your aftermarket radio.
For mine, it was as follows:
This is the black 7-pin harness on the SW.

The blue harness on the SW only connects 1 wire to the blue/yellow remote wire on Kenwood.

After you get those bits wired up, and you've flashed the Maestro SW with the correct firmware, everything works fine, with ONE EXCEPTION.

On the current flash on mine, which was 2016 WRX > Kenwood DDX9902S, there is ONE function that does not work. Audio volume DOWN actually does Audio volume UP. So I have both of my volume keys going UP right now. Kind of frustrating, but I'm sure they'll fix it and I'll be able to reflash the SW. Everything else (mute, next track, previous track, Siri, bluetooth call, bluetooth hangup, etc.) works fine and they are quick to respond.

Once you've connected all your harnesses and secured everything, you should be in a fully functional state. I didn't attempt to retain the factory microphone, because it has an amplifier, and I'll probably tear my eyes out long before I get it working smoothly. I'm just sticking with the Kenwood microphone for now. I'll mount it in my gauge cluster.

Any questions, send me an email or ask on this post.

Good luck!

Saturday, July 25, 2015

How to Flash the Nexus 6 with a System Image

I had to do some research on how to do this myself, which took a little time, so hopefully I can save some people some time. Follow the below steps on how to install the ADB tool, and flash your Nexus 6 with any image of your choosing.


This is essentially like taking the Nexus 6 out of the box the first day you got it. Proceed with caution. Back up your stuff. I warned you.

1. Enable Developer Mode on the Nexus 6

If you haven't done this already, go to:
Settings > About Phone > Scroll to bottom > Tap on Build Number quickly until it says "You're a developer!"

2. Enable USB Debugging and OEM Unlocking

Settings > Developer Options > Turn ON
Developer Options > OEM unlocking > Turn ON
Developer Options > USB Debugging > Turn ON

2. Download 7-Zip File Manager

Install it, x86 or x64 doesn't matter, just pick one appropriate for your Windows operating system.

3. Download the Google USB Drivers

You'll need a device driver for your Nexus 6 for the Windows machine. It can be found here:

Extract the .ZIP file, and in the "usb_driver" folder, right click on "android_winusb" and select "Install." - Accept any prompts.

4. Download the ADB Tool (used for manipulating the phone via USB)

I'm hosting the tool on my Google Drive:

Originally obtained from xda-developers at:

Run the EXE, install the ADB tool, select YES for system-wide. Do NOT install the USB drivers, because you've already installed the Google official ones.

5. Download the Nexus System Image of your Choosing

Google hosts varying Nexus system images for their devices at:

Right now, I'm running Lollipop LMY47Z, the factory image for Android 5.1.1 on my Nexus 6. It's the stable release, with Android M coming in Q3/Q4.

6. Extract the .TGZ file you receive using 7-Zip.

I created a directory called C:\Shamu. The Nexus 6's internal name was Shamu at Google, so that's what I named the folder.

I extracted all of the TGZ contents using 7-Zip into this directory. It'll contain a .ZIP file too, which you'll need to extract the contents of. Make sure ALL of the contents are in one directory. I put everything:


All of this should be in the C:\Shamu directory.

7. Let the flashing begin

  1. Plug the Nexus 6 in via USB
  2. Open an command prompt in Windows. (Start > Run > CMD)
  3. Change directory to C:\adb (do this by issuing the "cd C:\adb" command.
  4. The command prompt should now say "C:\adb>"
  5. Issue the command "adb reboot bootloader"
  6. The phone will reboot into the bootloader, it'll look like a bunch of text.
  7. Issue the "fastboot oem unlock" command - this will reboot the phone, unlocking the bootloader. You'll see some text at the bottom turn yellow, saying the device is UNLOCKED.
  8. Now that the bootloader is unlocked, you need to issue the following commands in order to flash each image to the device...
    1. fastboot flash bootloader C:\Shamu\bootloader.img
    2. fastboot reboot-bootloader
    3. fastboot flash radio C:\Shamu\radio.img
    4. fastboot reboot-bootloader
    5. fastboot flash system C:\Shamu\system.img
    6. fastboot flash userdata C:\Shamu\userdata.img
    7. fastboot flash boot C:\Shamu\boot.img
    8. fastboot flash recovery C:\Shamu\recovery.img
    9. fastboot erase cache
    10. fastboot flash cache C:\Shamu\cache.img
  9. You've now completed all flashing, as well as erasing your device. Now it will have the factory image of your choosing on it. Don't forget to re-lock the bootloader when you're finished:
    1. fastboot oem lock
  10. You'll be back in the bootloader, with a locked bootloader at this point. All you need to do is issue:
    1. fastboot reboot
At this point, the phone will boot into the Android image of your choosing, and it'll be ready to be setup like a factory-fresh Nexus.


Thursday, May 21, 2015

A Struggle With Wireless - An Open Letter to Wireless Carriers

I'd like to share my interesting wireless experience with you. I'm hoping that this post gets some visibility, and someone from the wireless industry will read it and this will bring some light to how poorly the customers in the industry are treated. I'm not talking about walking into a retail store and having an employee be rude to you, I'm talking about how the industry as a whole treats their customers in general.

A little bit of background...

I've been around the wireless industry for a long time. I started working at U.S. Cellular in the beginning of 2010, and I watched the smartphone revolution take place with the explosion of Android on Verizon and the explosion of iPhone on AT&T. Those two platforms sparked a huge revolution in the way people use their devices, and the kind of demand for wireless infrastructure that comes along with that revolution. The new platforms brought applications with them that were hungry for data, and the users of the applications were hungry for quick response times and application usability, which means 2 things... Users are going to use MORE data, and they want it to respond quicker. They're going to need a higher throughput or bandwidth. That's when EVDO became increasingly important for the CDMA carriers, and HSPA became increasingly important for the GSM carriers.

We eventually reached a point where EVDO and HSPA weren't cutting the mustard anymore either. Enter LTE, the low-latency, high-throughput technology that we know and love today. I'm one of the users that demands LTE service, because I use my device for everything. I use it for email, collaboration, calls, texting, browsing, taking pictures, reading the news, etc. I'm a power user. My cellular device is probably the most important one I use every day.

When I left U.S. Cellular, I went to work for Iowa Wireless, which is an affiliate to T-Mobile. They are a GSM carrier that provide T-Mobile services in Iowa. Des Moines, Iowa is the only market that's actually owned and operated by T-Mobile themselves. I was a field technician for Iowa Wireless, so I got a lot of visibility into how cellular equipment actually operates. I was responsible for about 20 cell tower sites, and my job was to ensure that the sites were fully operational every day for power, availability, and reliability. This gave me a unique view into the things that customers don't see every day, the actual back-end issues that can go wrong with a cellular network.

I was somewhat unhappy with my job at Iowa Wireless, because I wasn't impressed with how they were handling the transition to newer, faster, more efficient cellular services. It seemed like there was a mindset of "people don't need that kind of data service." - being a power user, this is definitely NOT what I want to see.

So there you have a little bit of background as to where I came from, and how I came to know about the wireless industry. I don't claim to be an expert, but unfortunately, most of the time I can outwit the in-store employees of just about all of these companies. I've seen billing issues and why they happen, I've seen device issues and why they happen, and because of Iowa Wireless, I got a chance to see network issues and why they happen. I'd like to think I have an end-to-end understanding of how these things work.

My history as a wireless customer...

While working for U.S. Cellular, I was part of an employee phone program, so we got deep discounts on the phone service. I never really questioned it, because my service was good, and it was incredibly cheap. It wasn't until I left U.S. Cellular that I started looking elsewhere. Here's a little bit of history for me as a wireless customer:

Carrier #1 - U.S. Cellular
Start Date: ~2006
End Date: November 2011

Devices Used on U.S. Cellular:
Motorola V810
Motorola V323i
Samsung Acclaim
LG Optimus G
HTC Desire
BlackBerry 8330
HTC 7 Pro
HTC Merge
Samsung Mesmerize
There's probably more, I was a beta tester as a service tech...

Why did I start service with U.S. Cellular?
I got my first cell phone when I was in high school. I was 16 years old at the time (2006).

Why did I terminate my service with U.S. Cellular?
I was hired at Iowa Wireless, and I was no longer really required to have service with U.S. Cellular, so I began looking elsewhere for service. I ended up picking AT&T as my provider for my personal device, and I'll explain in the next section why.

Carrier #2 - AT&T
Start Date: November 2011
End Date: March 2015

Devices Used on AT&T:
iPhone 4S
iPhone 5S
Nexus 4
Nexus 5
Nexus 6
Nokia Lumia 920
Moto X (2014)

Why did I start service with AT&T?
I started service with AT&T because I had just left U.S. Cellular, and I was looking to see if there were other options. As a power user, I refused to get service with Iowa Wireless, because even though I was working for them, at the time, they still only had EDGE networks deployed in Dubuque where I live. I required something with higher speed data, and at the time I became an AT&T customer, they had already fully deployed HSPA in Dubuque, which was about a 7 to 8Mbps download rate, which is decent, and was great at the time. I also liked that I could start taking part in the Google Nexus program, because AT&T was one of their supported carriers on all of their stock Android Nexus devices.

Why did I terminate my service with AT&T?
I terminated my service with AT&T for a couple of reasons... In the city limits of Dubuque, AT&T's service is excellent, I was actually very happy with it. Immediately upon leaving the boundaries of the city, you will lose service. I'm not talking for a few miles until you reach the next town, either. I'm talking 50+ miles. AT&T looks at eastern Iowa and the surrounding area as a low priority. Because I'm a power user, I need data speeds. When I leave Dubuque, I want my service to remain consistent.

The 2nd reason I terminated my service with AT&T was because they had won the race in Dubuque to get to 3G (HSPA, basically) however, they have yet to deploy LTE in Dubuque. Right now in Dubuque, Verizon, U.S. Cellular, and Sprint all have LTE service deployed. Iowa Wireless still doesn't, but they are all but irrelevant in Dubuque now, so I won't even count them as a valid option.

Carrier #3 - Verizon Wireless
Start Date: March 2015
End Date: Current

Devices Used on Verizon Wireless:
Nexus 6

Why did I start service with Verizon Wireless?
I started service with Verizon Wireless because they've fully deployed LTE in Dubuque, and when I travel, I know I'm going to have decent, reliable LTE service, and I'll never really have the thought in the back of my head as to whether or not I'll have issues with service wherever I'm traveling.

This became especially true the week of May 11th, because I went on vacation in Orlando, Florida, and I had excellent service throughout my entire vacation, including the drive back to Iowa.

Why am I near cancelling my service with Verizon?
The explanation for this is rather intricate, and I'll get into it a little further down...

The Verizon Wireless Fiasco
March 2015
I start service with Verizon Wireless. I've ported my AT&T cell phone number to Google Voice so I can take advantage of all of the features that Google Voice brings along with it. Because I'm using Google Voice, and all of my calls, texts, and picture messages are now DATA-BASED, I only require data service.

I ask Verizon if there's any way I can activate a phone with DATA ONLY service. I'll admit, this is a bit of an experiment, because Verizon doesn't let you activate a PHONE as a DATA ONLY device. It's got the capability to make calls, so they want to squeeze more revenue out of you. I get that, but it's still wrong.

I had to speak with about 3 or 4 different representatives in the store and on the phone with customer service to find a plan that actually is DATA ONLY for a smartphone. Now, I can't activate a Nexus 6 on Verizon that was purchased from the Google Play Store, but I can activate another phone with a nano SIM card and place the SIM into the Nexus 6 to get service started. I contacted a friend, and I used his iPhone 5 to activate my Verizon account with the data only service that I mentioned, and I was up and running with my Nexus 6 on Verizon. Voice, SMS, MMS, and Data, thanks to Google Voice providing me with the Voice, SMS and MMS features.

April 2015
Something unique happens to me. I'm going to Chicago for Easter weekend at the beginning of April to meet my girlfriend's family, and I'm also on call for work. Because I'm on call for work, I need to have tethering service on my phone so if I get paged on the ride to Chicago, I have to have the ability to get online on my work laptop and start working on issues.

Saturday morning, I go to test the wireless hotspot feature on my Nexus 6, and it reports an error message saying that wireless hotspot is disabled on my account, and I need to contact customer service.

It's then that I find out that my cool data-only plan does NOT include wireless hotspot. I need to change to a shared data plan in order to get that feature. By the time I get ahold of someone from customer service, we're already on the road to Chicago, because we're running late. I call into customer service from my girlfriend's AT&T phone, explain the situation, and say that I need to change my plan. They can't do it, because the current active device is the Nexus 6, and when you make plan changes, their billing system does a status check to see if ANY devices on the account are Non-Verizon devices. If one is found, the plan change is aborted and not possible.

I informed the customer service representative that I can't get the iPhone 5 active to change the plan, because it's in Dubuque. I'm no longer in Dubuque. She explains to me that she can't change the plan without doing that, but she CAN submit a "DMD" request form to have my Nexus 6 approved for usage on the Verizon network, and identified as an actual Nexus 6, so their billing system will not flag it as invalid anymore. I request that she do that, and I am TOLD that the request gets submitted for review and action.

I made the trip to Chicago without the wireless hotspot feature on my account, risking an on call page situation where I am unable to get online on my work laptop.

Upon arriving in Chicago, we stop at a Verizon Wireless retail store to see if an in-store associate can help me. She is unable to make the active device the iPhone 5, so I told her to try getting a NEW SIM card, and activating the new SIM card with the iPhone 5, and seeing if we can then change the plan, and place the SIM into the Nexus 6. She agrees to try it, and we have success. Now I have a fully functional wireless hotspot feature on my Nexus 6. I'm able to make it through the weekend and the trip back to Dubuque without any worries about my availability for being on call for work.

May 2015
The week of May 11th, I make a trip to Orlando, Florida for a family vacation. While I'm there, I take a lot of pictures, and then sync them with my Google Drive account, so I can remove them from the local device (Nexus 6).

My data plan with Verizon as a result of my Chicago trip is the 6GB shared data plan. While in Florida, I exceed my 6GB data cap, resulting in a data overage. These things happen, it's no big deal. I took a look at the plan pricing online, and decided that 10GB is probably a good option for me. It's not the worst pricing in the world, and it'll satisfy pretty much all of my data usage needs for cellular, not to mention the fact that I will potentially have additional people joining my Verizon account.

I login to MyVerizon on their website, and attempt to change my plan. When trying to change my plan, I'm met with an error message saying that I need to call in to customer service to change my plan.

Uh oh... my device is still listed as a Non-Verizon device, and because of this, it's failing the IMEI validation test in their billing system, which aborts the plan change function.

I call in to customer service, and ask why my phone is still listed as a Non-Verizon device. The rep from customer service tells me they have NO RECORD of that request ever being submitted. The rep I'm speaking with offers to re-submit the request, and I agree to it. In the mean time, she tells me that at the end of my billing cycle (5/20/2015) she can change me to the 10GB plan without issues. I told her that's ideal, and as long as it gets done, I'm OK with waiting for the device authorization request.

Well, 5/20 rolls around, and I look at MyVerizon on the website, and I'm still on the 6GB plan. She was unable to process the plan change request, but never bothered letting me know that. I call into customer service for the 2nd time this month, asking them why it did not get processed. I'm told that the rep from 5/18 placed a note on the account saying that she was going to process it, but that's the last bit of evidence on the account.

I informed the rep that the outcome of this transaction will basically determine my future with Verizon Wireless, and that I'd like to speak with one of the members of the team that actually processes the device authorization requests (Verizon refers to these as DMD requests, Device Management Database).

At this point, I'm told that the DMD team does not interact with the person that submits the request. They have ZERO interaction with them. The way they are informed whether or not the request has been approved is via email, and they have NO actual contact with the DMD team personnel.

This person that I'm speaking with apologizes, and explains to me that no matter how much he wanted to, he wouldn't even be able to FIND a member of the DMD team for me to talk to. I explained to him that this is unacceptable, and that I need to speak with his supervisor. He apologizes AGAIN, and explains that his supervisor is out of the office, but will call me back tomorrow, on 5/21. I could not stress enough to this person that I need someone in the company that I can return to. I need the ability to keep track of this request with a single person. I cannot continue to call in and get a random rep, who I have to explain the entire situation to repeatedly. The rep gave me his email address (which I will not disclose) so that I could contact him directly with questions if I needed to.

Today, I did NOT receive a call or an email from Verizon Wireless, from the rep or his supervisor. I sent an email to the person I spoke with on 5/20 at the address they contacted me from, informing him that I have not yet received a call back, and that I will be waiting.

After a couple of hours, I stopped into the retail store in Dubuque, explained the entire situation to them, and they got on the phone with someone from "Tier 3 technical support"

Once again, they explained to me that I am at the mercy of the DMD team, and ONCE AGAIN, I was told that even the technical support tier 3 staff does not have ANY method of finding out who is on the DMD team, or how to contact them in any other fashion than submitting the DMD request form for authorizing my device.

The tier 3 tech support person I chatted with today gave me his email address, and told me that he would immediately contact me following the result of the DMD request. I'm still not satisfied with this though, because of the fact that internally at Verizon, they are just as helpless as I am as a customer.

Not a single person that I've spoken with at Verizon Wireless, regardless of their status as a supervisor, technical support staff, or general customer-facing retail associate, has the ability to manipulate or bypass the billing system in a way where they can change my plan. To reiterate, they cannot even CHANGE MY PLAN ON A FUNCTIONAL DEVICE.

I have seriously reached a point where this is no longer about service with Verizon Wireless. I have found two MAJOR flaws with Verizon Wireless that are basically making me inclined to no longer do business with them:

1. Your employees are powerless.

Your billing software does not allow for any manual overrides. All of the friendly, helpful people that I've talked to and now shared hours on the phone with or in person with, have been completely powerless to help me, even if they understood my situation clearly, and were fully willing to help me.

The billing software has stopped ME, and even your supervisor-level associates from making any changes to my account. I own a device that is now SOLD BY VERIZON WIRELESS, and no one has the authority to list the device as authorized for use on the Verizon network, and no one has the ability to speak with anyone from the team that DOES have the ability.

I have not been misleading in any way to any of the Verizon Wireless associates. I have explained to them every time that I have a Nexus 6 device that I have purchased from Google. Every time I have interacted with one of them, they have been willing to help me, and in some cases, even offered work-around methods to achieve what I am looking to get done. At NO point has someone told me that they are unwilling to help me achieve what I am trying to do.

2. Your lack of internal collaboration is ASTOUNDING. I'm surprised you are able to get ANYTHING done as a company. The fact that this is visible to a retail customer of yours is EMBARRASSING for you.

As I mentioned earlier, the two associates that I spoke with about the DMD request form (the tech support rep from 5/20 and the tier 3 rep from 5/21) - they both gave me the same exact explanation as to how they have no visibility into who works on the DMD team or how to contact them.

The 2nd example of this is that in the retail store, I have been told that they have no visibility into management higher than who is involved with the store, and they have no company directory or the ability to reach out higher than their own management structure. Today, the in-store gentleman told me that he would reach out to a regional person that visits their store, but did not really make any promises as to the results of his efforts.

At this point, it's no longer about the service. My Nexus 6 works fine on Verizon, and has for the entire duration of me having service with them. I'll explain below what I have for options, and why I'm hesitant to make any changes. That being said, at this point, I'm going to give Verizon one more day to straighten this situation out. Either my Nexus 6 is authorized for use, or it isn't. If it's not, I'll start an account somewhere else. That's kind of the beauty of the Nexus 6.

OK, so who do I have for options, and why would I choose them or not?

I am going to set all pricing aside, because price is NOT the driving factor behind me choosing service. It is important, yes, but it's not primary factor in my decision.
Here's what I have for options in Dubuque:

U.S. Cellular
Why would I choose U.S. Cellular?
-Service in Dubuque is excellent.
-They have a full LTE deployement in Dubuque.
-The surrounding areas have good coverage, and full LTE deployments.
-The Nexus 6 will work on U.S. Cellular
-U.S. Cellular WILL activate my Nexus 6 in an authorized, valid manner and treat it as a U.S. Cellular device.

Why wouldn't I choose U.S. Cellular?
-I'm required to sign a 2-year agreement, even with customer owned equipment
-The early termination fee is $350 if I decide to terminate service with them.
-U.S. Cellular does NOT have nationwide LTE service.
-If I leave a U.S. Cellular licensed area, I will have EVDO service with Sprint as their roaming partner.

U.S. Cellular has forgotten how two-year agreements work. They are charging people early termination fees that would typically be for subsidized devices. I spent over 700 dollars on my Nexus 6 FOR THIS VERY REASON. I wanted to buy my own device, and activate it with a carrier of my choosing, without signing a two-year agreement.

Why would I choose Sprint?
-They have a full LTE deployment in Dubuque
-The Nexus 6 will work on Sprint
-Sprint WILL active my Nexus 6 in an authorized, valid manner and treat it as a Sprint device.
-No 2-year agreement.

Why wouldn't I choose Sprint?
-Their coverage everywhere is terrible / bare bones.
-When I worked for Iowa Wireless, I saw that they used single T1's to service a cellular site. A single T1 is 1.544Mbps. To put 100+ users on a cellular site with 1.544Mbps of bandwidth for your backhaul is crazy. I can't imagine they've done much better with their LTE service.
-Sprint does not maintain their cellular equipment. Sprint has contracted this service with Ericsson, and they do not do regular maintenance on their cellular sites. The last I knew, it was break-fix only. This is unacceptable for cellular.

Why would I choose AT&T?
-There is good coverage in Dubuque.
-The Nexus 6 will work on AT&T
-AT&T WILL activate my Nexus 6 in an authorized, valid manner and treat it as an AT&T device.
-No 2-year agreement.

Why wouldn't I choose AT&T?
-They have yet to deploy LTE in Dubuque.
-Coverage when leaving the boundaries of Dubuque is absolutely terrible for 50+ miles in any direction.

When the FCC announced at the end of 2014 that they were going to continue pursuing the classification of some service providers as Title II, AT&T halted work on their infrastructure upgrades. This impacted Dubuque. We have a half-baked LTE deployment in Dubuque for AT&T as a result of this. For a company to stop all infrastructure upgrades as a result of how data services are classified by the FCC is very arrogant, and only negatively impacts customers.

The CEO of AT&T has announced (as of this week) that they will resume infrastructure upgrades in 2015, resulting in about $18 Billion in investments for 2015. Maybe by the end of 2015, I'll be able to get LTE service in Dubuque with AT&T. Either way, kind of embarrassing for them, and another one of those principle things that bothers me about AT&T.

Iowa Wireless
Why would I choose Iowa Wireless?
-The Nexus 6 will work on Iowa Wireless
-Iowa Wireless WILL activate my Nexus 6 in an authorized, valid manner and treat it as an Iowa Wireless device.
-No 2-year agreement.

Why wouldn't I choose Iowa Wireless?
-Terrible coverage.
-Their network is still EDGE in Dubuque.

Why am I writing this?

I'm not an average cellular customer. I'm a power user with my device, which I took the risk and paid full retail price for. I love my phone, I love what it enables me to do, but by buying the "one phone to rule them all" I've gotten to know the dark corners of the cellular industry.

1. U.S. Cellular is requiring me to sign a two-year agreement, and charging me a termination fee for a subsidized device that isn't even subsidized.
2. Verizon Wireless has employees that have no idea how to contact other employees, and don't even understand their management structure.
3. Sprint is terrible, pretty much everywhere.
4. T-Mobile isn't available in my area, and the company that operates AS T-Mobile is too small to make any impact, so they still have EDGE networks in a lot of their serviced markets.
5. AT&T began an LTE deployment in Dubuque, yet stopped less than halfway through it because they were afraid of their profit margins and level of control being reduced. Only once they were confident that they'd have things their way again, would they resume upgrading their infrastructure.

The fact of the matter is that this industry is run incorrectly. These companies have completely lost sight of WHY they do what they do. Every single one of them has gotten too large, and focused almost solely on profit margins. At the end of the day, you became a wireless company to sell wireless service to your customers. You did that incorrectly by subsidizing your devices and forcing 2-year contracts to make up for the subsidies. Even that wasn't profitable enough, so now you have 2-year contracts in addition to device financing and device payment plans.

Get back on track. Focus on what you came here to do, sell your connectivity and infrastructure services to your customers. Provide a service at a reasonable price, and in the case of Verizon, for Pete's sake, give your front line associates some power to help the customer. I've spoken with probably 15+ Verizon associates at this point, all of which have ZERO power over the billing system. When I worked at U.S. Cellular, I was able to help the customer, as long as the judgement call was right and justified. I hate to say it, but for wireless, I miss those days. I miss what it originally meant when I was hired at U.S. Cellular.

When Jack Rooney died, wireless may have died with him.

Wednesday, April 22, 2015

Project Fi, the Nexus 6, and the next big step in wireless

Today, Google announced that their are starting a new wireless program for cellular customers. They're calling it Project Fi, and I think it's going to do to the wireless industry what Google Fiber did for the residential Internet service industry. There's been a lot of activity in the information services industry lately, and it's all moving extremely fast in 2015, so hopefully I'll be able to offer some assistance in keeping you up to speed.

When I say Google Fiber changed the residential Internet service industry, what do I mean?

When Google Fiber was first announced, it was an experiment. Google's idea was to take the speed and reliability of fiber optic cable all the way to the home. This wasn't a new idea, but for residential service, it was uncommon. Google delivered fiber optic cable all the way to the residence, delivering connection speeds up to 1 Gbps, or 1000 Mbps for personal use. At the time, Gigabit speeds were incredibly uncommon, and even to this day, that speed is fairly scarce for Internet service providers to offer. Google's main competitor or counterpart at the time was Verizon with their FiOS offering, which delivered impressive speeds, but not Gigabit.

For the providers that have not yet invested in fiber optic service to the residence, they're still offering services in the 50 to 100 Mbps range with coaxial cable or telephone lines and cable modems or DSL modems. This is sufficient for gaming or streaming video, etc, but even the impressive 100 Mbps tier will show some cracks if you have an entire family living in a home that all use bandwidth-intensive services.

It's great that we're improving bandwidth, but that's not the real change here. The real change lies in the fact that Google introduced this service at a competitive price. They're charging $70 per month for Gigabit speeds WITHOUT a data cap. That's incredible. Because Google introduced fiber at such a competitive rate, they've forced other Internet providers to step up to the plate and improve their infrastructure, or risk losing their customer base to Google. For a long time, providers have been riding out the "golden age of coax" to provide Internet service to their customers. When doing it this way, they can continue providing you with "decent" service without investing in their last-mile infrastructure, which to them equates to increased profits. In order to compete with Google in the bandwidth segment, they need to upgrade their infrastructure, because coaxial cables just aren't cutting it to get to the Gigabit speeds. On top of that, once they DO build out their fiber optic infrastructure to the home, they'll need to charge competitive pricing for their top-tier residential Internet services.

By introducing this new idea of top-tier service for reasonable pricing, Google is forcing the competition to upgrade their infrastructure. It's really a win-win situation for consumers, because now they get much better service, and likely for a better price than they were previously paying.

How does Project Fi change the wireless industry?

Project Fi is an entirely new service and billing concept. The services are delivered in a different way (using data instead of the traditional voice technology), so the idea of minutes and number of messages sent isn't really a thing anymore. Google is handling all of your voice calls, text messages, picture messages, and voicemails using data now. To connect you to Google's servers to actually deliver this service, they've gotten help from a couple of major wireless carriers in the U.S. - T-Mobile and Sprint.

Since it strictly uses data, Google will bill you for the data you use. Whatever data you pay for, but don't use, you'll get your money back. This is an honest billing method, you really only pay for the services you're actually using.

The way wireless carriers work today is a pretty big disappointment. They charge astronomical prices for services that haven't changed much. They just keep charging you more and more, while inventing new and creative ways to bill you for the things you already had once.

To put things in perspective, let's say I'm a Verizon Wireless customer, and I'm a tech-savvy sort of guy who likes to use his phone for everything. A typical day might include:

-Sending and receiving email
-Using social networking sites like Facebook or Twitter
-Watching videos or movies
-Taking pictures and sharing them with friends or family
-Reading news articles and keeping up on events
-Streaming music in the car or on the go

A typical month for me might include up to 4GB or so of data usage, and I don't watch a lot of videos. Throw some more YouTube and/or Netflix in there, and you're creeping on 6 to 8 GB or so.

For my example here, though, let's say on average, I use 3.5GB of data every month.

I don't have anyone else on my cell phone plan currently, so I'm only a single-line customer. No family plan for me. OK, so let's go to Verizon and ask them about their single-line plans. I only need 1 line for myself, and I use about 3.5GB of data every month.

Hey Verizon, what do you have to offer me?

Right now, Verizon only offers 1GB or 2GB plans for a single line user, for $60 and $75 per month, respectively. These plans are useless for the tech-savvy folks who use their phone heavily.

OK, throw the single line plans right out the window, because they're useless to me. Let's move on to the MORE EVERYTHING plans that they offer. It's basically a family plan, but allows for the use of a single line as well. Sound like it'll be more expensive? Good, because it is.

OK, so Verizon, what do you have to offer me in your MORE EVERYTHING plans?

Hey, great news, they have a 3GB and a 4GB data plan under their More Everything plans. They're only $50 and $60 a month, respectively. But wait a minute, these are essentially shared data plans, and to get access to the pool of data, minutes, and messaging, they charge me a $40 per line access fee.

Well, since I typically use 3.5GB of data, I have to get the 4GB plan, otherwise I'll have a data overage, and that'll cost even more money. So, I go with the 4GB data plan, and I have a single line, so I'm paying $60 for the plan, and $40 for the access to the plan from my smartphone.

That's $100 per month.

So, just to be clear, I'm a single person asking for 4GB of data per month, and I'm being charged one hundred dollars. That's unbelievable. I haven't even factored in the cost of the device or the fact that there's often times a 2-year contract involved that comes along with a hefty early termination fee if you decide to cancel your service. If I happen to use 1GB throughout a monthly billing cycle, the plan isn't reduced in price either. Man, I should've used all 4 and gotten my money's worth, right?

Where I'm going with this, is that there's a lot of waste in this plan. I don't need to pay for a "pool of data" that I'm going to have the privilege of having access to. As a single person, I should be able to have a single line plan, and pay for the data that I use.

The way Project Fi will change the wireless industry is that they're going to do the same thing to the Tier 1 carriers (Verizon, AT&T, T-Mobile, Sprint, U.S. Cellular) that they did to the residential Internet providers with Google Fiber. They're going to force the competition to match up with them on pricing, otherwise suffer the consequences of losing their customers to the simpler, more honest provider. Google will become a services provider for phone calls, text messages, and picture messages, while the carriers will just become the path between you and Google to get TO those services. Ideally, I'd be able to buy an honestly billed data plan from Verizon, get my phone services from Google by just installing an application on Android or iOS, and then Verizon just has to worry about providing me with LTE data services. Google will be starting this service with T-Mobile and Sprint combined into "one carrier."

There's a catch... you have to have a Motorola Nexus 6

Project Fi sounds wonderful and dandy and like it's going to change the world forever, but why in the heck does it require having a Motorola Nexus 6? What's so special about the Nexus 6 that Google's only offering it with this device?

1. The Nexus 6 has radios in it for every U.S. carrier. This is extremely important.

When you buy a cell phone from a carrier, it's always built specifically for that carrier. It has a special build of software on it, it's got antennas in it that operate specifically with THAT carrier. This way, the carrier has the maximum level of CONTROL over that device. They can field test it with their network prior to releasing it to the public for purchase, they can control the features and software on the device, and the manufacturer can reduce the COST of the device by only including the radios for that specific carrier.

To give you an idea of how varied things are in the U.S. for cellular service, here's some examples...

Verizon = CDMA + LTE
T-Mobile = GSM, WCDMA, LTE
Sprint = CDMA + LTE
U.S. Cellular = CDMA + LTE

The Nexus 6, from a technologies perspective, supports all of the above, GSM, CDMA, WCDMA, and LTE. It can connect to every TYPE of network that the major U.S. carriers offer for their services.

Technologies is only a small piece of the puzzle though. Each one of the technologies has their own specific BANDS, or FREQUENCIES that they operate on. Here's a list of just LTE networks and how diverse they are, without even taking a look at the other technologies:

LTE Bands
AT&T = 2, 4, 17
Verizon = 2, 4, 13
T-Mobile = 2, 4, 12
Sprint = 2, 25, 26, 41
U.S. Cellular = 5, 12

LTE Frequencies by Band (in MHz)
2 = 1900
4 = 1700
5 = 850
12 = 700, A and B Block
13 = 700, C Block
25 = 1900 G Block
26 = 850
41 = 2500

So, as you can see, the phone needs to be able to receive and transmit on a whole bunch of frequencies, and that's just LTE. To combine all of this technology into a single device is extremely costly, and up until now, that sort of diversity in a single device has never been required.

That's where the Nexus 6 comes into play. My point here is that the Nexus 6 is capable of operating on every technology that every U.S. carrier can provide to their customers. This makes it a very capable device. I can take my unlocked Nexus 6 to any carrier in the U.S. and active it with them. This makes the Nexus 6 the only device that makes Project Fi possible. Rest assured, you'll see more devices like this, but they aren't cheap to build. This is partially why the Nexus 6 is so expensive, and doesn't follow pricing trends that other Nexus devices brought.

2. Switching between carriers or Wi-Fi on the fly (software)

In number 1 here, I explained why connectivity to every carrier is so important. There's another component to that connectivity, though, which is software. The phone needs to know which carrier has the strongest signal in your area, and it needs to be able to make the switch seamlessly from T-Mobile to Sprint, or from Sprint to T-Mobile, without you even knowing it.

Think of this as going outside of your carrier's network and roaming on another carrier, but now it's not roaming, it's the phone actually deciding which carrier is providing the best service, and actively selecting to be on that carrier.

Typically, this is handled between carriers with a ROAMING AGREEMENT. The phone will switch carriers, but it'll do it as a last resort when it can't find service with the primary carrier. Right now, the Tier 1 carriers don't really have LTE roaming agreements, so you're pretty much stuck with what you have natively on your own carrier. The software that makes Project Fi possible changes the game ENTIRELY for this. Instead of the carrier making the call as to which network you're connecting to, the phone is now making the decision. It's not a last-ditch effort either, the phone is actively deciding what's going to be best for YOU, not the carrier.

At this point, I can only assume this will be a software release for the Nexus 6, most likely available in Android 5.1.1. The logic for the carrier switches will be built into the software in combination with the Project Fi SIM card that you put in the phone.

To throw another wrench into things, Project Fi is also fully functional on Wi-Fi. In addition to the algorithm for deciding which carrier to use, Project Fi has also included functionality for Wi-Fi. According to Google, a call will seamlessly transition from Wi-Fi to cellular, or back the other direction, and also between cellular networks. This means I can be on the phone at my house on Wi-Fi, get in my car and drive away from my house, transition to cellular, and then when I get to work, if I'm still on the phone, I'll connect to the office Wi-Fi, and continue the call. This is really impressive stuff, not to mention the fact that while I'm on Wi-Fi at home or at the office, all of the things that I'm doing on the phone don't count towards my monthly bill.

Without the software and logic behind Project Fi, which will initially only be available on the Nexus 6, none of this would be possible.

So, to kind of wrap things up, I think you're going to see some big changes in the wireless industry coming up very shortly here. There have been some ongoing price wars over the last 6 months, and carriers finally starting to introduce better plans and pricing that benefit the consumer, but I think this is going to be a giant leap forward. Refunding customers for the data they don't use is a big change, and actually aggregating wireless services between carriers is an entirely new concept altogether.

Let the phone do the heavy lifting to decide which carrier is best, don't rely on the big carriers to do it for you!

I'm looking forward to Project Fi. I'll give it a try, even if that means I have to put up with T-Mobile and Sprint for a little while. It's all about sending the right message, and getting things done. I'm going to try to hunt down someone from Verizon and AT&T, and send them my message as well. Walking into a retail store and telling them off won't do me any good, so I'll have to find the right person, but that isn't going to stop me.

Until next time!

Monday, April 20, 2015

Employing PowerShell to help you clean up the Enterprise


Lately I've gotten heavy into PowerShell scripting, and relying on PowerShell to do my dirty work for me. When you get into the thousands of anything, you're going to need help from some sort of scripting or automation efforts. Since Citrix, VMware, and Microsoft give us some pretty sweet PowerShell commandlets for their products, I like relying on PowerShell for help.

In this particular article, I'm also going to throw in some help from Quest with their ActiveRoles Management Shell for Active Directory, because I have access to that nifty tool in some of my supported environments. It's a great tool, and comes in very handy when either the native Microsoft PowerShell modules won't do, or in some cases, AD Web Services are not running on your domain controllers.

NOTE: I recommend this to EVERYONE - before you go blindly executing PowerShell commands, KNOW what the outcome will be ahead of time. The commands in this article have the potential to be VERY destructive to your enterprise. Proceed with EXTREME caution, and I take NO responsibility for the outcome of the commands you execute. This is designed to help you automate some basic tasks.

-RSAT Tools for Windows 7
-Quest ActiveRoles Management Shell for Active Directory

1. Sorting through XenApp or XenDesktop user profiles to determine deleted or disabled users that no longer require a profile on your file server.

Assuming your naming convention on your XenApp and XenDesktop user profiles are out-of-the-box, and are just named after the user, then this one should be really simple for you.

So, in this example, you have a user profile share on a profile server...

Profile Server Name: OWENS-PF01
Share Name / Folder Name: UserProfiles

From the machine where you'll be doing the work, open up a PowerShell command prompt, and in the below example, I'll be using the drive letter N: as the mapped drive.

Step 1 - Map the drive
PS C:\Users\Owens>net use n: \\owens-pf01\userprofiles

Step 2 - Once the drive is mapped, change directory to the mapped drive
PS C:\Users\Owens>N:

Step 3 - Use the PS commandlet "Get-ChildItem" to generate a list of user profiles, and export them to a text file on your desktop. I'll use Format-Table to remove the table header, and just retrieve raw data.
PS N:\>Get-ChildItem | select Name | ft -HideTableHeaders > C:\Users\Owens\Desktop\profiles.txt

OK. You just mapped a drive to your profile share, issued a "Get-ChildItem" commandlet, which outputs all of the child objects in the profile share (the user profiles), and you selected only the NAME parameter, which is the names of the individual folders. You're removing the table headers where it tells you what the parameter type is, and then exporting the data to a text file on your desktop.

Now you have a long text file with individual usernames in it. I'd open up the text file to do some quick cleanup, removing any blank lines or things that have little or no value. Sometimes people will manage to create a random folder that has no value but just files in it, etc.

Once the text file looks good, it's time to run your queries. This is where (for me at least) the Quest ActiveRoles Management Shell comes into play. Quest Tools are available from Dell in their enterprise products, and I like it. I think it's worth the time and money.

Step 1 - Establish an array of the individual usernames in the domain (the folder names) - note below that I'm using "gc" - this is shorthand for Get-Content in PowerShell. This will import the full text file line-by-line and place the individual items in an array variable.
PS C:\Users\Owens>$aryUsers = @(gc C:\Users\Owens\Desktop\profiles.txt)

Step 2 - I like to do this to verify that the array established successfully by checking the length of the variable. This command will return a value that's basically the number of lines in the text file if you did step 1 correctly.
PS C:\Users\Owens>$aryUsers.Length

Step 3 - Run the usernames in the array against an AD query to determine their status in AD. If they have been deleted altogether, just delete their user profiles (assuming there's no file retention policies required). For the disabled users, make a judgement call as to whether or not their profile gets to stay.

For this, I like to create a separate text file that has the list of disabled or deleted users so I can just open it and go through the list when deleting. This can also be scripted, but this one requires a little more work. For the below example, I'll make a text file ahead of time on my desktop called "disabledusers.txt"

Disabled Users
1. PS C:\Users\Owens>foreach ($user in $aryUsers)
2. >>{
3. >>$userObject = (Get-QADUser $user)
4. >>Start-Sleep -Seconds 1
5. >>if ($userObject.AccountIsDisabled -eq "True")
6. >>{
7. >>Add-Content C:\Users\Owens\Desktop\disabledusers.txt "$user"
8. >>}
9. >>}
10. >>

By executing this, PowerShell is running a FOR EACH loop through each item in the array.

In line 3, we establish a new variable, which is an user object. This contains all information that Get-QADUser can provide into a single object. We're only looking for one parameter, which is the "AccountIsDisabled" parameter - it's a true / false value that says whether or not the user account is disabled.

Line 4 is important in a big enterprise. Quest's AD tools are a little resource intensive for a domain controller, so by repeatedly running the commands without pausing, you'll notice a spike in CPU or memory usage on your domain controller(s). I always insert a 1 second delay between each query to moderate the CPU usage by utilizing the Start-Sleep command.

In line 5, we test the case where AccountIsDisabled is equal to "True". If the field is true, then the user account is disabled. Inside the test case, we add the user's name to the list of usernames in the "disabledusers.txt" text file. For each disabled user, you'll get a new line in your text file with their username.

After it's finished, you'll have a full list of disabled users that reside on your profile share.

The new text file in this example below will be "deletedusers.txt" on my desktop.

Deleted Users
1. PS C:\Users\Owens>foreach ($user in $aryUsers)
2. >>{
3. >>$userObject = (Get-QADUser $user)
4. >>Start-Sleep -Seconds 1
5. >>if ($userObject -eq $null)
6. >>{
7. >>Add-Content C:\Users\Owens\Desktop\deletedusers.txt "$user"
8. >>}
9. >>}
10. >>

This is essentially the same script as before, but in like 5, we're testing for the case where the user object is equal to a NULL value. In line 3 when it established the user object, if the user doesn't exist, then the $userObject variable will end up being a null value. This is represented by "$null" in PS. If the $userObject variable is empty, it'll be equal to $null.

The deleted users list is likely the one you'll want to be a little more aggressive with. You can proceed with a delete script, which will be another foreach loop run against the deleted users list. It'll look something like this...

1. PS N:\>foreach ($user in $aryDeletedUsers)
2. >>{
3. >>Remote-Item "$user" -Force
4. >>}
5. >>

This will save you the time of deleting each individual folder.

1. Creating a list of hosted XenDesktops, their assigned users, and then determining if the users are deleted or disabled.

I'll give you the different methods for the different versions of XenDesktop, along with the prerequisites.

XenDesktop 4
Desktop Delivery Controller SDK
Add-PSSnapin XdCommands*

Command that exports a list of virtual desktops and their respective users:
Get-XdVirtualDesktop | select Name,AssignedUserName

The Name value is the name of the virtual desktop.
The AssignedUserName value is the name of the user assigned to the machine, in the form of "DOMAIN\Username"

XenDesktop 5.x
Citrix Desktop Studio
Add-PSSnapin Citrix*

Command that exports a list of virtual desktops and their respective users:
Get-BrokerMachine | select MachineName,AssociatedUserName

The MachineName value is the name of the virtual desktop.
The AssociatedUserName value is the name of the user assigned to the machine, in the form of "DOMAIN\Username"

XenDesktop 7.x
Citrix Studio
Add-PSSnapin Citrix*

Command that exports a list of virtual desktops and their respective users:
Get-BrokerMachine | select MachineName,AssociatedUserName

The MachineName value is the name of the virtual desktop.
The AssociatedUserName value is the name of the user assigned to the machine, in the form of "DOMAIN\Username"

After you have your list, you can use something like Excel to extract the username field, and run the same exact queries that I showed you in section 1 to find out whether or not they are disabled or deleted.

Hopefully this helps you. In a large enterprise, roles tend to be separated, and in my experience, the Citrix guy doesn't onboard or offboard users to the company for IT resources. We just make the machines available to users. Sometimes resources are left behind, and we need to clean them up. Get PowerShell to do the work for you :)

Have a great night, and as always, happy Citrixing!

Thursday, March 19, 2015

How I activated my Nexus 6 on Verizon, and got 5GB of data for $50 a month.

So in my previous post, which can be found here I spoke about how I'm trying to transition my smartphone service over to a data-only plan with one of the major US carriers, and run all of my Voice, SMS, and MMS services through Googe Voice.

I always work best under pressure, so there's no better motivation than to cancel your cellular service and begin the hunt for a data-only plan, because it was only a matter of time before my Nexus 6 became a Wi-Fi only device.

I stopped at the corporate Verizon store today in Dubuque, Iowa to ask if they could allow me to activate service on a customer-owned Nexus 6, but only with data service enabled. They of course, told me no. There are 2 major hurdles to get past with this proposition at Verizon:

  1. They do not allow the activation of a data-only service plan with a device that's considered a phone.
  2. They do not allow customers to initially activate Nexus 6 devices that they've purchased in the Google Play store.
Luckily, I've managed to find a way to get Verizon to do exactly what I want them to do, and in a (mostly) legitimate fashion.

I spoke with a rep in the store on my lunch break, as I'd mentioned before. and after exhausting all options with the rep, he said "call technical support, maybe they'll be able to help you get this done." He gave me the number to call, even which options to select in the IVR, which were as follows:

Option 3 - Tier 2 Support for Technical Support

I spoke with a gentleman in the Tier 2 support group for a little while, explaining to him my ultimate goal of having a NANO SIM activated in an LTE device, and being able to freely transfer that SIM into the device of my choosing, including my privately owned Nexus 6 that I purchased from the Google Play Store. He acknowledged that it was technically possible, and that it can be done, but he said Verizon will not offer any support to help me with the service on my Nexus 6 device, since it's not supported by the carrier. I acknowledged that I'll be responsible for the Nexus 6 device, and I understand that service is the carrier's responsibility, however, device-related issues are my responsibility. We went through various scenarios in how we would get it to activate, including the following:
  1. Buying a new tablet device with a nano SIM and activating a data-only plan with the tablet device, and using the SIM from the tablet in the phone.
  2. Buying a used tablet and activating it with the same above listed scenario.
  3. Buying a Jetpack mobile hotspot, and activating that service with the nano SIM.
Basically, we were limited on options. I explained that I did not want to buy a tablet device, regardless of whether it be new or old, and that I just wanted to pay Verizon for a monthly data service in a mobile device. After exhausting his list of ideas to attempt, he transferred me to his supervisor.

The supervisor replayed the scenario back to me, essentially just trying to make sure that we were on the same page for what I was trying to accomplish with them. He understood, and asked me to wait on hold for a few minutes while he did some research.

He came back from hold, and told me that they DO IN FACT have a 5GB data-only plan that's designated for SMARTPHONES, not tablets. For those of you attempting the same mission I accomplished today, see below:

Plan Code: 84700
5GB 4G Data for Smartphones
NO contractual agreement
You must bring your OWN equipment or purchase a handset at full retail price.

The rep from technical support advised that in the store, they likely would NOT know about the plan, and they'd have to search for it by code, and attempt starting new service by specifically seeking out the plan code. This was very much true when I went into the store tonight to activate my new service.

The rep also told me that it was unlikely, but POSSIBLE that I could activate my Nexus 6 with them, but I would have to follow an IMEI addition request, and I'd have to fill out a form including my IMEI and submit a trouble ticket with the technical teams to evaluate the IMEI to see if it CAN be added to Verizon's database, and if it can, then they will let me activate the Nexus 6. The alternative to this was finding an LTE phone that took a NANO SIM and activating that as customer owned equipment.

Luckily, I had a friend with an iPhone 5 that he just retired in order to get an iPhone 6 Plus, so I was able to take the iPhone 5 to go in to Verizon to activate the 84700 plan with.

There IS a bit of a procedure to this though. Upon finding the plan via code search in the store, the rep was unable to start new service using this plan. He had to start a plan with one of the mainstream service plans that Verizon offers right now, and then call into the internal customer care line, and have customer care change the plan over to the 84700 plan code. All in all, it took about 25 minutes, and I walked out of there with a live Nexus 6 on Verizon LTE, 5GB a month for $50.

For those of you looking to accomplish this, it CAN BE DONE. The only thing you need is an used handset that takes a NANO SIM. Find one used in your area, pick it up and activate your new service with it. Pop the SIM in the Nexus 6, and you're ready to rock and roll.

So by combining Google Voice with my new Verizon plan, I have the following:

  • 5GB Data on Verizon 4G LTE
  • Unlimited Texting (Google Voice-based, NOT provided by Verizon)
  • Unlimited Picture Messaging (GV-based)
  • Unlimited Calling (GV-based)
  • $50/month
  • A Google Play Store Nexus 6 running on Verizon 4G LTE.
  • No 2-year agreements or contracts of any type
  • No early termination fees
Hopefully this will hold me over until Google launches their MVNO. Depending on who the Tier-1 carriers are that Google's MVNO works with, I may just stick with Verizon. We'll see!

Happy Nexusing!

Wednesday, March 18, 2015

Putting Faith in Google Voice, and The Death of Traditional Cellular

Well hello again!


A couple of nights ago, I came to a sudden realization when I stumbled upon a new application in the Google Play Store on my Nexus 6. Back in Q4 2014, Google released an application called Hangouts Dialer, which integrates with Google Voice, if you have the service with them.

Google Hangouts has supported integration of SMS text messaging with both your carrier's SMS services, as well as Google Voice simultaneously for quite a while now. We've been able to place outgoing calls using the Google Voice application for a while as well, but with the integration of the calling functions of Voice into Hangouts is a major stride forward for Google.

At Mobile World Congress 2015, Sundar Pichai, who is Google's Senior VP of Products had informally announced that Google will be rolling out their own MVNO. For those of you who are not familiar, an MVNO is a Mobile Virtual Network Operator. Basically, they utilize the infrastructure a Tier 1 carrier (Verizon, AT&T, T-Mobile, Sprint) but offer a lower cost solution for providing voice and data services. They don't offer their own infrastructure like tower equipment or radios, etc. but they do provide service and billing, and I'm sure the Tier 1 carriers get a significant chunk of the revenue from the end users.

Google will not be competing with the Tier 1 carriers, but will be utilizing their infrastructure to deploy new ideas and technologies taking advantage of their flagship Nexus platform, which in this case happens to be Nexus 6. Lucky me! Lucky me! I have a Nexus 6!

Sundar said that they'll be announcing their new MVNO service in the coming months, but I'm going to jump ahead of that a little bit. Tonight, I started the process to port my AT&T phone number to Google Voice, so I can begin utilizing their Voice / SMS / MMS services via data. Google charges a one time fee of $20 to port your existing carrier number to them, and from that point forward, it's your Google Voice number.


Over the course of the next 24-48 hours, I'll reach a point where I do not have cellular service, and I'll be relying solely on Wi-Fi connectivity to service all of my Voice / SMS / MMS needs, utilizing the same telephone number I had before with AT&T.

Using a cell phone on Wi-Fi only? That sounds a little crazy, right? Well, yes and no. Don't panic, I'll be purchasing cellular service so I have full functionality everywhere, but it'll be data only. I won't be purchasing a traditional cellular plan for my Nexus 6. Tomorrow, I'll be heading over to Verizon Wireless to see if I can get a Tablet or Hotspot plan for my Nexus 6, so I can have somewhere between 4 and 8 GB of data service for my device.

It probably also seems strange that I'll be jumping ship from AT&T, which is one evil corporation, to another corporation which is potentially even more evil, Verizon. Well don't worry, I've got some justification for that too. Over the course of the last 5-6 months, I've been traveling a lot more, and with AT&T, I get absolutely TERRIBLE service while traveling.


I live in Eastern Iowa, right along the Mississippi river, and back in the 2010-2011 time frame, AT&T deployed HSPA service in Dubuque, which was far ahead of the competition at the time. The other two major carriers in Dubuque were Verizon and U.S. Cellular. Both VZ and USC had CDMA / EVDO service at the time, which realistically could only provide a little over 1Mbps for download speeds. Keep in mind, those speeds were sufficient at the time, but then the big Android / iOS explosion happened, and there was suddenly a significantly higher demand for infrastructure driving the applications and services that are delivered on these devices. Verizon and U.S. Cellular began deploying their LTE services in Dubuque, and now they are the leading providers in the area. LTE service has a much lower latency and higher bandwidth than the HSPA service that AT&T provides. AT&T, to this day, still has not deployed LTE service in Dubuque.

To add insult to injury with AT&T, they don't bother covering the highways leaving Dubuque. I've got 6 major directions I can travel out of Dubuque, and they're as follows.

  1. US 151N towards Madison, Wisconsin. The service on 151N is entirely EDGE-based until you reach Verona, Wisconsin, which is only a few miles outside of Madison. That's about 90 minutes of driving with EDGE service.
  2. US 61N / 35N along the Western border of Wisconsin as it reaches Minnesota. I did a lot of traveling to La Crosse, Wisconsin this year, with potentially a few more trips planned, and the ENTIRE drive is EDGE-based, often times with no service at all. That's 2 and a half hours of EDGE service while driving.
  3. US 20E to Galena, IL and beyond. Another classic example of EDGE service. I believe this is true until you reach Rockford, Illinois which is quite a drive as well.
  4. US 61S to Davenport, Iowa. You're living on EDGE for the first 40 minutes of this trip, until you reach the DeWitt area just slightly north of Davenport.
  5. US 151S to Cedar Rapids, Iowa. This one's the same case as Davenport. You don't get LTE service until you reach Marion, which is about 50 minutes into the drive southwest on US 151.
  6. US 20W is the ONLY example of where you'll have LTE service for your drive to Waterloo / Cedar Falls, Iowa.
I've got 6 directions I can leave Dubuque in, and only 1 of them actually has LTE service as I leave the city.

Meanwhile, Verizon has already announced "XLTE" in this area, which is essentially just a fancy name for LTE carrier aggregation. Taking two LTE bands and utilizing both of them at the same time for maximing bandwith on LTE service. The Nexus 6 supports carrier aggregation on Verizon's LTE bands, so I'm likely going to head to Verizon and get my data service from them.


I'm used to paying somewhat of a high cell phone bill. If you look at all of the carriers for a single line plan with 3GB of data, after taxes you're almost guaranteed to be over $100/month. It's disgusting what a carrier can and will charge a single line for voice and data services. I've become desensitized to the idea of a high cell phone bill, but my problem with this system is that it doesn't have to be this way. The carriers are constantly pitching the idea of adding "value" when realistically the only thing they are doing is trying to find a way to justify their astronomical prices.

As you may know from my previous blog entries, I'm a big supporter of adopting new technologies, embracing change in technology, and I put a lot of value in technology solutions that push us forward in the way we do things, interact with each other, and work.

I've said this at work more times than I can count, but the most frustrating response I'll ever receive from someone is "this is how we've always done it." I don't care how you've always done it. I'm a firm believer that you should always question everything, and challenge yourself to change or improve things to always be better, regardless of how complex the challenge is.

Where I'm going with this, is that we NEED to push forward with data-based cellular services. Carriers need to begin sunsetting their 2G / 3G equipment, and make an aggressive push to LTE based services only. LTE needs to be the new standardized platform. We're over 3 years into major LTE deployments among carriers, and there's STILL no effective roaming agreements. If handsets were manufactured with LTE-only chipsets, rather than relying on older technologies, I can guarantee that the handsets you purchase would have support for all major US carrier bands, and roaming agreements for LTE service would provide the ultimate user experience for coverage.

Voice, SMS, and MMS services also need to be absorbed into LTE data services. These are old technologies that can still be supported, but over an entirely packet-switched network. VoLTE is being advertised as HD calling now. I don't like that carriers are advertising this as HD calling, because it's essentially just VoIP. By naming it "HD Calling" they're able to advertise it to you as a higher tier of service, and coax you into paying more money for it.

If you ever get a chance to have a Hangouts call between two Nexus 6 devices, do it, because you'll be amazed by the quality. It's just a data-based phone call between two Android devices, and the quality is incredible.

In a nutshell, I'm doing this for four reasons:
  1. Technology adoption. I want to lead the charge in moving to an entirely data based cellular service. I'll have Google handle all of my voice, text, and picture messaging services in a data-based manner via LTE with Verizon Wireless.
  2. By utilizing data only, my service plan with Verizon Wireless will provide a higher data cap for a significantly reduced price. For what I pay today to receive 3GB will probably net me anywhere between 6 and 8 GB, for an improved quality of service.
  3. Verizon deployed "XLTE" in Dubuque, which utilizes carrier aggregation for LTE bands. The Nexus 6 supports CA for Verizon's LTE bands, so I'll get better LTE performance.
  4. Verizon undoubtedly has the largest scale LTE deployment. They've been in the game the longest, and they're seasoned in LTE. I trust that even though it's a massive, evil corporation, they'll invest significant money into their wireless infrastructure for years to come. I can rest assured that when I'm traveling, I'll have reliable LTE service for my travels.


By moving to this platform, I'll also be taking advantage of several benefits that a regular cellular experience wouldn't provide for me.
  1. Consistent Voice, Text, and Picture messaging service regardless of where I am.

    By transitioning these services to data-based services, I can send and receive calls, text messages, and picture messages from LTE or WiFi. If I go into a building or an area where my LTE service is poor, but I can take advantage of WiFi, I don't have to worry about the reliability of my cellular service. I won't miss a call or a text, because it'll be handled by the WiFi network.
  2. Google Voice Visual Voicemail

    This one's old, and it's offered by carriers, but let's be honest, there isn't anyone in the game that's better at voice to text translation than Google. Try using Google Now for basic searches or functions some time. It's pretty rare that it goofs up. I'd trust Google to translate my voicemails to text over any other service.
  3. Seamless Call Transitions

    This one I'll have to confirm, but in my research, it seems like one of the initiatives with Google Hangouts Dialer and their MVNO service is that cellular and WiFi networks should be seamless. Let's say for example I get into an elevator and I'm heading into a lower level of a building where cellular service doesn't do a great job of covering the lower levels of the building. If I frequent this location, and I've got their WiFi saved in my phone, the phone call should seamlessly hand off between cellular and WiFi, based on software that determines the thresholds for the handoffs. This should also be true in the opposite direction. I should be able to hand off a call from WiFi to cellular without the call being interrupted, all while maintaining crystal clear call quality and minimal latency.
  4. Being able to call, text, or picture message from ANY device, using the same phone number.

    Being a big supporter of Google and their integrated services among their devices, I have an ASUS Chromebox, an HP Chromebook, a Nexus 6, and I also use Chrome on my Windows machines at home. All of the applications and services that are Google-based are available on every one of my machines, and they work in a seamless, consistent manner. I want the ability to sit down at any device and know that I have a text, picture message, or that someone is calling me without having to pick up an additional device. This service provides that functionality for me.
  5. Call Screening

    Google Voice can provide me with the ability to screen calls. This doesn't make me the most popular person in the world, but if I don't recognize a phone number, I can safely screen the call and force the caller to tell me their name. If I get a call from State Farm Insurance for a quote I asked for 4 years ago (yes, this is real, I'm not joking, they still call) I can just screen the call. I've saved 3 or 4 separate phone numbers in my address book, and yet they still manage to catch me off guard sometimes.
  6. Nexus 6 Versatility

    I think the Nexus 6 as a device goes way under-appreciated. Sundar Pichai at MWC 2015 stated that they are always trying to push the boundaries of what is possible with hardware and software working together. They use the Nexus program to do this. They don't ship Nexus devices at scale as a consumer device, because the purpose is to push forward with and embrace new technologies. There have been major milestones in technology with Nexus devices. Each one has had its own "party trick" if you will...

    The Nexus 6 is the first Android device to support the LTE bands of all major US carriers, and the first device that can be activated on all major US carriers. I can activate a Nexus 6 on AT&T, Verizon, T-Mobile, U.S. Cellular, and Sprint. It'll support LTE or CDMA services on all of the carriers.

    I look at the Nexus 6 as the first major device that will push the boundaries of connectivity. Nexus 6 is the first platform that allows consumers the freedom of choice of carrier, which is a true spark for competition in the marketplace. If Google can provide data-based Voice, SMS, and MMS services by just utilizing the data that the carriers provide, then we will truly spark competition and price wars among the carriers, which will greatly benefit the consumer. Since Nexus 6 also supports all major LTE bands for the carriers, then it'll be the first device that can take advantage of any of the LTE roaming agreements that the carriers can provide.

    Not only is it a beautiful, powerful device, but I think of the Nexus 6 as the device that will spark the revolution in wireless when Google launches their MVNO. Much like Google Fiber expedited fiber to the home deployments for competitors, providing gigabit internet service to consumers at reasonable prices, Google will do the same thing for the wireless industry. When providers compete, consumers win.

That's all for tonight. Let me know if you guys have questions, and happy Nexusing!

2016 Subaru WRX - Replacing the Starlink Head Unit

I've spent a lot of time and WAY too much money on this project, so I figured I might be able to help someone else out with their 2016+ ...