Wednesday, 14 July 2010

Service Manager Authoring Console RC Released

It's about time!

Microsoft released today the Release Candidate of the System Center Service Manager Authoring Console.

Any server with a SCSM component installed requires an update (This includes the Datawarehouse, Self Service Portal and any clients with the console installed).

The update is here:
http://support.microsoft.com/kb/983572

and the tool is here:
http://www.microsoft.com/downloads/details.aspx?FamilyID=40b8f1b7-da63-46ae-9ca4-ef007fc3cb29&displaylang=en

Finally custom forms can be created easier than having to know Visual Studio at a developer level!

I've started with some initial tests today and I'll post some more details tomorrow.

Monday, 12 July 2010

Configuration Manager Dashboard

I finally managed to get the dashboard installed!

After all the time I spent banging my head on the desk it turned out to be rather simple.
The problem I was getting was it appeared to install fine, until the very last moment and then it would roll-back all the changes.

Turns out it was Server 2008 R2's UAC getting in the way.

Where as an EXE allows you to right click and run-as Administrator an MSI doesn't, but since it then prompts later for elevation I presumed everything was fine and dandy. Not so...

In the end I ran CMD as Administrator and then launched the MSI from there with msiexec /i and it ran through and installed fine.

The simple things eh?

On that note, Microsoft have a couple of really good blog posts with some handy SQL queries that create some really good dashboards.


http://blogs.msdn.com/b/shitanshu/archive/2010/04/08/part-1-how-microsoft-it-using-configuration-manager-dashboard.aspx

http://blogs.msdn.com/b/shitanshu/archive/2010/04/11/part-2-using-configuration-manager-dashboard-for-software-update-deployment-readiness-patch-tuesday-checklist.aspx

http://blogs.msdn.com/b/shitanshu/archive/2010/05/02/part-3-sql-queries-used-for-creating-custom-configuration-manager-dashboard-in-microsoft-it.aspx

Friday, 9 July 2010

BSOD during OSD - AMD CPU's

I was working on cutting our images back down to a single WIM last month and decided to tackle the WIM we had to create for devices with AMD CPU's that were Blue Screening while using our main image.

Turns out that it was related to an incompatible file from Intel.

The issue is known about when upgrading from XP SP2 to SP3, not that this applied to me, but I thought I'd give the fix a try anyway and it worked!

The manual fix looks like this:
1.Restart computer and press F8 key repeatedly until Windows Advanced Options Menu appears.
2.Choose Safe Mode.
3.Browse to C:\Windows\System32\Drivers.
4.Find a file named “intelppm.sys” and rename it to “XXXintelppm.syx“.
5.Restart

So it was easy enough to add a Run Command Line step to our task sequence after applying the WIM with a WMI Query filter on for the affected CPU Type to rename the file.

There's apparently another couple of similar problems with different methods to fix it so I'll list them, but I've not tried them myself.

Disable intelppm.sys via the registry:
http://blogs.msdn.com/b/virtual_pc_guy/archive/2005/10/24/484461.aspx

Microsoft Hotfix:
http://support.microsoft.com/kb/953356/en-us

System Center Service Manager 2010

I've had the pleasure of testing System Center Service Manager 2010 (SCSM) since it RTM'd and I've got to say that so far it's shaping up to be a brilliant product, but that's not to say it hasn't got it's flaws.

I'm just about to install the SCSM Dashboard Solution Accelerator so I'll leave this post at this for now but I'll be posting one or two things soon about SCSM and where it's impressed me/solved a business need or annoyed me/missed vital bussiness needs.

SCSM Dashboard link:
http://technet.microsoft.com/en-us/library/ff758669.aspx

Chassis Type vs Model Name

We currently use WMI Query filters in our task sequences to make sure things like AD OU placement for mobile devices gets applied to the devices that need it.
These lists are starting to get a little long now, especially as we've had a larger turn over of different manufacutures in the last 18 months than we used to have.

So I was thinking the other day if there might be a better way and I remembered that WMI stores the chassis type in Win32_SystemEnclosure and that SCCM gathers this.

However... nothing is ever straight forward.
It turns out that just because there's a long list of different chassis types to choose from, the manufactures decided they would. Therefore when I expected to see lots of "Desktop" what I did see was "Desktop", "Pizza-Box", "Mini-Tower" etc.

