# Permissions based off available 'ClassPermissions' Property in the SMS_UserClassPermissions Class found here: http://msdn.microsoft.com/en-us/library/cc143194.aspx # Example Syntax: # Class;[ObjectName;]domain\[user|group][;Permission1[,Permission2,Permission3]] # # Example 1 - Sets all permissions to all classes for the specified user/group: # CLASS_ALL;contoso\Contoso SCCM Administrators # # Example 2 - Setting Specific class permissions: # Advertisement;contoso\Contoso SCCM Administrators;READ&MODIFY&DELETE&ADMINISTER&CREATE # Collection;contoso\Contoso SMS Site Administrators;READ&MODIFY&DELETE&REMOTE_CONTROL&ADVERTISE&MODIFY_RESOURCE&ADMINISTER&CREATE&VIEW_COLL_FILE&READ_RESOURCE&MODIFYCOLLECTIONSETTING&MANAGEBMC&VIEWBMC # MeteredProductRule;contoso\Contoso SMS Site Administrators;READ # # Example 3 - Instance specific permissions: # This section is out-of-date. At the writing of this document, the source script has changed. Please visit http://pleasepressanykey.blogspot.com/2011/04/vbscript-set-permissons-on-configmgr.html for the latest version of the instance-specific permissions for more information.
Script:
' ******************************************************************************** ' ' Author: Cameron Wilson (aka thepip3r) ' Date: 4/15/2011 ' Credit: Original script development and import format taken and adapted from Jonas Hettich's script for setting instance-specific permissions (4/15/2011) ' http://pleasepressanykey.blogspot.com/2011/04/vbscript-set-permissons-on-configmgr.html ' Description: Jonas's script is designed around setting instance-specific permissions. At my location, we almost exclusively set class-level permissions only so ' this version of the script goes through and sets class-level permissions. Other deviations from Jonas's script are some variable spelling and naming ' consistency changes, the inclusion of all Class objects and all possible permissions as constants for use, and also some custom work that allows you ' to just specify a class name and the script assigns all available rights off of a static assignment. ' ' ******************************************************************************** Dim strChosenPermissions Dim strSiteServer : strSiteServer = "" Dim strSitecode : strSitecode = "" Dim objSWbemLocator : Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator") Dim objSWbemServices : Set objSWbemServices = objSWbemLocator.ConnectServer(strSiteServer,"root/sms/site_" & strSitecode) Dim objFSO : Set objFSO = CreateObject("Scripting.FileSystemObject") Dim objFile : Set objFile = objFSO.OpenTextFile("SetPermissions.txt") Dim strCurrentLine Dim strObjectsType, strObjectName, strUser, strPermissions ' Class Permission Constants Const CP_READ = 1 Const CP_MODIFY = 2 Const CP_DELETE = 4 Const CP_DISTRIBUTE = 8 ' Class Permission 16 is NOT used Const CP_REMOTE_CONTROL = 32 Const CP_ADVERTISE = 64 Const CP_MODIFY_RESOURCE = 128 Const CP_ADMINISTER = 256 Const CP_DELETE_RESOURCE = 512 Const CP_CREATE = 1024 Const CP_VIEW_COLL_FILE = 2056 Const CP_READ_RESOURCE = 4096 Const CP_DELEGATE = 8192 Const CP_METER = 16384 Const CP_MANAGESQLCOMMAND = 32768 Const CP_MANAGESTATUSFILTER = 65536 Const CP_MANAGEFOLDER = 131072 Const CP_NETWORKACCESS = 262144 Const CP_IMPORTMACHINE = 524288 Const CP_CREATETSMEDIA = 1048576 Const CP_MODIFYCOLLECTIONSETTING = 2097152 Const CP_MANAGEOSDCERTIFICATE = 4194304 Const CP_RECOVERUSERSTATE = 8388608 Const CP_MANAGEBMC = 16777216 Const CP_VIEWBMC = 33554432 Const CP_MANAGEAI = 67108864 Const CP_VIEWAI = 134217728 ' Class Constants Const C_COLLECTION = 1 ' ConfigMgr DisplayName: 'Collection' Const C_PACKAGE = 2 ' ConfigMgr DisplayName: 'Package' Const C_ADVERTISEMENT = 3 ' ConfigMgr DisplayName: 'Advertisement' Const C_STATUSMESSAGE = 4 ' ConfigMgr DisplayName: 'Status message' ' Class ID 5 NOT USED Const C_SITE = 6 ' ConfigMgr DisplayName: 'Site' Const C_QUERY = 7 ' ConfigMgr DisplayName: 'Query' Const C_REPORT = 8 ' ConfigMgr DisplayName: 'Report' Const C_METEREDPRODUCTRULE = 9 ' ConfigMgr DisplayName: 'Software metering rule' Const C_APPLICABLEUPDATESSUMMARYEX = 10 ' ConfigMgr DisplayName: 'Applicable updates summary' Const C_CONFIGURATIONITEM = 11 ' ConfigMgr DisplayName: 'Configuration items' ' Class ID 12 Omitted ' Class ID 13 Omitted Const C_OPERATINGSYSTEMINSTALLPACKAGE = 14 ' ConfigMgr DisplayName: 'OS install package' Const C_TEMPLATE = 15 ' ConfigMgr DisplayName: 'Deployment template' Const C_UPDATESASSIGNMENT = 16 ' ConfigMgr DisplayName: 'Deployment' Const C_STATEMIGRATION = 17 ' ConfigMgr DisplayName: 'Computer association' Const C_IMAGEPACKAGE = 18 ' ConfigMgr DisplayName: 'OS image' Const C_BOOTIMAGEPACKAGE = 19 ' ConfigMgr DisplayName: 'Boot image package' Const C_TASKSEQUENCEPACKAGE = 20 ' ConfigMgr DisplayName: 'Task sequence package' Const C_DEVICESETTINGPACKAGE = 21 ' ConfigMgr DisplayName: 'Device setting package' Const C_DEVICESETTINGITEM = 22 ' ConfigMgr DisplayName: 'Device setting item' Const C_DRIVERPACKAGE = 23 ' ConfigMgr DisplayName: 'Driver Package' Const C_SOFTWAREUDPATESPACKAGE = 24 ' ConfigMgr DisplayName: 'Deployment package' Const C_DRIVER = 25 ' ConfigMgr DisplayName: ? ' Begin Code Execution WScript.Echo "Site Server: " & strSiteServer 'Loop the Source File Do While not objFile.AtEndOfStream strCurrentLine = objFile.ReadLine 'Skip Comment and Blank lines If strCurrentLine <> "" Then If Not Left(strCurrentLine,1) = "#" Then 'Parse the information arrLine = Split(strCurrentLine,";") If Ubound(arrLine) = 1 Then ' Check for 2 arguments, if so, assume set all class permissions on user/group ' Set Class Permissions WSCript.Echo "Found Custom-Level ALL Definition... Executing" strObjectsType = arrLine(0) strUser = arrLine(1) Call SetClassRights_All(strUser) ElseIf Ubound(arrLine) = 2 Then ' Check for 3 arguments, if so, assume assignment of a class-level permission on user/group ' Set Class Permissions WSCript.Echo "Found Class-Level Definition... Executing" strObjectsType = arrLine(0) strUser = arrLine(1) strPermissions = arrLine(2) Call SetClassRights(strObjectsType, strUser, strPermissions) ElseIf (Ubound(arrLine)) = 3 Then ' Check for 4 arguments, if so, assume assignment of an instance-level permission on an entity for a user/group ' Set Instance Permissions WSCript.Echo "Found Instance-Level Definition... Executing" strObjectsType = arrLine(0) strObjectName = arrLine(1) strUser = arrLine(2) strPermissions = arrLine(3) Call SetInstanceRights(strObjectsType, strObjectName, strUser, strPermissions) Else WScript.Echo "An invalid number of parameters have been passed, please check the permissions file for proper formatting." WScript.Quit End If 'Reset the Permissions for the next action strChosenPermissions = 0 End If End If Loop ' Grabs the GUID for the instance-level object ' Not modified from Jonas's script except for variable renaming Function NameToID(strObjectType,strObjectName) Dim colResuls, objResult Select Case (strObjectType) Case("Collection") Set colResults = objSWbemServices.ExecQuery ("select * from SMS_Collection where Name='" & strObjectName & "'") For Each objResult In colResults NameToID = objResult.CollectionID Next Case("Package") Set colResults = objSWbemServices.ExecQuery ("select * from SMS_Package where Name='" & strObjectName & "'") For Each objResult In colResults NameToID = objResult.PackageID Next Case ("Advertisement") Set colResults = objSWbemServices.ExecQuery ("select * from SMS_Advertisement where AdvertisementName='" & strObjectName & "'") For Each objResult In colResults NameToID = objResult.AdvertisementID Next End Select End Function ' Sets the permissions on the instance-level object ' Not modified from Jonas's script except for variable renaming Function SetInstanceRights(strObjectType, strObjectName, strUser, strPermissions) Dim arrPermissions, strPermission Dim strObjectID Dim objUserInstancePermissions SetInstanceRights = False Set objUserInstancePermissions = objSWbemServices.Get("SMS_UserInstancePermissions") 'Create UserInstancePermissionsObject Set objNewUserInstancePermissions = objUserInstancePermissions.SpawnInstance_ 'Set the Object type Select Case (strObjectType) Case "Package" objNewUserInstancePermissions.ObjectKey = 2 Case "Advertisement" objNewUserInstancePermissions.ObjectKey = 3 Case "Collection" objNewUserInstancePermissions.ObjectKey = 1 Case Else WScript.Echo "Objecttype not supported" End Select 'Set the Object ID strObjectID = NameToID(strObjectType,strObjectName) If strObjectID <> "" Then objNewUserInstancePermissions.InstanceKey = strObjectID Else WScript.Echo strObjectType & " was not found: " & strObjectName WScript.Quit End if 'Set the User or Group objNewUserInstancePermissions.UserName = strUser 'Set the Permissions arrPermissions = Split(strPermissions,"&") For Each strPermission In arrPermissions 'Parse the Permissions Select Case UCASE(strPermission) Case "READ" strChosenPermissions = strChosenPermissions + 1 Case "MODIFY" strChosenPermissions = strChosenPermissions + 2 Case "DELETE" strChosenPermissions = strChosenPermissions + 4 Case "DISTRIBUTE" strChosenPermissions = strChosenPermissions + 8 Case "REMOTE_CONTROL" strChosenPermissions = strChosenPermissions + 32 Case "ADVERTISE" strChosenPermissions = strChosenPermissions + 64 Case "MODIFY_RESOURCE" strChosenPermissions = strChosenPermissions + 128 Case "ADMINISTER" strChosenPermissions = strChosenPermissions + 256 Case "DELETE_RESOURCE" strChosenPermissions = strChosenPermissions + 512 Case "CREATE" strChosenPermissions = strChosenPermissions + 1024 Case "READ_RESOURCE" strChosenPermissions = strChosenPermissions + 4096 Case "MODIFYCOLLECTIONSETTING" strChosenPermissions = strChosenPermissions + 2097152 Case Else WScript.Echo "Permissions not supported" End Select Next objNewUserInstancePermissions.InstancePermissions = strChosenPermissions 'Creating Permissions On Error Resume Next objNewUserInstancePermissions.put_ If Err.Number = 0 Then WScript.Echo "Successfully set following Permissions:" WScript.Echo vbTab & " - " & strObjectType WScript.Echo vbTab & " - " & strObjectName WScript.Echo vbTab & " - " & strUser WScript.Echo vbTab & " - " & strPermissions Else WScript.Echo "Error (" &Err.Description &") when trying to create the object:" WScript.Echo vbTab & " - " & strObjectType WScript.Echo vbTab & " - " & strObjectName WScript.Echo vbTab & " - " & strUser WScript.Echo vbTab & " - " & strPermissions End If Set objNewUserInstancePermissions = Nothing End Function ' Sets permissions on the class level object Function SetClassRights(strObjectType, strUser, strPermissions) Dim arrPermissions, strPermission Dim strObjectID Dim objUserClassPermissions SetClassRights = False Set objUserClassPermissions = objSWbemServices.Get("SMS_UserClassPermissions") ' Create UserClassPermissionsObject Set objNewUserClassPermissions = objUserClassPermissions.SpawnInstance_ ' Set the Object type ' Here we specify all classes for greater script flexibility Select Case UCase(strObjectType) Case "COLLECTION" objNewUserClassPermissions.ObjectKey = C_COLLECTION Case "PACKAGE" objNewUserClassPermissions.ObjectKey = C_PACKAGE Case "ADVERTISEMENT" objNewUserClassPermissions.ObjectKey = C_ADVERTISEMENT Case "STATUSMESSAGE" objNewUserClassPermissions.ObjectKey = C_STATUSMESSAGE Case "SITE" objNewUserClassPermissions.ObjectKey = C_SITE Case "QUERY" objNewUserClassPermissions.ObjectKey = C_QUERY Case "REPORT" objNewUserClassPermissions.ObjectKey = C_REPORT Case "METEREDPRODUCTRULE" objNewUserClassPermissions.ObjectKey = C_METEREDPRODUCTRULE Case "APPLICABLEUPDATESSUMMARY" objNewUserClassPermissions.ObjectKey = C_APPLICABLEUPDATESSUMMARYEX Case "CONFIGURATIONITEM" objNewUserClassPermissions.ObjectKey = C_CONFIGURATIONITEM Case "OPERATINGSYSTEMINSTALLPACKAGE" objNewUserClassPermissions.ObjectKey = C_OPERATINGSYSTEMINSTALLPACKAGE Case "DEPLOYMENTTEMPLATE" objNewUserClassPermissions.ObjectKey = C_TEMPLATE Case "UPDATESASSIGNMENT" objNewUserClassPermissions.ObjectKey = C_UPDATESASSIGNMENT Case "STATEMIGRATION" objNewUserClassPermissions.ObjectKey = C_STATEMIGRATION Case "IMAGEPACKAGE" objNewUserClassPermissions.ObjectKey = C_IMAGEPACKAGE Case "BOOTIMAGEPACKAGE" objNewUserClassPermissions.ObjectKey = C_BOOTIMAGEPACKAGE Case "TASKSEQUENCEPACKAGE" objNewUserClassPermissions.ObjectKey = C_TASKSEQUENCEPACKAGE Case "DEVICESETTINGPACKAGE" objNewUserClassPermissions.ObjectKey = C_DEVICESETTINGPACKAGE Case "DEVICESETTINGITEM" objNewUserClassPermissions.ObjectKey = C_DEVICESETTINGITEM Case "DRIVERPACKAGE" objNewUserClassPermissions.ObjectKey = C_DRIVERPACKAGE Case "SOFTWAREUPDATESPACKAGE" objNewUserClassPermissions.ObjectKey = C_SOFTWAREUDPATESPACKAGE Case "DRIVER" objNewUserClassPermissions.ObjectKey = C_SOFTWAREUDPATESPACKAGE Case Else WScript.Echo "Object type unknown: " & strObjectType End Select ' Set the User or Group objNewUserClassPermissions.UserName = strUser ' Set the Permissions ' Included all permissions avaiable for all classes. arrPermissions = Split(strPermissions,"&") For Each strPermission In arrPermissions 'Parse the Permissions Select Case UCASE(strPermission) Case "READ" strChosenPermissions = strChosenPermissions + CP_READ Case "MODIFY" strChosenPermissions = strChosenPermissions + CP_MODIFY Case "DELETE" strChosenPermissions = strChosenPermissions + CP_DELETE Case "DISTRIBUTE" strChosenPermissions = strChosenPermissions + CP_DISTRIBUTE Case "REMOTE_CONTROL" strChosenPermissions = strChosenPermissions + CP_REMOTE_CONTROL Case "ADVERTISE" strChosenPermissions = strChosenPermissions + CP_ADVERTISE Case "MODIFY_RESOURCE" strChosenPermissions = strChosenPermissions + CP_MODIFY_RESOURCE Case "ADMINISTER" strChosenPermissions = strChosenPermissions + CP_ADMINISTER Case "DELETE_RESOURCE" strChosenPermissions = strChosenPermissions + CP_DELETE_RESOURCE Case "CREATE" strChosenPermissions = strChosenPermissions + CP_CREATE Case "READ_RESOURCE" strChosenPermissions = strChosenPermissions + CP_READ_RESOURCE Case "VIEW_COLL_FILE" strChosenPermissions = strChosenPermissions + CP_VIEW_COLL_FILE Case "DELEGATE" strChosenPermissions = strChosenPermissions + CP_DELEGATE Case "METER" strChosenPermissions = strChosenPermissions + CP_METER Case "MANAGESQLCOMMAND" strChosenPermissions = strChosenPermissions + CP_MANAGESQLCOMMAND Case "MANAGESTATUSFILTER" strChosenPermissions = strChosenPermissions + CP_MANAGESTATUSFILTER Case "MANAGEFOLDER" strChosenPermissions = strChosenPermissions + CP_MANAGEFOLDER Case "NETWORKACCESS" strChosenPermissions = strChosenPermissions + CP_NETWORKACCESS Case "IMPORTMACHINE" strChosenPermissions = strChosenPermissions + CP_IMPORTMACHINE Case "CREATETSMEDIA" strChosenPermissions = strChosenPermissions + CP_CREATETSMEDIA Case "MODIFYCOLLECTIONSETTING" strChosenPermissions = strChosenPermissions + CP_MODIFYCOLLECTIONSETTING Case "MANAGEOSDCERTIFICATE" strChosenPermissions = strChosenPermissions + CP_MANAGEOSDCERTIFICATE Case "RECOVERUSERSTATE" strChosenPermissions = strChosenPermissions + CP_RECOVERUSERSTATE Case "MANAGEBMC" strChosenPermissions = strChosenPermissions + CP_MANAGEBMC Case "VIEWBMC" strChosenPermissions = strChosenPermissions + CP_VIEWBMC Case "MANAGEAI" strChosenPermissions = strChosenPermissions + CP_MANAGEAI Case "VIEWAI" strChosenPermissions = strChosenPermissions + CP_VIEWAI ' BEGIN: Custom Class 'ALL' Descriptors ' This allows for just the specification of a user/group for a class and these are all available permissions for each class Case "ADVERTISEMENT_ALL" strChosenPermissions = CP_READ + CP_MODIFY + CP_DELETE + CP_ADMINISTER + CP_CREATE + CP_DELEGATE + CP_MANAGEFOLDER Case "APPLICABLE_UPDATES_SUMMARY_ALL" strChosenPermissions = CP_READ + CP_MODIFY + CP_DELETE + CP_ADMINISTER + CP_CREATE + CP_DELEGATE Case "ASSET_INTELLIGENCE_ALL" strChosenPermissions = CP_ADMINISTER + CP_DELEGATE + CP_MANAGEAI + CP_VIEWAI Case "BOOT_IMAGE_PACKAGE_ALL" strChosenPermissions = CP_READ + CP_MODIFY + CP_DELETE + CP_DISTRIBUTE + CP_ADMINISTER + CP_CREATE + CP_DELEGATE + CP_MANAGEFOLDER Case "COLLECTION_ALL" strChosenPermissions = CP_READ + CP_MODIFY + CP_DELETE + CP_REMOTE_CONTROL + CP_ADVERTISE + CP_MODIFY_RESOURCE + CP_ADMINISTER + CP_DELETE_RESOURCE + CP_CREATE + CP_VIEW_COLL_FILE + CP_READ_RESOURCE + CP_DELEGATE + CP_MODIFYCOLLECTIONSETTING + CP_MANAGEBMC + CP_VIEWBMC Case "COMPUTER_ASSOCIATION_ALL" strChosenPermissions = CP_READ + CP_DELETE + CP_ADMINISTER + CP_CREATE + CP_DELEGATE + CP_MANAGEFOLDER + CP_RECOVERUSERSTATE Case "CONFIGURATION_ITEMS_ALL" strChosenPermissions = CP_READ + CP_MODIFY + CP_DELETE + CP_DISTRIBUTE + CP_ADMINISTER + CP_CREATE + CP_DELEGATE + CP_MANAGEFOLDER + CP_NETWORKACCESS Case "DEPLOYMENT_ALL" strChosenPermissions = CP_READ + CP_MODIFY + CP_DELETE + CP_ADMINISTER + CP_CREATE + CP_DELEGATE Case "DEPLOYMENT_PACKAGE_ALL" strChosenPermissions = CP_READ + CP_MODIFY + CP_DELETE + CP_DISTRIBUTE + CP_ADMINISTER + CP_CREATE + CP_DELEGATE + CP_MANAGEFOLDER Case "DEPLOYMENT_TEMPLATE_ALL" strChosenPermissions = CP_READ + CP_MODIFY + CP_DELETE + CP_ADMINISTER + CP_CREATE + CP_DELEGATE Case "DEVICE_DRIVER_ALL" strChosenPermissions = CP_READ + CP_MODIFY + CP_DELETE + CP_ADMINISTER + CP_CREATE + CP_DELEGATE + CP_MANAGEFOLDER Case "DEVICE_SETTING_ITEM_ALL" strChosenPermissions = CP_READ + CP_MODIFY + CP_DELETE + CP_ADMINISTER + CP_CREATE + CP_DELEGATE Case "DEVICE_SETTING_PACKAGE_ALL" strChosenPermissions = CP_READ + CP_MODIFY + CP_DELETE + CP_DISTRIBUTE + CP_ADMINISTER + CP_CREATE + CP_DELEGATE + CP_MANAGEFOLDER Case "DRIVER_PACKAGE_ALL" strChosenPermissions = CP_READ + CP_MODIFY + CP_DELETE + CP_DISTRIBUTE + CP_ADMINISTER + CP_CREATE + CP_DELEGATE + CP_MANAGEFOLDER Case "OS_IMAGE_ALL" strChosenPermissions = CP_READ + CP_MODIFY + CP_DELETE + CP_DISTRIBUTE + CP_ADMINISTER + CP_CREATE + CP_DELEGATE + CP_MANAGEFOLDER Case "OS_INSTALL_PACKAGE_ALL" strChosenPermissions = CP_READ + CP_MODIFY + CP_DELETE + CP_DISTRIBUTE + CP_ADMINISTER + CP_CREATE + CP_DELEGATE + CP_MANAGEFOLDER Case "PACKAGE_ALL" strChosenPermissions = CP_READ + CP_MODIFY + CP_DELETE + CP_DISTRIBUTE + CP_ADMINISTER + CP_CREATE + CP_DELEGATE + CP_MANAGEFOLDER Case "QUERY_ALL" strChosenPermissions = CP_READ + CP_MODIFY + CP_DELETE + CP_ADMINISTER + CP_CREATE + CP_DELEGATE + CP_MANAGEFOLDER Case "REPORT_ALL" strChosenPermissions = CP_READ + CP_MODIFY + CP_DELETE + CP_ADMINISTER + CP_CREATE + CP_DELEGATE + CP_MANAGEFOLDER Case "SITE_ALL" strChosenPermissions = CP_READ + CP_MODIFY + CP_DELETE + CP_ADMINISTER + CP_CREATE + CP_DELEGATE + CP_METER + CP_MANAGESQLCOMMAND + CP_MANAGESTATUSFILTER + CP_IMPORTMACHINE + CP_MANAGEOSDCERTIFICATE Case "SOFTWARE_METERING_RULE_ALL" strChosenPermissions = CP_READ + CP_MODIFY + CP_DELETE + CP_ADMINISTER + CP_CREATE + CP_DELEGATE + CP_MANAGEFOLDER Case "STATUS_MESSAGE_ALL" strChosenPermissions = CP_READ + CP_DELETE + CP_ADMINISTER + CP_CREATE Case "TASK_SEQUENCE_PACKAGE_ALL" strChosenPermissions = CP_READ + CP_MODIFY + CP_DELETE + CP_ADMINISTER + CP_CREATE + CP_DELEGATE + CP_MANAGEFOLDER + CP_CREATETSMEDIA ' END: Custom Class 'ALL' Descriptors Case "" Case Else WScript.Echo "Permission not supported: " & strPermission WScript.Echo "Object Type: " & strObjectType End Select Next ' Set the permissions objNewUserClassPermissions.ClassPermissions = strChosenPermissions 'Creating Permissions 'On Error Resume Next objNewUserClassPermissions.put_ 'If Err.Number = 0 Then ' WScript.Echo "Successfully set following Permissions:" ' WScript.Echo vbTab & " - " & strObjectType ' WScript.Echo vbTab & " - " & strObjectName ' WScript.Echo vbTab & " - " & strUser ' WScript.Echo vbTab & " - " & strPermissions 'Else ' WScript.Echo "Error (" &Err.Description &") when trying to create the object:" ' WScript.Echo vbTab & " - " & strObjectType ' WScript.Echo vbTab & " - " & strObjectName ' WScript.Echo vbTab & " - " & strUser ' WScript.Echo vbTab & " - " & strPermissions 'End If Set objNewUserClassPermissions = Nothing End Function ' Sets all permissions on all classes for the given user/group Function SetClassRights_All(strUser) Call SetClassRights("COLLECTION", strUser, "COLLECTION_ALL") Call SetClassRights("PACKAGE", strUser, "PACKAGE_ALL") Call SetClassRights("ADVERTISEMENT", strUser, "ADVERTISEMENT_ALL") Call SetClassRights("STATUSMESSAGE", strUser, "STATUS_MESSAGE_ALL") Call SetClassRights("SITE", strUser, "SITE_ALL") Call SetClassRights("QUERY", strUser, "QUERY_ALL") Call SetClassRights("REPORT", strUser, "REPORT_ALL") Call SetClassRights("METEREDPRODUCTRULE", strUser, "SOFTWARE_METERING_RULE_ALL") Call SetClassRights("APPLICABLEUPDATESSUMMARY", strUser, "APPLICABLE_UPDATES_SUMMARY_ALL") Call SetClassRights("CONFIGURATIONITEM", strUser, "CONFIGURATION_ITEMS_ALL") Call SetClassRights("OPERATINGSYSTEMINSTALLPACKAGE", strUser, "OS_INSTALL_PACKAGE_ALL") Call SetClassRights("DEPLOYMENTTEMPLATE", strUser, "DEPLOYMENT_TEMPLATE_ALL") Call SetClassRights("UPDATESASSIGNMENT", strUser, "DEPLOYMENT_ALL") Call SetClassRights("STATEMIGRATION", strUser, "COMPUTER_ASSOCIATION_ALL") Call SetClassRights("IMAGEPACKAGE", strUser, "OS_IMAGE_ALL") Call SetClassRights("BOOTIMAGEPACKAGE", strUser, "BOOT_IMAGE_PACKAGE_ALL") Call SetClassRights("TASKSEQUENCEPACKAGE", strUser, "TASK_SEQUENCE_PACKAGE_ALL") Call SetClassRights("DEVICESETTINGPACKAGE", strUser, "DEVICE_SETTING_PACKAGE_ALL") Call SetClassRights("DEVICESETTINGITEM", strUser, "DEVICE_SETTING_ITEM_ALL") Call SetClassRights("DRIVERPACKAGE", strUser, "DRIVER_PACKAGE_ALL") Call SetClassRights("SOFTWAREUPDATESPACKAGE", strUser, "DEPLOYMENT_PACKAGE_ALL") 'Call SetClassRights("DRIVER", strUser, "DRIVER_ALL") End Function