我们正在扫描活动目录以查找所有计算机对象。然后,对于每台计算机,我们试图找到使用该计算机最多的用户,即主要用户。
要找到此数据,我们发现了两个针对SCCM的有效查询:
$Query = "
SELECT
SMS_R_User.FullUserName, SMS_R_User.UniqueUserName, SMS_R_System.Name
FROM
SMS_R_System
INNER JOIN
SMS_G_System_SYSTEM_CONSOLE_USAGE
ON
SMS_G_System_SYSTEM_CONSOLE_USAGE.ResourceId = SMS_R_System.ResourceId
INNER JOIN
SMS_R_User
ON
SMS_G_System_SYSTEM_CONSOLE_USAGE.TopConsoleUser = SMS_R_User.UniqueUserName
"
$Query = "
SELECT
SMS_R_System.name, SMS_R_User.UniqueUserName
FROM
SMS_R_System
INNER JOIN
SMS_UserMachineRelationship
ON
SMS_UserMachineRelationship.ResourceId = SMS_R_System.ResourceId
JOIN
SMS_R_User
ON
SMS_UserMachineRelationship.UniqueUserName = SMS_R_User.UniqueUserName
WHERE
SMS_UserMachineRelationship.Types = 1
"
我们使用以下命令执行这些操作
$WmiParams = @{
Namespace = "root\SMS\site_EU1"
ComputerName = $SCCMServer
Query = $Query
}
$Result = Get-WmiObject @WmiParams
我们不是SCCM专家很多,但是两个查询都给出了不同的结果并且重复了计算机对象$Result.SMS_R_System.Name | Group-Object | where Count -ge 2
。
使用SamAccountName
和FullUserName
将一台计算机名称连接到一个主要用户的正确查询是什么?
谢谢您的帮助。
答案 0 :(得分:1)
SMS_UserMachineRelationship
应该包含用户的主设备。 1个设备可能是许多用户的主要设备,并且1个用户可能拥有1个以上的主要设备。取决于Client Settings
中配置的标准以标识主要设备。默认情况下,如果某些用户在一个月内登录48 hours
的设备,则将其视为该用户的主要设备。此条件可以更改。您可以在https://docs.microsoft.com/en-us/sccm/apps/deploy-use/link-users-and-devices-with-user-device-affinity
User Device Affinity
的更多信息
答案 1 :(得分:0)
另一种选择是使用PowerShell模块“ dbatools” ...
Invoke-DbaQuery -SqlInstance "myserver.contoso.local" -Database "CM_P01" -Query "select UniqueUserName,MachineResource Name from v_UserMachineRelationship"