The SQL Query below is a tidied up version that at least makes it reasonably easy to read. I'll post again when I've had chance to put this into a full report, probably with some more aggregation to just show Desktops, Mobile Devices & Servers.

SELECT v_R_System.Name0,
CASE WHEN v_GS_SYSTEM_ENCLOSURE.ChassisTypes0 LIKE '1' THEN 'Virtual' WHEN v_GS_SYSTEM_ENCLOSURE.ChassisTypes0 LIKE '2' THEN 'Blade Server' WHEN
v_GS_SYSTEM_ENCLOSURE.ChassisTypes0 LIKE '3' THEN 'Desktop' WHEN v_GS_SYSTEM_ENCLOSURE.ChassisTypes0 LIKE '4' THEN 'Low-Profile Desktop' WHEN
v_GS_SYSTEM_ENCLOSURE.ChassisTypes0 LIKE '5' THEN 'Pizza-Box' WHEN v_GS_SYSTEM_ENCLOSURE.ChassisTypes0 LIKE '6' THEN 'Mini Tower' WHEN v_GS_SYSTEM_ENCLOSURE.ChassisTypes0
LIKE '7' THEN 'Tower' WHEN v_GS_SYSTEM_ENCLOSURE.ChassisTypes0 LIKE '8' THEN 'Portable' WHEN v_GS_SYSTEM_ENCLOSURE.ChassisTypes0 LIKE '9' THEN
'Laptop' WHEN v_GS_SYSTEM_ENCLOSURE.ChassisTypes0 LIKE '10' THEN 'Notebook' WHEN v_GS_SYSTEM_ENCLOSURE.ChassisTypes0 LIKE '11' THEN 'Hand-Held'
WHEN v_GS_SYSTEM_ENCLOSURE.ChassisTypes0 LIKE '12' THEN 'Mobile Device in Docking Station' WHEN v_GS_SYSTEM_ENCLOSURE.ChassisTypes0 LIKE '13'
THEN 'All-in-One' WHEN v_GS_SYSTEM_ENCLOSURE.ChassisTypes0 LIKE '14' THEN 'Sub-Notebook' WHEN v_GS_SYSTEM_ENCLOSURE.ChassisTypes0 LIKE '15' THEN
'Space Saving Chassis' WHEN v_GS_SYSTEM_ENCLOSURE.ChassisTypes0 LIKE '16' THEN 'Ultra Small Form Factor' WHEN v_GS_SYSTEM_ENCLOSURE.ChassisTypes0
LIKE '17' THEN 'Server Tower Chassis' WHEN v_GS_SYSTEM_ENCLOSURE.ChassisTypes0 LIKE '18' THEN 'Mobile Device in Docking Station' WHEN v_GS_SYSTEM_ENCLOSURE.ChassisTypes0
LIKE '19' THEN 'Sub-Chassis' WHEN v_GS_SYSTEM_ENCLOSURE.ChassisTypes0 LIKE '20' THEN 'Bus-Expansion chassis' WHEN v_GS_SYSTEM_ENCLOSURE.ChassisTypes0
LIKE '21' THEN 'Peripheral Chassis' WHEN v_GS_SYSTEM_ENCLOSURE.ChassisTypes0 LIKE '22' THEN 'Storage Chassis' WHEN v_GS_SYSTEM_ENCLOSURE.ChassisTypes0
LIKE '23' THEN 'Rack-Mounted Chassis' WHEN v_GS_SYSTEM_ENCLOSURE.ChassisTypes0 LIKE '24' THEN 'Sealed-Case PC' ELSE 'Unknown' END AS 'Chassis Type'
FROM v_R_System INNER JOIN
v_GS_SYSTEM_ENCLOSURE ON v_R_System.ResourceID = v_GS_SYSTEM_ENCLOSURE.ResourceID



Chassis TypeDisplay Name
1Virtual Machine
2Blade Server
3Desktop
4Low-Profile Desktop
5Pizza Box
6Mini Tower
7Tower
8Portable
9Laptop
10Notebook
11Hand Held
12Docking Station
13All-in-One
14Sub Notebook
15Space Saving Chassis
16Ultra Small Form Factor
17Server Tower Chassis
18Mobile Device in Docking Station
19Sub-Chassis
20Bus-Expansion Chassis
21Peripheral Chassis
22Storage Chassis
23Rack Mount Unit
24Sealed-Case PC


