Thursday, January 31, 2013

SCCM 2012: Not able to boot clients from PXE

Talk about Murphy's Law ...

One of my Secondary Site servers stopped processing PXE requests.  In fact, I actually have 2 Secondary Site servers doing this, but haven't had much time to troubleshoot the other one.

I noticed the following things were happening:

  1. In \Program Files\SMS_CCM\Logs ... the SMSPXE.log file does not exist
  2. The Windows Deployment Service will not start.  When checking the Event logs there are two errors that pop up:
    1.  An error occurred while trying to initialize provider WDSDDPS from C:\Windows\system32\wdsddps.dll. Windows Deployment Services server will be shutdown. Error Information: 0x906
    1.  An error occurred while trying to start the Windows Deployment Services server.  Error Information: 0x906
So searching for that error code: 0x906 returned some excellent articles for troubleshooting WDS on its on, however nothing specific for SCCM.  Typically they would get you to run the following two commands:

wdsutil /uninitialize-server
wdsutil /initialize-server /reminst:

This doesn't jive very well for SCCM though since it prefers to configure WDS on its own.  Here is how I fixed it:

1) ConfigMgr Console: Administration -> Site Configuration -> Servers and Site System Roles.  Select your site server, then right-click Distribution Point and select Properties
2) Go to the PXE tab and uncheck to disable, do the same for Multicast if you have it enabled.  When asked if you want SCCM to remove WDS, say No.
3) On the Secondary Server, uninstall the Windows Deployment Services Role then restart.
4) If exists, manually delete the RemoteInstall folder which is on your largest partition by default
5) Reinstall the Windows Deployment Services role and restart
6) Go back into the ConfigMgr Console and re-check the PXE box in the Distribution Point Properties and configure your PXE settings
7) Watch the distmgr.log to monitor the progress of the PXE installation and setup

SCCM will re-create the RemoteInstall folder and populate it with your boot images.  This can take a while depending on  the configuration of your Secondary Site server so be patient.  Once it is done go ahead and give it a shot!



Wednesday, January 30, 2013

Happy Launch Day Blackberry!

#BB10, #Blackberry.

A break from my usual missives about SQL and SCCM.  RIM has announced that they have not only released their new flagship phone, the Z10, but they also decided to re-name the company!

Us Canadians will be able to get the new Blackberry Z10 starting Feb 5th, with the US starting sometime in March.  I've long been a fan of the Blackberry platform so I'm pretty optimistic about it!

Good Luck Blackberry!  I really can't wait to get my hands on one ! :D

Monday, January 28, 2013

Report Building Part 5: Parameters

So we have this lovely SQL Query, but how do we tell it where to look?

The answer ?

Simple, we give it Parameters!

There are built-in Parameters that come with Report Builder but unfortunately they aren't styled specifically for SCCM (mostly of the time/date variety), so we would have to create our own.  The type of Parameters I'm going to focus on is a Dataset Parameter since that allows us the kind of granular control that we are looking for.  The Dataset Parameter has two parts:

The Dataset

This is basically a SQL query to identify a specific section of your database that relates to what you want to find.  In this example, I'm trying to limit my query to only run against specific collections, and I want that option to be available as a dropdown so I can easily choose collections at will.  In the last post I'll take you through the complete creation process in Report Builder, but for the time being this is the query that I'm going to use:

SELECT Name, CollectionID
FROM v_Collection

This query will basically report back all the Collections you have in your environment and order them by name.  So now that we have the dataset figured out, now we need to create:

The Parameter

A Parameter is usually identified with an @ symbol at the beginning of the name.  Within the Parameter would specify which dataset you are using in the Parameter as well as the value and label fields.  This is important as this is how the dropdown is populated.  Looking back at the dataset query above,  you can gleen this info out of it:

Dataset: Dataset1 (this is the name assigned automatically by Report Builder, you can change this if you wish)
Value field: CollectionID
Label field: Name

This will give you a list of collections that are sorted by the collection name.  In the background its linking the name to the CollectionID so you don't have to try to do this by Collection ID specifically.

Once the Parameter is built, you have to add it to your primary SQL Query so the two essentially talk to each other.  This is done using a WHERE statement, like this:

SELECT Manufacturer0, Model0, COUNT(model0) AS 'Count'
INNER JOIN v_FullCollectionMembership ON v_GS_COMPUTER_SYSTEM.ResourceID = v_FullCollectionMembership.ResourceID
INNER JOIN v_Collection ON v_FullCollectionMembership.CollectionID = v_Collection.CollectionID
WHERE v_Collection.CollectionID = @CollectionID
GROUP BY Manufacturer0, Model0

