Snow-Shell / servicenow-powershell

PowerShell module to automate ServiceNow service and asset management. This module can be used standalone, with Azure Automation, or Docker.
Apache License 2.0
360 stars 170 forks source link

Trying to change the "assigned to" field #96

Closed ghost closed 4 years ago

ghost commented 4 years ago

Hello, I have been able to change every field in service now that I need, other then the "assigned to" field. I am passing this hash table to the command Update-ServiceNowIncident

$assigned = @{ assigned_to = "$assignedTo" } where the $assignedTo variable contains a valid email address in our environment.

This is the command I am using, similar to updating the assignment group or impacted user field.

Update-ServiceNowIncident -SysId $sysid -Values $assigned -ServiceNowCredential $global:serviceNowCredentials -ServiceNowURL $global:url

Any thoughts on what I could be doing wrong?

Thanks!

gdbarron commented 4 years ago

I believe you need to specify the sys_id for the user, not the email address. Perhaps not the best way to do it, but in the past I've created an incident and assigned it manually, retrieved the incident details with Get-ServiceNowIncident and gotten the sys_id that way.

Rick-2CA commented 4 years ago

bdbarron is correct - usually the user's sys_id is what you need. I've also gotten away with using the user's display name, however display name could be subject to multiple matches and may not resolve to the specific person you want.

Get-ServiceNowUser can be used to query users to get the sys_id.

ghost commented 4 years ago

So when I run Get-ServiceNowUser I don't see myself - does that mean the team that supports our API internally doesn't have the database populated with that information is all? I did find a few email addresses in the list however, grabbed their sys_id and passed the hashtable that way with update-ServiceNowIncident with no luck... Is it possible our service now api doesn't support this you think? I'm using assigned_to in my hashtable and almost positive this is correct.

Rick-2CA commented 4 years ago

You've done a Get-ServiceNowUser -MatchExact @{email='your_email'} and you don't show up? I'm not a ServiceNow admin, but from everything I've seen your user has to be in your tenant's database to function.

May be worth talking to your ServiceNow admins for assistance to ensure you have the rights to do what you're attempting to do. The example in your original post looks fine syntax wise. Would expect that you just need to pass your sys_id to change the assignment to you.