*Updated 27/01/2010* - Slight typo as I had 65 as Tablet PC, removed.  Also added easy read table.

Report not showing device Serial Numbers

While I was searching for a serial number for a device that needed reporting to the suppliers as faulty the other day I noticed that our report was showing a lot of systems with entries such as "To Be Filled By O.E.M." or "00000000".

This is down to SCCM using v_GS_SYSTEM_ENCLOSURE_UNIQUE.SerialNumber0 in default reports which pulls the serial number from the SerialNumber field in Win32_SystemEnclosure where some (awkward) manufacturers use SerialNumber field in Win32_BIOS.

However, with a little tweaking to the report it now shows all (well, more than before) the serial numbers from across different manufactures that store it in a different location in WMI.

SELECT DISTINCT
v_R_System_Valid.Netbios_Name0 AS [Computer Name], v_R_System_Valid.User_Name0 AS [Last User Logon],
CASE WHEN (v_GS_SYSTEM_CONSOLE_USAGE_MAXGROUP.TopConsoleUser0 IS NULL OR
v_GS_SYSTEM_CONSOLE_USAGE_MAXGROUP.TopConsoleUser0 = '-1')
THEN 'Unknown' ELSE v_GS_SYSTEM_CONSOLE_USAGE_MAXGROUP.TopConsoleUser0 END AS [Top Console User],
v_GS_OPERATING_SYSTEM.Caption0 AS [Operating System], v_GS_OPERATING_SYSTEM.CSDVersion0 AS [Service Pack Level],
v_GS_COMPUTER_SYSTEM.Manufacturer0 AS Manufacturer, v_GS_COMPUTER_SYSTEM.Model0 AS Model,
[Serial Number] = CASE
when v_GS_SYSTEM_ENCLOSURE_UNIQUE.SerialNumber0 ='00000000'
OR v_GS_SYSTEM_ENCLOSURE_UNIQUE.SerialNumber0 ='Not Available'
OR v_GS_SYSTEM_ENCLOSURE_UNIQUE.SerialNumber0 ='To Be Filled By O.E.M.'
OR v_GS_SYSTEM_ENCLOSURE_UNIQUE.SerialNumber0 ='N/A'
OR v_GS_SYSTEM_ENCLOSURE_UNIQUE.SerialNumber0 ='None'
OR v_GS_SYSTEM_ENCLOSURE_UNIQUE.SerialNumber0 IS NULL
then v_GS_PC_BIOS.SerialNumber0
Else
v_GS_SYSTEM_ENCLOSURE_UNIQUE.SerialNumber0
End

FROM v_R_System_Valid INNER JOIN
v_GS_OPERATING_SYSTEM ON v_GS_OPERATING_SYSTEM.ResourceID = v_R_System_Valid.ResourceID LEFT OUTER JOIN
v_GS_SYSTEM_ENCLOSURE_UNIQUE ON v_GS_SYSTEM_ENCLOSURE_UNIQUE.ResourceID = v_R_System_Valid.ResourceID INNER JOIN
v_GS_COMPUTER_SYSTEM ON v_GS_COMPUTER_SYSTEM.ResourceID = v_R_System_Valid.ResourceID INNER JOIN
v_FullCollectionMembership AS v_FullCollectionMembership_1 ON v_FullCollectionMembership_1.ResourceID = v_R_System_Valid.ResourceID LEFT OUTER JOIN
v_GS_SYSTEM_CONSOLE_USAGE_MAXGROUP ON v_GS_SYSTEM_CONSOLE_USAGE_MAXGROUP.ResourceID = v_R_System_Valid.ResourceID inner join
v_GS_PC_BIOS on (v_GS_PC_BIOS.ResourceID = v_R_System_Valid.ResourceID)
WHERE (v_FullCollectionMembership_1.CollectionID = @CollectionID) AND (NOT (v_GS_COMPUTER_SYSTEM.Manufacturer0 LIKE 'VM%')) AND
(NOT (v_GS_COMPUTER_SYSTEM.Manufacturer0 LIKE 'micro%'))
ORDER BY [Computer Name]


The SQL query above is set to use a prompt for the collection to run against so don't forget to either change this, or add a prompt for @CollectionID when creating the new report in the console.
I've also set the query to filter out virtual devices as I don't report on these using this report.

Where, what, who, eh?

Ermm... I kind of forgot I had a blog, hence it being so quiet.

Prepare for a storm of posts!