我正在使用内置的SCSM cmdlet和SMlets powershell模块。 我能够查询服务请求,但我似乎无法弄清楚如何获得给定服务请求的受影响的用户。 我以下列方式获取服务请求:
Import-Module SMlets -ErrorAction Stop $SCSMclassSR = Get-SCSMClass -Name System.WorkItem.ServiceRequest $SCSMobject = Get-SCSMObject -Class $SCSMclassSR
如果您select任何给定的票证并运行Get-Member ,您可以查看属性列表。 其中没有一个映射回受影响的用户。 考虑到票数据可能与用户对象一起保存,我运行了下面的代码:
$scsmuser = Get-SCSMObject -Class (get-scsmclass -name microsoft.ad.user) -filter "UserName -like <username>"
这里没有一个属性可以映射到任何票据上(也可以运行一个gm)。 当然,这可能是我的无知,产生票的方法并不恰当地命名或描述。
我试过看SMlets源代码来收集一些见解,但我不是一个C#开发人员,所以它的一些超过了我的头。 我也尝试从EnterpriseManagementObject Class的msdn页面获得一些理解和帮助,但是无济于事。
希望有一个非常简单的解决scheme,我只是在想它。 但是, 如何使用PowerShell获得SCSM票证的受影响用户? 优选地,服务请求票证。
我一直在挖掘,发现一个脚本在线,有人想find事件的用户电子邮件地址。 我想他们必须先find用户(这会给我AffectedUser),我是对的。 这是解决scheme:
$SCSMclassSR = Get-SCSMClass -Name System.WorkItem.ServiceRequest $SCSMobject = Get-SCSMObject -Class $SCSMclassSR $affectedUserRelClass = Get-SCSMRelationshipClass System.WorkItemAffectedUser$ Foreach($SR in $SCSMobject){ $affectedUser = Get-SCSMRelatedObject -SMObject $SR -Relationship $AffectedUserRelClass Add-Member -InputObject $SR -Name AffectedUser -Value $affectedUser.UserName -MemberType NoteProperty }