Today, I needed to deploy Windows Live to a number of machines.
The problem with Windows Live is that,depending on your configuration, there are about 10 individual files that need to be deployed..
Obviously, this becomes time consuming, creating all those packages, then advertising them all, and maybe even assign them to a few OSD Task Sequences..
Then I thought.. Task Sequences… ooh I wonder…
I recall from using MDT, that you can create Application Bundles that contain a list of applications, and then you only need to select that bundle to instantly deploy all the applications listed therein..
I had a quick look at OSD Task Sequences and it does give you the option to create a “Custom Task Sequence” which is basically blank
All you need to do is add all those applications into that one task sequence by going to “Add –> General –> Install Software” , and then advertise that to your collection..
This makes it a lot easier to manage – all you need to do is update the Sequence if there are any changes to the list.
What’s that? you set a password on the PXE Service Point, and now you cannot unset it?
Never fear folks for I have the solution:
Why its not just a case of removing the tick, I don’t know (If you do and dont delete the password – the password is re-enabled when you click OK…
I bet you, you’re kicking yourselves now aren’t you?
I know I was….
Thanks go to the guys over at ccmexec.com for the soluttion to this one.
They posted the following script that deletes a PC from specified collections when a Task Sequences successfully completes. This allows you to set the Task Sequence Advertisment to always rerun, and prevent endless rebuild loops..
Option Explicit
' Constants for type of event log entry
const EVENTLOG_INFORMATION = 4
Dim Args
Dim swbemLocator, SWbemServices, objCollection, oProviderLocation, oLocation
Dim strComputerName, arrComputers, objComputer, sCollectionIDs
Dim objDirectRule
Dim strmessage, objshell
Dim seventlog, sClearPxeflag
On Error Resume Next
'CollectionIDs from which to remove the computer
'Should an eventlog entry be generated, set Seventlog=1
sEventlog = "1"
sCollectionIDs = "00100053:0010004A:00100069"
'------------------------------------------------------------
'Get Command Line arguments
Set args = WScript.Arguments
strComputername = args.Item(0)
If strComputerName = NULL then
wscript.quit
End if
'------------------------------------------------------------
'Main script
set objShell = CreateObject("WScript.Shell")
Set swbemLocator = CreateObject("WbemScripting.SWbemLocator")
swbemLocator.Security_.AuthenticationLevel = 6 'Packet Privacy.
Set swbemServices = swbemLocator.ConnectServer(".", "root\SMS")
Set oProviderLocation = swbemServices.InstancesOf("SMS_ProviderLocation")
For Each oLocation In oProviderLocation
If oLocation.ProviderForLocalSite = True Then
Set swbemServices = swbemLocator.ConnectServer(oLocation.Machine, "root\sms\site_" + oLocation.SiteCode)
End If
Next
Set arrComputers = SWbemServices.ExecQuery("select * from SMS_R_System where Name='" & strComputerName & "' and Obsolete = 0")
For Each objComputer In arrComputers
RemoveCollectionMembership objComputer.ResourceID
'Write to eventlog if Seventlog = 1
If Seventlog = "1" then
strMessage = strcomputername & " will be removed from the following collection ID's " & scollectionids
objShell.LogEvent EVENTLOG_INFORMATION, strMessage
End IF
Next
Set objCollection = Nothing
Set SWbemServices = Nothing
Set SWbemLocator = Nothing
Wscript.Quit
'------------------------------------------------
Sub RemoveCollectionMembership(intresourceid)
on error resume next
Dim mCollectionID, i
mCollectionID = Split (sCollectionIDs, ":")
for i = Lbound(mCollectionID) to UBound(mCollectionID)
Set objCollection = SWbemServices.Get("SMS_Collection='" & MCollectionID(i) & "'")
Set ObjDirectRule = SWbemServices.Get("SMS_CollectionRuleDirect").SpawnInstance_
ObjDirectRule.ResourceID = intresourceid
ObjCollection.DeleteMembershipRule objDirectRule
next
End Sub
'------------------------------------------------
WScript.Quit(0)
Simply edit the following lines, replacing the IDs with the IDs of your Collections and save it as something like remove.vbs
Then, create a System Filter Rule in ConfigMgr with the following info:
General Tab
Component: Task Sequence Manager
Message ID: 11171
Actions Tab
Report to the Event Log
Run a program: cscript.exe e:\sccmtools\remove.vbs %msgsys
And thats it..
Have fun!
After many attempts and rebuilds.. I finally got Microsoft’s System Center Configuration Manager (aka SCCM, ConfigMgr) working – Yippee!
It now does virtually everything I need it to do
Many thanks to the guys at www.windows-noob.com and their excellent step-by-step instructions, without them I’d still be struggling to get this working