We need to build a report of VIP user requests.
We need to build a report of VIP user requests. Any advice on how to do this?
We are an organization of roughly 20k 'affected users', of those 20k users we probably have about 100 VIP customers that we need to take extra care of. Today, the only way that I have to know if they are being taken care of is to manually search for each user, and check if they have any pending requests.
What I would like, is to build a VIP Report that we can generate on the fly or scheduled that would show me any requests pending for any of those 100 individuals.
Our first thought was to build a some kind of SSRS report that we could populate off of an Active Directory group, our developers have been looking at a way to do that and thus far haven't had much success. The thinking is then we could just maintain a AD security group on the back end to monitor any requests related to them.
Any advice on how we can create such a report? Or any thoughts on how to accomplish this?
Thanks!
Answers
The pure AD/SQL/environment way to do this is kind of what you're suggesting -
The probably better, more longer term approach is -
The other thing the class extension does is open up a new workflow avenue. Incidents coming from VIPs could trigger additional notifications, runbooks, etc. The good news is there are are several blogs on this topic to help you extend SCSM to meet this need.
Adam, thanks for your input. Today, there is no 'common attribute' in AD that we can write a report against.
In your probably better approach, you are talking about extending the class (schema?) in Active Directory, correct?
Or are you talking extending the class in SCSM?
Extending the class in SCSM
@Brett_Moffett is one such author whose laid out the entire thing start to finish. https://systemcenternoise.wordpress.com/2015/02/18/scsm-vip-user-solution/
The core of the change here is really just the new bool property class extension in a custom sealed MP, but as you can see he's really gone the distance with console form edits.
Here is query I created for reporting on a bool extension to the IR and SR classes from the live DB.
You can use the same concept and just add your class extensions in the WHERE clauses on line 20 and 46.
You can also add some filters to check only for Active workitems.
I used Entity explorer to get the values for the class extensions I created"
IR
WHERE OPS.EscalatedToOps_643BC398_B323_CF06_EA66_724BD2D68ABA = 1
SR
WHERE OPS.EscalatedToOps_A5C3660A_FC4C_366C_A82E_1E4D989E1068 = 1
Please remember that any class extensions will reset the last modified time on all workitems of that class. So make sure to use this tool to avoid that situation. (Use at own risk) :-)
https://gallery.technet.microsoft.com/SCSM-Last-Modified-Date-15425cdc
I really appreciate all of the info and knowledge share. Thanks men.
Finally getting back to this one.
Is it possible to write a Powershell query that would give me all pending requests that are assigned to members of an Active Directory group?
Active Directory doesn't want to identify VIPs in the directory, SCSM doesn't want to extend the schema.
What I can do is create a active directory group, populate it with the VIPs and then hopefully run a powershell command to query for any workitems pending for members of the group?
@Jason_Meyer - Powershell attached!
EDIT: Re-attached after a bit more testing
Thanks Justin!!! All of my Powershell comes from Exchange admin days. I'll talk to our SCSM admin and see if we can make this work.
So, was able to spend some time on this. Was able to get powershell connected to our Service Manager servers. Quickly learned that the script required the community built "SMLets" powershell commands. Did some research to get that going.
Found SMLets (1.0 I think, an old version?) and got it to install, setup the two .DLL files that it needed and was able to get Import-Module SMLets to complete. Listed out the commands and found it was missing some. Did some more research found that I may have an old version.
Question: What version of SMLets are you running and where can I find it? Dug around on GitHub and PowerShell Gallery and finding some various versions, want to make sure I'm running the same as you.
Question: I've read quite a bit about the SCSM SDK and wondering if installing that will help. Originally I got the version of SMLets that I had running but when running your script got a few errors. Should I install the SCSM SDK? and (sorry) where can I find it? Again, did some digging and not finding a good source for it.
Question: At the end of your script, line 51 is "Get-WIsByGroup -groupName scsm_analysts". Just verifying that I need to change the -groupname to the name of the Active Directory group, correct?
I appreciate the assistance Justin.
@Jason_Meyer - You should be able to run the powershell on the portal server. The SMLets that gets installed by the portal will be compatible with the script. You are correct in that the group name on line 51 needs to be changed to your group.
Hmm, I don't have access to run this directly on the Cireson web server. Any way to run it on a workstation?
I've attached the version of SMLets that the portal ships with. It may take a bit of configuration...
https://lazywinadmin.com/2014/09/powershell-scsm-install-and-config.html
The "SDK" pieces you need are just the DLLs from your SCSM management server.
Thanks Justin, I couldn't get it to work but our Service Manager admin did tweaking and we did get it working.
needed to add the -computername to eliminate the data access service error.
Really appreciate your help on this.
Now looking at how to pull Affected User name for the results somehow.
So far I have not been able to get Affected User pulled into this report. And actually what we need is the e-mail address of the affected user, which I now am learning is a related object to the Affected user, which is a related object to the work item.
Can someone take a look at the attached code and see how I could get the Affected User's email address added to the output? I'm not concerned about the format, just need a way to get the addresses in bulk.