HTA FrontEnd / Web Interface / App For Techs To Deploy SCCM Packages
Good Afternoon All!
I'm currently looking for a FrontEnd / Web Interface / App which my techs can use to deploy pre-configured packages to workstations. Basically, the only thing I'd like to have is where they could type in or lookup a hostname, select a package from
a dropdown, then click Deploy for it to automatically advertise it.
I've installed Maik Kosters Web Services 7.2 which has many options which are similar, but I'm looking for something plain and simple. I'd prefer a web interface, but I guess an app or whatever else would work fine as well.
Any ideas are appreciated! - Thanks!Ben K.
July 25th, 2011 4:47pm
you could have a look at appscriber :
http://immidio.com/appscriber/
basically it works with security groups and enables the user to go to an intranet frontend, which then triggers the application installation.
Free Windows Admin Tool Kit Click here and download it now
July 26th, 2011 4:40am
If you want something free, you could always use Ron Crumbaker's Web Remote Console 3.21
One of the pieces of it is you could define a collection; with no members. It's sole purpose is to be at the top of a list of subcollections. Those subcollections would then be things like "Acrobat Reader 10.0.2", or "My Company Application 1.0".
Those subcollections are targets for the advertisements of those things.
http://www.myitforum.com/myitwiki/SCCMTools.ashx#RonCrumbakerWebRemoteTools3.21
within Ron Crumbakers' machrest.asp, you input that top collectionid.Standardize. Simplify. Automate.
July 26th, 2011 9:48am
The company I work for has an HTA that is used by the Help Desk for installing applications. No idea where it came from; they got it before my time. It reads the SCCM database and displays in a drop-down list all Software Distribution Packages with an Advertisement.
It also looks in the All Systems Collection (I think) and has a drop-down of all computers. Finally, it authenticates through AD. The only thing not built into the HTA is a Machine Policy Retrieval, so it takes 30 minutes to get the app installed (our client
policy is 30 minutes). It's actually pretty cool.
Email me privately at jlurie15<at>gmail<dot>com and I will send it to you. You will need to mondify it to your own environment (Site Code, Provider Name, etc...).
--Joe.
Free Windows Admin Tool Kit Click here and download it now
July 26th, 2011 10:05am
Thanks -
I've actually installed that and tried to use it with little success. I got it to open up, list hosnames, and find out the current user on hostnames, but the Packages list never populated.
I poked around a lot in the config files, but never could get it to work. The below except was taken from the packages population part, but no matter what I changed, I couldnt get results. I tried posting in the myitforum forums, but got no reply.
Any idea what I may be doing wrong? SCCM & SQl are on the same box running Windows 2008 x64 R2 & SQL Server 08 R2.
One More Thing... When I first browse to the page, every time it first pops up a window saying "Query Returned 0 Records" What gives?
Thanks! - Ben
Code:
'Code for populating the Drop down menu with the Sub-Collections. This was taken from Michael Shultz's example on myITfourm.com Modified
'slightly to work with SMS 2003.
Sub FillInCollections
dim oCollection ' SMS_Collection object
dim oCollectionSet ' Collection of SMS_Collection objects
dim strQuery ' String for the Query
dim lLocator ' SWbemLocator object
dim gService ' SWbemServices object
dim strSiteServer, strSiteCode, strStandingAdvertID
'You will need to edit the following line to fit your environment. SMSServer = Your SMS Server. Leave the ""
strSiteServer = "TNSCCM01"
'You will need to edit the following line to fit your environment. SMSSite Code = Your 3 Digit Site Code. Leave the ""
strSiteCode = "PAN"
'You will need to edit the following line to fit your environment.
strStandingAdvertID = "PAN0015F" 'For Example: "XR10001c" this is the topmost collectionID of the collections tree that you want in the drop down
set lLocator = CreateObject("WbemScripting.SWbemLocator")
set gService = lLocator.ConnectServer(strSiteServer, "root/sms/site_" & strSiteCode)
Ben K.
July 26th, 2011 2:40pm
I banged out a quick script (sorry for the roughness of it), which returns all package details in SCCM. You just need remove the irrelevant outputs and integrate the dropdown population code.
'On Error Resume Next
Dim connection
Dim computer
Dim password
Dim Server
Dim strSCCMServer
Dim strSiteCode
Dim objSMS
Dim objLoc
strSCCMServer = "domainfqdn.example.com"
strSiteCode = "NTX"
Set objLoc = CreateObject("WbemScripting.SWbemLocator")
Set objSMS = objLoc.ConnectServer(strSCCMServer, "root\sms\site_" & strSiteCode)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set connection = connect
Function Connect
Dim net
Dim localConnection
Dim swbemLocator
Dim swbemServices
Dim providerLoc
Dim location
Set swbemLocator = CreateObject("WbemScripting.SWbemLocator")
swbemLocator.Security_.AuthenticationLevel = 6 'Packet Privacy
Set net = CreateObject("WScript.NetWork")
If UCase(net.ComputerName) = UCase(server) Then
localConnection = true
server = strSCCMServer
End If
Set swbemServices= swbemLocator.ConnectServer _
(strSCCMServer, "root\sms")
If Err.Number<>0 Then
WScript.Echo "Couldn't connect: " + Err.Description
Connect = null
Exit Function
End If
Set providerLoc = swbemServices.InstancesOf("SMS_ProviderLocation")
For Each location In providerLoc
If location.ProviderForLocalSite = True Then
Set swbemServices = swbemLocator.ConnectServer _
(strSCCMServer, "root\sms\site_" & strSiteCode)
If Err.Number<>0 Then
WScript.Echo "Couldn't connect:" + Err.Description
Connect = Null
Exit Function
End If
Set Connect = swbemServices
Exit Function
End If
Next
Set Connect = null ' Failed to connect.
End Function
Sub ExportPackageProgramInfo(connection)
Dim packageQuery, allPackages, packageID, package, programsforPackage, program, packageCount
packageCount = 0
packageQuery = "SELECT * FROM SMS_Package"
Set allPackages = connection.ExecQuery(packageQuery, , wbemFlagForwardOnly Or wbemFlagReturnImmediately)
For Each package In allPackages
packageCount = packageCount + 1
WScript.Echo ""
WScript.Echo "**************************************************************************************"
WScript.Echo package.PackageID & " : " & package.Name
If Not IsNull(package.PkgSourcePath) Then
WScript.Echo package.PkgSourcePath
End If
WScript.Echo "**************************************************************************************"
packageID = package.PackageID
packageQuery = "SELECT * FROM SMS_Program WHERE PackageID='" & packageID & "'"
Set programsForPackage = connection.ExecQuery(packageQuery, , wbemFlagForwardOnly Or wbemFlagReturnImmediately)
If programsForPackage.Count < 1 Then
WScript.Echo "This package has no programs"
WScript.Echo ""
End If
For Each program In programsForPackage
WScript.Echo "Program: " & program.ProgramName
WScript.Echo " ActionInProgress: " & program.ActionInProgress
WScript.Echo " ApplicationHierarchy: " & program.ApplicationHierarchy
WScript.Echo " CommandLine: " & program.CommandLine
WScript.Echo " Comment: " & program.Comment
WScript.Echo " DependentProgram: " & program.DependentProgram
WScript.Echo " Description: " & program.Description
WScript.Echo " DeviceFlags: " & program.DeviceFlags
WScript.Echo " DiskSpaceReq: " & program.DiskSpaceReq
WScript.Echo " DriveLetter: " & program.DriveLetter
WScript.Echo " Duration: " & program.Duration
If isNull(program.ExtendedData) Then
WScript.Echo " ExtendedData: "
Else
WScript.Echo " ExtendedData: " & Join(program.ExtendedData, ",")
End If
WScript.Echo " ExtendedDataSize: " & program.ExtendedDataSize
If isNull(program.Icon) Then
WScript.Echo " Icon: "
Else
WScript.Echo " Icon: " & Join(program.Icon, ",")
End If
WScript.Echo " IconSize: " & program.IconSize
If isNull(program.ISVData) Then
WScript.Echo " ISVData: "
Else
WScript.Echo " ISVData: " & Join(program.ISVData, ",")
End If
WScript.Echo " ISVDataSize: " & program.ISVDataSize
WScript.Echo " MSIFilePath: " & program.MSIFilePath
WScript.Echo " MSIProductID: " & program.MSIProductID
WScript.Echo " ProgramFlags: " & program.ProgramFlags
WScript.Echo " RemovalKey: " & program.RemovalKey
WScript.Echo " Requirements: " & program.Requirements
If isNull(program.SupportedOperatingSystems) Then
WScript.Echo " SupportedOperatingSystems: "
Else
WScript.Echo " SupportedOperatingSystems: " & Join(program.SupportedOperatingSystems, ",")
End If
WScript.Echo " WorkingDirectory: " & program.WorkingDirectory
WScript.Echo ""
Next
Next
End Sub
call ExportPackageProgramInfo(connection)
Free Windows Admin Tool Kit Click here and download it now
August 7th, 2011 5:33am
To reply to Ben.
In answer to this: "The below except was taken from the packages population part"
The point of the "deploy an application" is to take the computer name from the field at the top and add it to a collection.
that collection is designed, by you, to be the target for an advertisement to deliver that application.
So, for example, you'd have a collection structure like this:
+Use For Ron Crumbaker Web Remote 3.21 (and this is CollectionID ABC00032, NO advertisments on this one, no members)
Underneath that collection, you'd have subcollections, like...
+Widgets 3.0
+Adobe Acrobat Pro 10.1
And, you have existing advertisements targeted to Widgets 3.0 (to deliver that app), etc. etc.
In the machrest.asp, the collectionid you put in is ABC00032, the top of the list of subcollections.
What packages you have has nothing to do with it. Sure, you obviously need to have a package for Widgets 3.0; but only because you've already made an advertisement in the console to advertise Widgets 3.0 to the Collection Widgets 3.0. But the
package id or enumerating a list of them within machrest.asp / Ron Crumbaker's Web Remote console is never needed; and has no purpose.Standardize. Simplify. Automate.
August 7th, 2011 9:59am