Active Directory: Privileged AD users logged on servers V2
Select Top 1000000 tblassets.AssetID,
tblassets.Domain,
tblassets.AssetName,
tblassets.oscode,
tblUsersInGroup.admingroup,
tblUsersInGroup.Groupname As local_adm_group_name,
tblUsersInGroup.Domainname As local_membership_domain,
tblUsersInGroup.Username As local_membership_object_name,
Case
When tblADObjects6.sAMAccountName Is Not Null Then tblADObjects1.domain +
'\' + tblADObjects1.sAMAccountName + '->' + tblADObjects2.domain + '\' +
tblADObjects2.sAMAccountName + '->' + tblADObjects3.domain + '\' +
tblADObjects3.sAMAccountName + '->' + tblADObjects4.domain + '\' +
tblADObjects4.sAMAccountName + '->' + tblADObjects5.domain + '\' +
tblADObjects5.sAMAccountName + '->' + tblADObjects6.domain + '\' +
tblADObjects6.sAMAccountName
When tblADObjects5.sAMAccountName Is Not Null Then tblADObjects1.domain +
'\' + tblADObjects1.sAMAccountName + '->' + tblADObjects2.domain + '\' +
tblADObjects2.sAMAccountName + '->' + tblADObjects3.domain + '\' +
tblADObjects3.sAMAccountName + '->' + tblADObjects4.domain + '\' +
tblADObjects4.sAMAccountName + '->' + tblADObjects5.domain + '\' +
tblADObjects5.sAMAccountName
When tblADObjects4.sAMAccountName Is Not Null Then tblADObjects1.domain +
'\' + tblADObjects1.sAMAccountName + '->' + tblADObjects2.domain + '\' +
tblADObjects2.sAMAccountName + '->' + tblADObjects3.domain + '\' +
tblADObjects3.sAMAccountName + '->' + tblADObjects4.domain + '\' +
tblADObjects4.sAMAccountName
When tblADObjects3.sAMAccountName Is Not Null Then tblADObjects1.domain +
'\' + tblADObjects1.sAMAccountName + '->' + tblADObjects2.domain + '\' +
tblADObjects2.sAMAccountName + '->' + tblADObjects3.domain + '\' +
tblADObjects3.sAMAccountName
When tblADObjects2.sAMAccountName Is Not Null Then tblADObjects1.domain +
'\' + tblADObjects1.sAMAccountName + '->' + tblADObjects2.domain + '\' +
tblADObjects2.sAMAccountName
When tblADObjects1.sAMAccountName Is Not Null Then tblADObjects1.domain +
'\' + tblADObjects1.sAMAccountName
When tblADObjects.sAMAccountName Is Not Null Then 'domain_local_assigned'
When tblADObjects.sAMAccountName Is Null Then 'local_user'
Else 'Unknown'
End object_path,
cpli.min_logontime,
cpli.max_logontime
From tblassets
Inner Join tblUsersInGroup On tblassets.AssetID = tblUsersInGroup.AssetID And
(Not tblUsersInGroup.Username In ('Domain Admins', 'Administrator'
) Or Not tblUsersInGroup.admingroup = 1)
And (Not tblUsersInGroup.Username In ('Domain Users', 'Authenticated Users',
'INTERACTIVE') Or Not tblUsersInGroup.Groupname In ('Users'))
Left Join tblADObjects On tblUsersInGroup.Domainname = tblADObjects.domain And
tblUsersInGroup.Username = tblADObjects.sAMAccountName
Left Join tblADMembership On tblADObjects.ADObjectID =
tblADMembership.ParentAdObjectID
Left Join tblADObjects tblADObjects1 On tblADObjects1.ADObjectID =
tblADMembership.ChildAdObjectID
Left Join tblADMembership tblADMembership1 On tblADObjects1.ADObjectID =
tblADMembership1.ParentAdObjectID
Left Join tblADObjects tblADObjects2 On tblADMembership1.ChildAdObjectID =
tblADObjects2.ADObjectID
Left Join tblADMembership tblADMembership2 On tblADObjects2.ADObjectID =
tblADMembership2.ParentAdObjectID
Left Join tblADObjects tblADObjects3 On tblADMembership2.ChildAdObjectID =
tblADObjects3.ADObjectID
Left Join tblADMembership tblADMembership3 On tblADObjects3.ADObjectID =
tblADMembership3.ParentAdObjectID
Left Join tblADObjects tblADObjects4 On tblADMembership3.ChildAdObjectID =
tblADObjects4.ADObjectID
Left Join tblADMembership tblADMembership4 On tblADObjects4.ADObjectID =
tblADMembership4.ParentAdObjectID
Left Join tblADObjects tblADObjects5 On tblADMembership4.ChildAdObjectID =
tblADObjects5.ADObjectID
Left Join tblADMembership tblADMembership5 On tblADObjects5.ADObjectID =
tblADMembership5.ParentAdObjectID
Left Join tblADObjects tblADObjects6 On tblADMembership5.ChildAdObjectID =
tblADObjects6.ADObjectID
Left Join (Select i.assetid,
i.domain,
i.username,
Min(i.logontime) min_logontime,
Max(i.logontime) max_logontime
From tblcplogoninfo As i
Group By i.assetid,
i.domain,
i.username) cpli On tblassets.assetid = cpli.assetid And
Coalesce(tblADObjects6.domain, tblADObjects5.domain, tblADObjects4.domain,
tblADObjects3.domain, tblADObjects2.domain, tblADObjects1.domain,
tblUsersInGroup.Domainname) = cpli.domain And
Coalesce(tblADObjects6.sAMAccountName, tblADObjects5.sAMAccountName,
tblADObjects4.sAMAccountName, tblADObjects3.sAMAccountName,
tblADObjects2.sAMAccountName, tblADObjects1.sAMAccountName,
tblUsersInGroup.Username) = cpli.username
Where tblassets.oscode Like '%s'