SCCM - Roger Zander Sourceforge Tools
Roger Zander Sourceforge Tools And Utilities
SMS/SCCM Peer2Peer AddOn
SMSTorrent is a Peer2Peer AddOn for SMS2003/SCCM2007 Clients. SMS/SCCM Clients are able to share the local Package cache with other Clients using the BitTorrent filesharing protocol.
http://sourceforge.net/projects/smstorrent
SMS Site Settings tweak
SMSSettings provides a GUI to modify SMS2003 (Microsoft System Management Server 2003) Site Settings which are not accessible over the normal SMS Admin Interface.
http://sourceforge.net/projects/smssettings
Screen Lock
This Tool does lock the Screen, Mouse and Keyboard for a specified time.
http://sourceforge.net/projects/screenlock
SMS Client Center
Troubleshoot and manage SMS 2003 advanced clients
http://sourceforge.net/projects/smsclictr
SMS 2003 Offline Hardware Inventory
Capture SMS2003 Hardware Inventory on Systems without Network connectivity or Systems without an SMS Agent installed. This Tool creates a DDR (DataDiscoveryRecord) and an IDMIF File for each scanned system.
http://sourceforge.net/projects/smshwinv
Secure Autologon
Enable Windows Autologon without a cleartext password in the Registry. The password will be stored by the Local Security Authority (LSA).
http://sourceforge.net/projects/autologon
SMS2003 Object Backup
Backup and restore a definable set of SMS 2003 Objects (Packages, Programs, Advertisements, Collections...). SMSObjBackup can also be used for Site Migration (Objects can be moved to another SMS Primary Site Server)
http://sourceforge.net/projects/smsobjbackup
SMS 2003 Adv.Client local policy import
A command line tool to assign local software distribution policies to an SMS 2003 Advanced Client. The Software will be installed independent of collection memberships.
http://sourceforge.net/projects/smspolimp
SMS CloneDP
Manage the assigned Software Packages of a Microsoft SMS (SystemManagementServer) 2003 DistributionPoint
http://sourceforge.net/projects/smsclonedp
SMS 2003 Software Request Web Form
SMS 2003 Software Request Web Form with a simple Workflow (mail/web based).
http://sourceforge.net/projects/smsswreq
SMS Collection Commander
Initiate SMS 2003 advanced client actions on a collection: Ping, WakeUp, HW/SW Inventory, ReRun Advertisements, Show logged on user, Download/Refresh Policy, Repair SMS Agents, Import Clients to the Collection...
http://sourceforge.net/projects/smscollctr
SMS OSD Program Import
SMSOSDXML extends the SMS 2003 Admin Console to import OSD Program-Settings based on a XML File. SMS OSD automatically creates such XML Files (SMSDeploy.xml) for each OSD Program created in the Admin Console.
http://sourceforge.net/projects/smsosdxml
SMS Package Dependency Viewer
Show "Microsoft System Management Server 2003" Software Package dependencies in a TreeView.
Computers Bright Mail
SELECT distinct dbo.v_R_System.Name0 AS [Computer Name], dbo.v_Add_Remove_Programs.DisplayName0 AS [Software Name],
dbo.v_Add_Remove_Programs.Publisher0 AS Publisher, dbo.v_Add_Remove_Programs.Version0
FROM dbo.v_Add_Remove_Programs INNER JOIN
dbo.v_R_System ON dbo.v_Add_Remove_Programs.ResourceID = dbo.v_R_System.ResourceID
WHERE dbo.v_Add_Remove_Programs.DisplayName0 like '%Bright%'
SQL Query to find the collections Hierarchy : SCCM Colleections
SQL Query to find the collections Hierarchy
WITH folderHierarchy (CollectionID,[Name],ParentCollectionID,[Path])
AS
(
SELECT
CollectionID,
[Name],
ParentCollectionID,
CAST('/'+[Name]+'/' AS VARCHAR(MAX)) AS [Path]
FROM
(SELECT
CollectionID,
[Name],
ParentCollectionID
FROM v_Collection
INNER JOIN v_CollectToSubCollect
ON v_Collection.CollectionID = v_CollectToSubCollect.SubCollectionID) AS V_1
WHERE
ParentCollectionID = 'COLLROOT'
UNION ALL
SELECT
child.CollectionID,
child.Name,
child.ParentCollectionID,
parent.[Path]+child.[Name]+'/' AS [Path]
FROM
(SELECT
CollectionID,
[Name],
ParentCollectionID
FROM v_Collection
INNER JOIN v_CollectToSubCollect
ON v_Collection.CollectionID = v_CollectToSubCollect.SubCollectionID) AS child
INNER JOIN folderHierarchy AS parent
ON parent.CollectionID = child.ParentCollectionID
)
SELECT
fldr.[Path],
fldr.[Name],
fldr.CollectionID
FROM
folderHierarchy AS fldr
Creating a Collection Query From SQL : Collections Migration from One server to other
Creating a Collection Query From SQL : Source : http://myitforum.com/cs2/blogs/cnackers/archive/2009/04/22/creating-a-collection-query-from-sql.aspx
Credit to Dave Fuller for which this information is based upon.
Creating a collection query that is based upon SQL can be done. It’s a little complicated, but not all that bad once you’ve done it a few times. There are many times where you have a fantastic SQL query you would love to use, but cannot figure how to get that same query in WQL. When you create a collection query in the administrative console, it’s created in WQL and translated to SQL. It is possible to create a SQL query and simple update a collection with that new SQL statement to process the collection membership.
Things to understand:
What you see as the “CollectionID” in the admin console is actually the “SiteID” in the SQL database.
The CollectionID in the SQL Database, is actually the number of the collection as it was created, so if the last collection you created was your 965th collection, it’s CollectionID in SQL would actually be 965, even though the CollectionID you see in the admin console is “ABC00012”
If you have it setup so that you can see the node information, you will see the “Store Name” ID for that collection that you can use as well.
This process involves a few steps:
1) Create a target collection with a blank query, aka don’t define anything in the query statement
2) Get the collection SiteID (as it’s referred to in SQL) otherwise known as the Collection ID in reports, or the Store Name in the node information tab in the admin console
3) Run the following query in SQL query analyzer to find the CollectionID as it’s listed in SQL
Select CollectionID, SiteID from Collections where SiteID= ‘CollectionID/StoreName as seen in the console’
This will return the CollectionID you need to update the SQL statement with
4) Run the following update command to insert your SQL statement in the SQL statement query portion of the Collection.
Update Collection_Rules_SQL
set SQL = ‘YOUR SQL STATEMENT’
where CollectionID = ‘X’
5) You can run the following query to identify that your SQL statement is in fact in the correct place now
select SQL, WQL
from Collection_Rules_SQL
where CollectionID = ‘X’
This will also show you the WQL statement for any collection you want to see.
6) Update your collection to see if you have gotten the intended results
7) I would highly recommend you make sure you SQL statement works before inserting it into the collection SQL statement
IMPORTANT NOTE: If you modify the query in the admin console, you will overwrite the SQL statement you created. You will have to re-update the SQL statement through query analyzer if you accidentally modify the query through the console
Finding the OU of a system in SMS/ConfigMgr
SELECT dbo.v_R_System.Name0 AS [Computer Name], A.System_OU_Name0
FROM dbo.v_RA_System_SystemOUName AS A INNER JOIN
(SELECT ResourceID, MAX(LEN(System_OU_Name0)) AS len
FROM dbo.v_RA_System_SystemOUName
GROUP BY ResourceID) AS B ON A.ResourceID = B.ResourceID AND LEN(A.System_OU_Name0) = B.len INNER JOIN
dbo.v_R_System ON B.ResourceID = dbo.v_R_System.ResourceID
If you want just for one computer then…
SELECT dbo.v_R_System.Name0 AS [Computer Name], A.System_OU_Name0
FROM dbo.v_RA_System_SystemOUName AS A INNER JOIN
(SELECT ResourceID, MAX(LEN(System_OU_Name0)) AS len
FROM dbo.v_RA_System_SystemOUName
GROUP BY ResourceID) AS B ON A.ResourceID = B.ResourceID AND LEN(A.System_OU_Name0) = B.len INNER JOIN
dbo.v_R_System ON B.ResourceID = dbo.v_R_System.ResourceID
WHERE (dbo.v_R_System.Name0 = 'Computer Name')
Configuration Manager R3 – Prestaged Media Setup and Walkthrough
Configuration Manager R3 – Prestaged Media Setup and Walkthrough
This blog will be a walkthrough and setup guide for Configuration Manager (ConfigMgr) R3 prestaged media. This will cover the basic steps required in order to use the new R3 feature in your environment.
First some background on prestaged media from Microsoft:
Prestaged media is an alternative way to deploy an operating system to computers. Prestaged media is a Windows Image (.wim) file that can be installed on bare metal computers by the computer manufacturer or at an enterprise staging center. This media includes a boot image and an operating system image that an administrator can predeploy to a hard disk prior. Prestaged media reduces network traffic and the time required to provision a computer. Prestaged media works with existing task sequences to provide a complete operating system deployment.
Prestaged media is suitable for use in environments where you would want to deploy content to a computer, but do not want to or are unable to have the computer fully provisioned, for example during the computer manufacturing process or at an enterprise staging center. Computers are distributed within the enterprise with the prestaged media already loaded. When the computer starts for the first time, the computer will boot into WinPE and connect to the Configuration Manager site management point to check for available task sequences.
NOTE: When creating prestaged media, ensure that the boot image you are using has the appropriate network and mass storage drivers need for the system to complete the provisioning process.
Creating the prestaged media image
Right click on Task Sequences and select “Create Task Sequence Media”.
Select “Prestaged Media”.
Enter any information you want added to the .wim file, then specify the location and name of the file, then click Next.
Take note of what you put in the Created By field because whatever you put there, will end up the name of the drive as in these examples.
You can however change the field in the image properties. If you leave it blank, then “SCCM” will be added automatically for you.
Next, you can select whether or not to enable unknown computer support, password protect the media, as well as the certificate options.
Next, we need to select the boot image and operating system you want to stage to the computer.
Then we have our summary before the operation begins.
Click Close when the process is completed.
Importing the prestaged image into ConfigMgr
Next we need to import our newly created .wim into ConfigMgr.
Browse to the path where you put the prestaged wim we previously created. Then select Next.
Provide properties for the image, then select Next.
Review the summary and then select Next.
Click Close when the process has completed.
Next you will need to distribute the image out to the distribution points. Right-click on the image and select Manage Distribution Points. Then select “Copy the package to new distribution points”. Then select Next.
Select the Distribution Points you want to copy the image to, then select Next.
Select Next.
Click Close when the process completes. You can monitor distrmgr.log to review the distribution status.
Creating a Task Sequence to deploy the prestaged image to a computer
Right-click on Task Sequences and select New – Task Sequence.
Select “Create a new custom Task Sequence”.
Name the Task Sequence appropriately and then select Next.
Select Next.
After the process completes successfully, click Close.
Ensure the Task Sequence has the appropriate boot media. You can do this by selecting Properties on the Task Sequence.
Ensure the boot image selected is the same one as you used when creating the Prestaged Media image.
Next we need to edit the Task Sequence and add the appropriate steps.
First we need to add a “Format and Partition Disk” step.
If you are using Bitlocker, then you’ll need to create a 100mb partition, something similar to this example.
If you are not using bitlocker, then you can just create a single partition.
NOTE: You do not need a Bootsect.exe command as you may have seen with other documentation. This is unnecessary as the Format and Partition disk step takes care of this for you.
Next we need to add a “Apply Data Image” step. Select the Prestaged media image you had previously imported.
If you are not using bitlocker, then you can leave the Destination as “next available formatted partition”.
If you are using bitlocker, then you need to change the Destination to match your configuration.
Next we need to add another “Run Command Line” step to shutdown the computer and end the Task Sequence.
Using a command line of “wpeutil shutdown”.
The finalized Task Sequence should look something like this.
Next if you advertise this Task Sequence to the appropriate collection, then you can run this Task Sequence on a reference machine to apply the prestaged image to that machine. (Other Task Sequences have been removed from the screenshot)
Configuring a Task Sequence to “finish” a prestaged image
Prestaged media is designed to work with your existing Task Sequences. We only need to make one minor change to the “Partition Disk” step in order for Prestaged media to work successfully. We need to add a Task Sequence variable step that says _SMSTSMediaType not equals OEMmedia. This tells the Task Sequence to skip this step when using Prestaged media, so that we don’t delete the content we’ve prestaged.
No change is required to the Apply Operating System step as the logic already exists to detect OEMMedia.
You will however, need to configure your Destination to match whether or not you are deploying bitlocker or whatever other custom setup you may have.
If you are using bitlocker, ensure this step matches the configuration you used when applying the prestaged image to the disk.
If you are not using bitlocker, then just use the default configuration.
Executing the Task Sequence on a prestaged machine
If you power on a computer that has a prestage image applied to it, it will automatically boot the WinPE image that is staged on the machine.
Then we can contact the ConfigMgr server and get our policies.
You will see it run through the first Task Sequence steps fairly quickly.
After a couple minutes you’ll see the system reboot.
Sysprep will then run, along with whatever final configurations you have in your Task Sequence and you should find yourself with a computer joined to the domain and ready to log in within a few minutes. In my Hyper-V lab, without any additional software applications to install, the login prompt was presented in less than 10 minutes after starting the Task Sequence.