Dude where's my PFE?

I was a Premier Field Engineer (PFE) for Microsoft.

Dude where's my PFE?

  • Windows 8 Tip of the Day–Bitlocker PIN

    Today’s tip…

    While it still requires administrative privileges to configure BitLocker, with Windows 8, standard users can now by default change their own PIN/Password.  It is recommended that this be used in conjunction with the ‘Configure use of passwords’ GPO setting to enforce length and complexity.

    One thing this means for enterprises is that they will be able to do their Windows deployments all with the same PIN/Password and allow their users to change it post-installation.

    By default, this feature is included in Windows 8.

    If you do not want this feature, then you can enable a GPO to Computer Configuration\Administrative Templates\BitLocker Drive Encryption\Operating System Drive \Disallow Standard Users to change PIN or Password.

  • A visit to the SPA

    Server Performance Advisor 3.0.  We love it, we hate it, we didn’t want to watch the video on Channel9….

    So the Dude was kind enough to blog about it.  This is a tool, that is still sort of new, but can provide some valuable information into what is going on inside a a host that is an IIS or Hyper-V or Windows machine….

    So without further adieu I give you SPA 3.0….

    Well, actually, there is some adieu, because I need to show you how to properly install it yet…in my domain…named Peaches.

    So, the idea here is as follows.  To use SPA one must provide a host to collect and analyze data to.  We have targets we want to collect performance information about, but we need a spot to throw it all.  That host in my example is named 2008R2-MON.

    You build it up, give it some space, some CPU, memory, network, get it on the domain, install .NET Framework 4.0, service pack it up and then install SQL 2008 Express Edition….as follows:

    sql1

    And then…

     

    sql2

    and then…

    sql3

    and then…

    sql4

    and then…

    sql5

    and then…

    sql6

    and then…

    sql7

    and then…

    sql8

    (assuming we’re just being boring and installing to C:, which is what I did…)

    sql9

    I switched to ‘Default Instance’ to make things easier on myself later on.  In case they got difficult anyway.  (they didn’t)…

    sql10

    and then…

    sql11

    (Yes, my domain name is ‘peaches’ in my test lab…)

    sql12

    (I gave myself SQL Admin rights, in production you should consult a quality DBA for this really)

    sql13

    I opted out of SQL Error Reporting and Feature Usage this time, but really you should opt in for production, that way when something is on the code chopping block, the PM can know to not chop the feature you always use…

    sql14

    Woot it passed..

    sql15

    and then…

    sql16

    and then…

    sql17

    It’s alive!

    image

    (I love that movie)

    So, now that you have SQL installed, what about SPA 3.0?  (this is a blog post about SPA 3.0 after all…)

    Download SPA 3.0 from here:  http://msdn.microsoft.com/en-us/windows/hardware/hh367834

    Run it:

    spa2

    and then

    spa3

    and then

    spa4

    and then

    spa5

    Here we connect to SQL…

    spa6

    And we now are using these APs…

    spa7

    Create a share (I named mine ‘share’) and make sure you have rights to write to it, alright?

    spa8

    Pick your poison, er, AP for use, and how long to collect data…

    spa9

    Check the boxes and click “Run Analysis” at the bottom right.

    spa10

    spa11

    Once data is gathered, the machine you are running this on will get busy with its bad self as it parses the data:

    spa12

    spa13

    Results look like this…

    spa14

    spa15

    Hope this helps you with your visits to the SPA…

  • How to determine who is connecting to your server in cached mode.

    Applies to:  Exchange 2000/2003

     

    This may seem like a basic thing to some people, but for those who don't know, here goes.  This can be easily done by running Exmon, available here.

    So download Exmon and fire it up on your Exchange Server.

    Go to the By Clientmon tab, and in there you'll see a column named "Cached Mode Sessions".  If you have something other than 0 in that field, then your user is connecting over Cached mode.

     

    Hope that helps, I've had the question a few times before.

  • The network impact of a Windows 8 RT device on your network.

    Edited!

    So someone had this question.  It’s a good one.  I didn’t know the answer so I found out….

     

    Articles here and here would indicate that network traffic should be both intermittent and light.  So….lets check it out.

    The Test:  I built a Windows 8 VM in my lab.  Updated it, updated default Windows Store Applications, created a new user account that I had never logged in as and then setup a netsh trace session from an elevated command prompt:

     

    mkdir c:\trace

    cd c:\trace

    netsh trace LAN capture=yes report=yes tracefile=c:\trace\file.etl

     

    And then I logged out and logged into the new ID.  The plan was to run it for 20-30 minutes but I went downstairs to talk to the wife and you know how that goes so an hour or so later I remembered my test!  Went upstairs and logged out, logged in as my administrator user and opened an elevated command prompt and did:

     

    cd c:\trace

    netsh trace stop

    It looked like this:

     

    image

    Which isn’t horribly exciting, but the etl file and file.cab file are Smile

    So I put them on my debugging machine via SkyDrive and went to town.

    The Results:

    Very little traffic, most of it in spurts, every 5 minutes as expected. 

    image

    You can see it in the graphic above.  I’ll actually need to do a longer trace to get a better feel for statistics, but I wouldn’t sweat a Windows 8 RT or Pro device on your network.

  • How to get Best Practice Analyzers to collect with PowerShell!

    This update comes to us from Chuck Timon, a SSEE in CTS…

     

    In PowerShell, run –

    Get-BPAResult –ModelId Microsoft/Windows/Hyper-V > c:\temp\hyper—vbpa.txt

    Or to get a filtered output

    Get-BPAResult –ModelId Microsoft/Windows/Hyper-V | fl ComputerName,Severity,Category,Title,Compliance > c:\temp\hyper-vbpa_formatted.txt

     

    How cool is that?!

  • The one I'm proud of

    I did a few talks at TechEd (and TechReady for that matter) this year.  And this is the one I was happiest with.  I hope you enjoy/enjoyed it.

     

    Jeff

     

    http://channel9.msdn.com/Events/TechEd/Europe/2012/AAP303

     

     

  • When an Exchange Server doesn’t Exchange…

    “Well the high sheriff, told his deputy, won’t you go out and bring my Lazarus?”

    Why am I quoting the Po Lazarus tune, the opening song of “O Brother Where Art Thou?” when I’m supposed to be talking about the Exchange Server that doesn’t?  It’s the Chewbacca defense!  This Exchange Server is so hosed I can comfortably quote an old folk song instead of talking about the server…

    Ok ok, I’ll talk about the server:

    This server is a Windows Server 2008 R2 SP1 Server running 10G E cards to talk to storage and it performs like it shouldn’t.

    image

     

    And Holy Moly!  DPCs consume more CPU than any one thread on the box.  Googly moogly!  We’ve got a problem here.  But why?  What does it mean?

    Right Click this graph and select Summary Table:

    image

    Here we go, our DPCs are in SYSTEM (4), module elx_octeamvlan.sys.  But wait, there’s more, why?

    image

    Seems this driver in SYSTEM is spending a lot of DPC time on cores 6, 0 and 4.  Odd.  Lets see what else we can find to help them write a better driver:

    DPCs are high, way too high:

    image

    Observe, DPC count is low on 6/4/0 cores, but waits are um, not low:

    image

    Huh, lets see what it is (symbols didn’t resolve sorry, but its NDIS.  The Driver / Hardware is a 10G E adapter:

    image

    Same function call in each of the three cores, lots of wait times.  We’re having trouble with the drivers implementation of how they talk on the network via NDIS.  They are aware and I believe have already fixed the problem.  Woot!  Another happy customer.

  • PAL 2.3 with Multi-Threading!

    PAL (http://pal.codeplex.com/) is a favorite tool of mine, written by Clint Huffman.  I’ve written about it a few times but maybe you weren’t aware that the newest release has multi-threading capability?

    It’s no in your face though really, just an option on the last page, the Execute page:

     

    image

     

    If you assign more than you have cores, your machine will be pretty unusable during the processing of a BLG, but it cuts time down significantly on complex traces.  Give it a shot!

  • How I stand up a new MDT environment, Part 3

    Step 3.  Here come the apps!

    Much like the Operating System area, in the Application area we want to create a logical folder structure.  These are applications we may want to cook into our reference image.

    In the end, mine looks something like this (I’m building out a new MDT 2012 site here at home, so these are apps I install on my home machines).

    image

    But these are just folders!  Where are the APPS?!!?1111!bbqlazers!

    Ehm, Ok, here they are, we’ll start with Office 2010:

    image

    Right click the folder and select New Application.

    Select the default radio button:

    image

    Fill in the fields in the next screen:

    image

    and hit next.  For Office, mount the ISO of Office 2010 and point it to the architecture you want to install.  I’m picking x86.  For other applications, pointing to the directory with Setup or the root of the CD should work mostly.

    Hit Next and note the directory its creating, make sure it makes sense.

    image

    Then hit next.  On the next screen, the command line is where you’re going to want to put in the silent and whatnot install switches. Office though, MDT will do for us, so I’m going to be lazy and just put in setup.exe.

    For other apps, you can contact the vendor to get the silent switches, or use the awesome website www.appdeploy.com.

    image

    Next will show you the summary of what you’ve picked.  Then next and it will copy from the DVD.

    image

    Office and MDT are pretty integrated.  So you can go to the properties of it and there is an extra tab from all the other applications.  This will let you do your office customizations and whatnot.

    image

    So after yours is done, wack apply.

    image

    After hitting apply, then doing the drop down at the top to None and Apply, and then ProPlusr and apply, Details should look like this:

    image

    See, the switches are now in place.  We have an application.  Now import the rest of your applications (with silent switches if possible) and continue to the next blog post.

  • Windows 8 Tip of the Day

    Today’s tip…

    To quickly start your Windows8/Server 2012 machine - Bring up Charms (Winkey+I OR mouse around in bottom-right corner to bring up Charms) – Settings which brings up the below screens (at the regular desktop OR at the Modern Desktop)

     

    clip_image001

    clip_image002

  • Disk in-Depth

    I started an article on Disk performance and characteristics for the PFE Performance Wiki a while back.  I had actually forgotten about it (those who know me know my memory is Swiss Cheese sometimes).  Anyway, here is a link to the article:

    http://social.technet.microsoft.com/wiki/contents/articles/disk-in-depth-pfe-performance-guide.aspx

    If you are a disk expert, feel free to critique and/or update Smile

    Cheers,

    jeff

  • The effects of Acoustic Management on rotational media disks.

    So one of the trends I’ve been seeing in WDRAPs I’ve performed is that companies are making use of older hardware for newer tasks on a much more frequent basis than before.  Budgets seem to mandate a 4-5 year (or longer) pc recycle timeframe and the net result of this is companies are running their new image of Windows 7 on hardware that in some cases is over 7 years old (personal experience talking here, no statistics to back it up sorry, though that might be interesting).

    So when I go into a company to do a WDRAP I am often evaluating the security and performance of an older chassis.  Something I’m frequently running into is that some models of desktop have Automatic Acoustic Management (AAM) enabled by default to a value of 128 (quiet).  Sometimes, the BIOS is actually set to ‘Bypass’ which at first blush might make the user or administrator think the BIOS has this feature disabled.  Incorrect in my experience!  Bypass actually seems to let the disk decide, so if the manufacturer of a disk set the disk to prefer quiet mode, Bypass will let the disk run at a slower rotational speed to keep the head quiet.

    This increases the seek time noticeably, as well as overall transfer time.  (You can go over more blocks in a minute if you are spinning at 7200 RPMs than if you are spinning at say, 5400 RPM, same goes here for AAM).

    Setting the BIOS to Performance (forcing the drive to run at the 254 level of performance instead of 128/quiet) has caused some boot times of older XP images to speed up by over 100 seconds in the field.

    So really, check out this setting.  You might also note that some hardware vendors in later/modern disables this setting and sells it as a performance gain, rightfully so.  Most drives are fairly quiet these days anyway, so much so that most models of hardware I’ve changed this on the end user doesn’t notice the difference in noise levels, only performance.

    Of course your mileage will vary by model of drive, motherboard, and BIOS.

    Additional links that you might find interesting on the topic are listed here.

  • VDI RunAsRadio.com post

    The dude did a recording on VDI for RunAsRadio with Richard Campbell.  Link below.

    http://runasradio.com/default.aspx?showNum=289

  • PAL 2.3.1 released!

    Why?  VMware template.  Awwww yeah, the Dude strike again.  If you are running in VMware, we can capture the memory ballooning driver and real processor util in the guest and publish it to a PAL report.

     

    This release delivers!

    http://pal.codeplex.com/

  • My first MDT 2010 post

    So, I’ve been working on some MDT 2010 work for various customers for about six months or so, but I finally found something that struck me as sort of odd and blog-worthy.

    So I created this big long involved task sequence for a customer and they attempted to lay it down over some older server installs in their lab and ran into errors.  The errors were generic 80004005 errors as seen below, along with DiskPart errors:

    Capture

    Since the drive hasn’t been setup, I frankly wasn’t sure where to look for logging information to be honest.  No MININT directory when the drive isn’t formatted you know?

    So, I sat and thought for a moment.  What could make my C: not present?  Something in the diskpart command.  But what?  As I sat pondering it, I went back over my task sequence in my head (I didn’t have access to the console at the time).

    One thing we had done, was specified larger drives for C: (they were moving from 2003 images to 2008 R2, and 2008 R2 requires a larger footprint on the disk).  The disks for the old system were likely setup in the SCSI RAID controller for the local machine.  Which means from WinPEs’ view, it’s a drive right.  So I looked in diskpart after hitting F8 here and look what I saw:

    Capture1

    Sure enough, disk 0 is 15 gig, my task sequence is configured to format the 1st disk to a 50 gig C: partition and then carve out the rest for D:.

    Disks re-configured in the SCSI controller to one big fat disk and viola, everything works.

  • Pal 2.1 is released

    My buddy Clint Huffman, performance expert and all around great guy, has just released PAL 2.1!

    http://pal.codeplex.com/

    Pick it up, give it a whirl.

    It includes a threshold file for FAST search for SharePoint.

    Anyway, more coming from me soon.

     

    Jeff

  • How I stand up a new MDT environment, Part 2

     

    Step 2.  Import OS into the reference share

    So mount an ISO of the OS you want to capture and deploy into Hyper-V as the DVD drive of the MDT-Console VM.

    Then in the MDT workbench, right click the folder “Operating Systems” and create a folder for that OS.  Then right click that folder and select import.

    image

    Make sure you keep it on the “Full set of source files” and hit Next.

    Then select the root of your mounted ISO as your source.

    image

    The destination directory name is NOT the name you set for the folder in MDT workbench, but is the flat file system directory.

    image

    Then we are at the Summary, which should be fairly logical and look something like this:

    image

    Then it will import:

    image

    When its done, it gives a summary and a finish button.  Click it and witness the power of this fully operational MDT Reference Share!  Muwauahahahah

    Er, sorry, yeah, so note that I imported Ultimate, but look what I get:

    image

    Multiple OS’s.  Anyone know why?  That’s right, the Ultimate WIM has the previous editions in it.  Do they take up extra space?  No, not really.

    image

    So now we have an OS.  Rinse and repeat for all your OS’s you want to service in the reference area.

    Then, lets Right Click the MDT Reference Share in the tree and select “Update Deployment Share” so we can create the initial WinPE isos.

    image

    Select the defaults, next next and let it run.

    image

    Once this is done, we’ll be able to craft a task sequence and do some customizations.

  • SPA, not your typical freeware

    In the Vital Signs workshop, we touch upon the tool SPA (Server Performance Advisor).  This unsung hero of performance evaluation deserves some love, which is why I'm writing about it over 5 years after its last update was published and made available on the downloads site, here:

     http://www.microsoft.com/downloads/details.aspx?FamilyID=61a41d78-e4aa-47b9-901b-cf85da075a73&displaylang=en

    So, Clint Huffman, creator of PAL, wrote up this excellent article on how to troubleshoot server performance problems...

    So, check it out here:

     http://channel9.msdn.com/Wiki/PerformanceWiki/HowToIdentifyBottleneckSPATool/

     It's the bomb, and it's free as in beer.

  • How I stand up a new MDT environment, Part 5

    Step 4.  Task Sequences

    So now with Operating Systems and Applications added to the console, it’s time to add a Task Sequence or three…

    image

    I always give my Task Sequences an ID of a number.  You can use anything, but I like the numeric relevance, and its easier to type if you end up specifying a TS later…

    Anyway, fill in the wizard already!  Smile

    image

    This is a “Standard Client Task Sequence”

    image

    Pick an Operating System…

    image

    No point in specifying a product key, we’re going to sysprep this image…

    image

    None of these fields really matter, this is for the reference image, and our specifications on the Deploy side will overwrite this stuff…

    image

    Doesn’t matter what local admin is, again, we’re sysprepping this and everything will be overwritten by Deployment…

    image

    Next, Finish, and done!

    image

    But that was just creating the TS, not modifying it, which is much more interesting.  But, time to get the kids to bed first…

  • RunAsRadio.com spot

    Look for the Dudes’ interview with Richard Campbell on RunAsRadio, where I get into a discussion on Slow Boot/Slow Logon scenarios, tools to use and common culprits.  The spot appears on May the 18th!

    Links discussed on the interview are:

    http://social.technet.microsoft.com/wiki/contents/articles/10130.root-causes-for-slow-boots-and-logons-sbsl.aspx

    http://blogs.technet.com/b/yongrhee/archive/2012/02/19/list-of-performance-hotfixes-post-sp1-for-windows-7-sp1.aspx

    Thanks!

    Jeff Stokes

  • Windows 8 Tip of the Day–Bitlocker

    Today’s tip…

    Previously, BitLocker encryption has been an ‘all or nothing’.  Either a volume was completely encrypted or it was not.  Windows 8 brings us a new option, ‘Encrypt Used Disk Space Only’.  Just like it sounds, this option allows us to encrypt only the parts of the volume that are currently in use.  As files are added to the volume, they are encrypted as well.

    To the end-user this means a much shorter time for BitLocker to complete the initial encryption process for new volumes.  For volumes that already have data on them, it is recommended that the ‘Encrypt entire drive’ option be used.

    There is a GPO, which you can use to enable Used Space Encryption for Windows 8.

    Computer Configuration\Administrative Templates\BitLocker Drive Encryption\Operating System Drive\Enforce Drive Encryption type on Operating System Drive:

    • Allow User to Choose
    • Full Encryption
    • Used Space Encryption

    This GPO is also available for Fixed Data Drives and Removable Drives.

    Manage-bde Command:

    • Manage-bde –protectors –on C: -rp –used
  • The Dudes view on IT Infrastructure and Sustainability in same.

    Hope you enjoy.

  • Repeating 623 version store error.

    Applies to Exchange 2003

    I had a case a couple weeks ago I thought I'd write about.  What was happening is the Version Store would run out of memory and a 623 error would throw.  Version Store buckets allocated would climb from 4 to over 2000 in less than 5 minutes.  The store would then rollback its transactions for a bit, recover, run for 10-15 minutes and repeat the whole cycle over.

    This is atypical 623 behavior to say the least.

    What we ended up doing to fix it was capture an adplus dump, 3 actually, triggered at Version Store buckets allocated crossing 1600.  We captured 3 dumps at 1 minute intervals.

    The 1st dump caught the problem transaction, the last 2 were both capturing rollbacks, so this was a quick ramp up.

    Turns out the problem was being caused by a bad meeting request being processed over and over again.  We tried all kinds of ways to delete the message, all of which caused Version Store buckets allocated to climb.  A MFCMapi hard delete ended up doing the trick.

  • How to fix smashed schema in Exchange 2003

    Dan and I and some other engineers wrote up a blog post you can find here on how to recover from a smashes schema scenario on your Exchange Servers.

     

    It's pretty succinct so I don't have anything to add to it, it's an interesting read though.

  • Today I was a WSUS/IIS Engineer

    And it wasn't half bad.  At this customer site I am at currently doing MDT 2010 deployment creation for a Windows Server 2008 R2 rollout, WSUS was breaking for the desktop deployment folks.

    WSUS was enabled on a Windows 2008 R2 server.  The website couldn't be accessed, giving a server 500 error.  When I looked in the Application and System event logs, two things stood out at me.

    The first thing that caught my eye was in the System event log.  A 2025, from SRV stating that the MDT reference machine in a VM on the 2008 R2 host was doing a possible Denial of Service attack against the 2008 R2 server and the connection was closed.

    Odd.

    Second was that in the logs for WSUS, 13042, could not self update.  Strange.  I started messing around with it, and long story short of it, the service that the Application Pools in IIS were running under did not have any rights to the IIS folders.  Restoring rights to the IIS folders resolved the issue and WSUS happily patched the MDT Reference image.