Get-CMUserDeviceAffinity

获取设备与其主要用户之间的关系。

语法

Get-CMUserDeviceAffinity
   -UserName <String[]>
   [-ShowApprovedOnly]
   [-DisableWildcardHandling]
   [-ForceWildcardHandling]
   [<CommonParameters>]
Get-CMUserDeviceAffinity
   -DeviceId <Int32[]>
   [-ShowApprovedOnly]
   [-DisableWildcardHandling]
   [-ForceWildcardHandling]
   [<CommonParameters>]
Get-CMUserDeviceAffinity
   -DeviceName <String[]>
   [-ShowApprovedOnly]
   [-DisableWildcardHandling]
   [-ForceWildcardHandling]
   [<CommonParameters>]
Get-CMUserDeviceAffinity
   -UserId <Int32[]>
   [-ShowApprovedOnly]
   [-DisableWildcardHandling]
   [-ForceWildcardHandling]
   [<CommonParameters>]

说明

Get-CMUserDeviceAffinity cmdlet 在 Configuration Manager 中获取一个或多个用户设备相关性。 用户设备相关性是设备与其主要用户之间的关系。 有关详细信息,请参阅 在 Configuration Manager 中使用用户设备相关性链接用户和设备

注意

从 Configuration Manager 站点驱动器运行 Configuration Manager cmdlet,例如 PS XYZ:\>。 有关详细信息,请参阅 入门

示例

示例 1:按用户名获取用户设备相关性

此命令获取用户 contoso\jqpublic 的任何用户设备相关性。

Get-CMUserDeviceAffinity -UserName "contoso\jqpublic"

示例 2:获取给定用户的设备

此示例与第一个示例类似,但使用 Select-Object cmdlet 减少了返回的属性列表。 可以使用此示例快速查找特定用户经常使用的设备。 此示例以此修改后的格式显示输出。

PS XYZ:\> $user = "contoso\jqpublic"
PS XYZ:\> Get-CMUserDeviceAffinity -UserName $user | Select-Object ResourceName
ResourceName
------------
PUYALLUP01
KULSHAN02
TAHOMA42

示例 3:按用户 ID 获取用户设备相关性

此命令获取资源 ID 为2063597981的用户的任何用户设备相关性。

Get-CMUserDeviceAffinity -UserID "2063597981"

示例 4:获取设备名称的用户设备相关性

此命令获取名为 CMCEN-DIST02 的设备的用户设备相关性。

Get-CMUserDeviceAffinity -DeviceName "CMCEN-DIST02"

示例 5:获取设备 ID 的用户设备相关性

此命令获取具有资源 ID 16780642的设备的用户设备相关性。

Get-CMUserDeviceAffinity -DeviceID "16780642"

示例 6:获取设备列表的主要用户

此脚本示例显示导入的设备列表的主要用户。 获取此列表的一种方法是从 Configuration Manager 控制台的 “设备” 节点中,多选多个行,然后 (Ctrl + V) 复制文本。 将数据粘贴到纯文本文件中,将制表符替换为逗号 (,) ,然后将其另存为 computers.csv

$computers = Import-Csv -Path "C:\Users\jqpublic\computers.csv"

foreach ( $computer in $computers )
{
  $uda = Get-CMUserDeviceAffinity -DeviceName $computer.Name
  
  if ( ($uda.UniqueUserName).count -gt 1 )
  {
    foreach ( $user in $uda.UniqueUserName )
    {
      Write-Host $uda.ResourceName[1] $user
    }
  }
  else
  {
    write-host $uda.ResourceName $uda.UniqueUserName
  }
}

脚本示例使用 Import-Csv cmdlet 从以逗号分隔的列表获取输入,该列表具有设备名称的 “名称” 列。

  • 第一个 foreach 命令循环访问逗号分隔文件中的每一行。 它使用 Get-CMUserDeviceAffinity cmdlet 获取该设备的主要用户。
  • 如果设备有多个主要用户,则会在单独的行中写入计算机名和每个用户。
  • 如果设备只有一个主要用户,则它会写入计算机名称和用户。
  • 脚本的输出是计算机名称和关联的主用户名的简单列表。

参数

-DeviceId

指定设备资源 ID 的数组以获取其主要用户。

类型:Int32[]
别名:ResourceId
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-DeviceName

指定设备名称数组。

类型:String[]
别名:ResourceName
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:True

-DisableWildcardHandling

此参数将通配符视为文本字符值。 不能将其与 ForceWildcardHandling 组合使用。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-ForceWildcardHandling

此参数处理通配符,并可能导致意外行为, (不建议) 。 不能将其与 DisableWildcardHandling 组合使用。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-ShowApprovedOnly

添加此参数以筛选出未批准的相关性。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-UserId

指定用户资源 ID 的数组。 使用此参数可获取此用户是主要用户的任何设备。

类型:Int32[]
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-UserName

指定用户名数组。 使用此参数可获取此用户是主要用户的任何设备。

类型:String[]
别名:UniqueUserName
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:True

输入

None

输出

IResultObject[]

IResultObject

备注

有关此返回对象及其属性的详细信息,请参阅 SMS_UserMachineRelationship服务器 WMI 类