.NET 4.6 today, PowerShell 5 soon

Today, Visual Studio 2015 and .NET 4.6 were officially released. I won’t talk about VS2015 yet, but in regards to .NET 4.6:
I noticed a lot of the news sites covering it either didn’t provide a download link for .NET 4.6, or provided the absolute wrong links. The only “real” download link I can find is at https://www.visualstudio.com/en-us/downloads – From there scroll down a bit and in the left-hand column there’s a section for .NET

Seeing that it’s released got me excited, because hopefully that means a PowerShell 5 for Win7/8 release is coming soon. I was reading over the new features list again and the ones that I’m most excited about are:

  • ConvertFrom-String – sounds like it takes regular text output and does a ghetto conversion into making that text more like an object. Takes some work to build a template for it, but could be handy in many situations, especially when getting output from Linux bash scripts or something
  • Direct support for managing symbolic links in New-Item
  • Using Copy-Item to copy files through a PowerShell remote session. Huge win for feature parity with linux ssh/scp
  • Get-Clipboard and Set-Clipboard built in support
  • Out-File, Add-Content, and Set-Content support -NoNewLine
  • Get-ItemPropertyValue makes it a much more intuitive and straightforward process working with registry stuff via PowerShell
  • Smaller delay between when you open a new PowerShell session then try to tab-complete. Waiting that few seconds is always so annoying!


Drobos are pretty great

So I’ve started the long process of downgrading my Drobo 5S storage. I’m trading out cheap, slow drives for SSDs. I’m hoping I can get the total noise down significantly so that I don’t hear it. It sits next to my TV and can be distracting sometimes. Once all the noisy drives are gone, I’ll see about replacing the chassis fan to seal the deal.

I’m going to hug a storage admin when I go in to work tomorrow. The stress of rebuilding drive arrays for your most valuable content…. phew! I’ll try not to stay up all night staring at the progress bar and health indicators.



The Last Patch


Good news! If you have Server 2003 systems sitting around, after today you’ll only have one more set of Windows Updates to apply. Then you’re free from scheduling those maintenance windows ever again! I suppose after you’ve done that, you could even remove 2003 from the list of products on your WSUS servers and free up a chunk of space.

Oh wait, you still want security updates and support when something goes terribly wrong on your OS? Just do what the US Navy did and pay 9 million dollars to Microsoft. I suspect there might be some hidden additional costs when you encounter scenarios like virtualization where Citrix or VMware stop supporting 2003 as a VM guest. But like the cool kids were saying back in the day, YOLO. I mean, that OS is only 14 years young.



Countdown to the Countdown

With about a week before the end of support for Server 2003, I was getting sad that I don’t have a big Microsoft thing to track a countdown for on my whiteboard (besides Windows 10). But good news! Next up on the chopping block: support for Internet Explorer Everything (10 and below) ends in January 2016.

From Microsoft:
Beginning January 12, 2016, only the most current version of Internet Explorer available for a supported operating system will receive technical support and security updates. Please visit the Internet Explorer Support Lifecycle Policy FAQ here http://support.microsoft.com/gp/Microsoft-Internet-Explorer for list of supported operating systems and browser combinations.



Eww, the final Win10 icon for Edge looks like some kind of glitch. Like I need to restart explorer or something.


SCCM 2012 User Device Affinity

I wrote a PowerShell script for my new SCCM 2012 environment that takes a list of users, and outputs both their Device Affinity pairings and the list of computers where they were the last logged on user. I’ve seen similar scripts, but nothing that accepted multiple usernames or combined both methods of looking up affinity.
The screenshot is from a dev environment where I don’t have a whole lot of data, but you get the idea.



MS Ignite Conference Notes

So I didn’t even make it to Ignite, but with all the online videos and whatnot, I was able to virtually attend and gather a lot of notes. I focused on the SCCM / OS Deployment / Win10 stuff and this is a buttload of reading, but in case it’s helpful to someone…



Server 2003: Good Riddance

Microsoft ends support for Server 2003 in July. I’m looking forward to it and am hopeful it will help kickstart my employer and others to modernize their infrastructure.

On the whiteboard in my office, I have a running list of short insults I like to throw at Server 2003. It’s great stress release!



PXE Boot: Windows vs Linux

At work, we’re currently stuck with an old version of SCCM (2007) and it just doesn’t cut the mustard any more for OS deployments. I’ve set up an interim MDT server because it’s easy and required no specific budget, but the hard part is getting it able to PXE boot without squashing the SCCM stuff already in place.

There’s a few guides out there like this one that are excellent, but a little out of date. They reference Syslinux 3, and we’re up to 6.x now. Below is all my notes that you need to get SCCM, MDT, and Linux all working with PXE boot options and all the latest version tools. No VLAN switching magic or DHCP option trickery required. You can mix and match components all you want. No MDT, no problem. No Linux deployment needs, no worries.



Installing Lync Sucks, So I Fixed It.

There’s apparently a bug in certain Lync 2013 SP1 client install media, where if you put a custom MSP file in the Updates folder, the install gets all wonky and puts in all the shared components but Lync.exe never gets installed.

I didn’t like most of the solutions out there that I read about, and there’s other weirdness with the install so I made the script below and called it Install.cmd. In the same folder as the script, make a folder called SystemDrive, then Temp, then Lync. Put all the install files (setup.exe, the x86 and x64 folders, etc) there and don’t forget to create/place your config.xml file. Create your MSP with setup.exe and put it in the Lync folder – not in the x86Updates folder. If you use the Cisco remote call stuff, put your addrccmenu.bat file in the Lync folder too and configure the server. If you don’t use that, remove that part of the script.

ECHO Downloading install files…
ECHO Download complete. Installying Lync…
START “Install Lync” /WAIT %SYSTEMDRIVE%TempLyncsetup.exe /config %SYSTEMDRIVE%TempLyncx86lync.wwconfig.xml

ECHO Waiting for the Lync base install to complete…
IF %ERRORLEVEL%==0 GOTO :Loopstart

IF EXIST “%ProgramFiles%Microsoft OfficeOffice15lync.exe” SET Success=YES
IF EXIST “%ProgramFiles(x86)%Microsoft OfficeOffice15lync.exe” SET Success=YES

ECHO Base install complete. Installing configuration pack…
START /WAIT Msiexec.exe /update %SYSTEMDRIVE%TempLyncconfig.msp

ECHO Configuration pack installed. Adding Cisco Remote Call Plugin….
%SYSTEMDRIVE%TempLyncaddrccmenu.bat yourserverinfohere

ECHO Install complete. Removing temporary files…

ECHO Install failed. Removing temporary files…

Use this freely, just give credit where credit is due.