Note that in this, I've named the Parameter CollectionID.  Because it is a parameter, you will need to enter it as @CollectionID.

So how does this all fit into Report Builder?  So far we've talked about some general/basic SQL Query building concepts but haven't really touched Report Builder yet.  In the next segment we will go through the Report Building process from end-to-end using the queries that we've built.

Everyone is different when it comes to building SQL Queries, as to how they wish to go about it.  Personally, I've gotten the hang of manually typing out a Query in Notepad first, then slowly cleaning it up with the actual report building as a final step.  If you wanted to check your progress along the way you can use Report Builder or SQL Server Management Studio to test your SQL Query to ensure that you are using the correct syntax.

Once this series is complete I do plan on revisiting a lot of this as I'm still developing my skills as a blogger .. there is a lot that I have to clean up.

Monday, January 21, 2013

System Center 2012 - SP1 RELEASED!!!

Looks like Microsoft dropped SP1 for the System Center 2012 Suite!!

Pierre Roman over at the IT Pro Connection blog posted about it today, outlining the features of the entire System Center 2012 SP1 Suite as well as some info on licensing.  You can check it out here:

Happy Updating!

Sunday, January 20, 2013

Installing Windows 8 Enterprise on a Dell Latitude 10 via USB

While SCCM 2012 SP1 is on the horizon, this still may be useful information for anyone who has a Dell shop like mine.

The Dell Latitude 10 Tablet ships with Windows 8 or Windows 8 Pro.  In order to get advanced networking features like DirectAccess, you need to run Windows 8 Enterprise.  Since the Latitude 10 has a UEFI BIOS, the process is slightly different if you wanted to install Windows 8 Enterprise via USB stick.  Here is what you need to do; you will need a USB stick that is at least 4GB in size with nothing on it:

  1. Download and install the Windows 7 USB/DVD Download Tool
  2. Download your Windows 8 Enterprise 32-bit ISO from Microsoft
    1. The Latitude 10 runs a 32-bit Atom CPU, it is not 64-bit capable
  3. Do these steps to create the bootable USB Stick
    1. First, choose your ISO file, then click Next
    2. Select USB Device
    3. From the dropdown, choose your USB device and select Begin Copying
    4. Once the Tool has finished building the bootable USB stick, click Finish
  4. Open Windows Explorer and then open the USB stick
  5. Copy the contents of the USB stick to your Desktop
  6. Once the content has been copied, format the USB stick using FAT32
  7. Copy the contents back to the USB stick
You now have a USB Stick that is bootable for systems running a UEFI BIOS.  UEFI is unable to boot from an NTFS-formatted USB stick, only FAT32.  Now on to the Latitude 10:

*Note: You will need the included Dock for this or a USB hub to connect into the USB port.  The Win 8 Enterprise ISO does not contain any drivers for the Dell touch interface so a keyboard and mouse is a MUST.

  1. Connect the USB key, a Keyboard, and a Mouse.
  2. Turn the Latitude 10 on, start tapping F12 as soon as you see the Dell Logo
    1. FYI if you do not have a keyboard, you can bring up the boot menu by pressing and holding Vol + when you see the Dell Logo
  3. Select the USB key as your boot device
  4. Install Win 8 Enterprise
    1. I don't yet fully know the school of thought around the built-in partitioning.  For sake of testing I deleted all of the partitions on the SSD and let Win 8 create a partition, the tablet runs fine.  Do this with caution though if you did not receive media with the Tablet and want to maintain a copy of the original software.
Now you will need to go to the Dell Support Site to download drivers.  I recommend downloading the Driver CAB, which contains all the drivers for this device, along with a copy of 7-zip or your favorite unpacking tool to extract the CAB file info.  Some of the drivers include an installer, others will have to be installed using the Update Driver method via Device Manager.

So there you have it, here is one great way to install Windows 8 Enterprise on your Latitude 10 tablet.  I suspect these instructions would work for other tablets as well with a few modifications but I haven't tested that.  If there are other ways to do this please share them below in the comments!

An observation that I've found on my Latitude 10.  I decided to immerse myself in the platform by ditching my laptop and only using the Lat 10 for everything.  While attempting to build another bootable USB key for 2008 R2, I came across a frustrating little quirk regarding the Windows 7 USB/DVD Download Tool.  When you attempt to create a USB key with a device that uses an EFI-based BIOS, bootsect.exe doesn't work which results in having a USB key that is not bootable.

The problem ?

bootsect.exe cannot be used with EFI-based systems.