cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Windows: Unauthorized Administrators (Built-in)

Daniel_B
Lansweeper Former Employee
Lansweeper Former Employee
Old name: Computer: Unauthorized Administrators (Built-in)

The report below lists unauthorized members of your Windows computers' local administrator group, users that have not been marked as authorized under Configuration\User Pages in the web console. More info on the admin authorization feature can be found in this knowledge base article.

The report will only list assets that meet all of the following criteria:
  • The asset state is set to "active".
  • The asset has been successfully scanned at least once.
  • The asset is a Windows computer.
  • The Windows computer has an admin who is not built-in and who is not on the list of authorized admins under Configuration\User Pages.


SELECT Top 1000000 tblAssets.AssetID,
tblAssets.AssetName,
tblAssets.Domain,
tblAssets.Username,
tblAssets.Userdomain,
Coalesce(tsysOS.Image, tsysAssetTypes.AssetTypeIcon10) As icon,
tblAssets.IPAddress,
tsysIPLocations.IPLocation,
tblAssetCustom.Manufacturer,
tblAssetCustom.Model,
tsysOS.OSname As OS,
tblAssets.SP,
tblAssets.Lastseen,
tblAssets.Lasttried,
tblUsersInGroup.Domainname as unauthorizedDomain,
tblUsersInGroup.Username as unauthorizedUser,
tblUsersInGroup.Lastchanged
FROM tblAssets
Inner Join tblUsersInGroup ON tblUsersInGroup.AssetID = tblAssets.AssetID
Inner Join tblAssetCustom On tblAssets.AssetID = tblAssetCustom.AssetID
Inner Join tsysAssetTypes On tsysAssetTypes.AssetType = tblAssets.Assettype
Inner Join tsysIPLocations On tsysIPLocations.LocationID = tblAssets.LocationID
Inner Join tblState On tblState.State = tblAssetCustom.State
Left Join tsysOS On tsysOS.OScode = tblAssets.OScode
WHERE
(NOT EXISTS ( SELECT tblAssets.AssetName AS Domain, tblUsers.Name AS Username FROM tblAssets INNER JOIN tblUsers ON tblAssets.AssetID = tblUsers.AssetID
WHERE (Case tblUsers.BuildInAdmin when 1 then 'Yes' else 'No' end) = 'Yes' AND (tblUsersInGroup.Domainname = tblAssets.AssetName) AND (tblUsersInGroup.Username = tblUsers.Name))
AND NOT EXISTS( SELECT Domain, AdminName AS username FROM tsysadmins WHERE (tblUsersInGroup.Domainname LIKE Domain) AND (tblUsersInGroup.Username LIKE AdminName)))
AND (Case tblUsersInGroup.Admingroup when 1 then 'Yes' else 'No' end) = 'Yes'
AND tblState.Statename = 'Active'
Order By tblAssets.Domain, tblAssets.AssetName
5 REPLIES 5

jackienuby
Engaged Sweeper
Here is my change to our query to allow the ability to authorize domain user for specific computer:


SELECT TOP 1000000 tsysOS.IMAGE AS icon
,tblAssets.AssetID
,tblAssets.AssetName
,tblUsersInGroup.Domainname
,tblUsersInGroup.Username
,tblUsersInGroup.Lastchanged
,tblAssets.Domain
,tblAssets.IPAddress
,tblAssets.Description
,tblAssetCustom.Manufacturer
,tblAssetCustom.Model
,tblAssetCustom.Location
,tsysIPLocations.IPLocation
,tsysOS.OSname AS OS
,tblAssets.SP AS SP
,tblAssets.Firstseen
,tblAssets.Lastseen
FROM tblUsersInGroup
INNER JOIN tblAssets ON tblUsersInGroup.AssetID = tblAssets.AssetID
INNER JOIN tblAssetCustom ON tblAssets.AssetID = tblAssetCustom.AssetID
INNER JOIN tsysOS ON tblAssets.OScode = tsysOS.OScode
LEFT JOIN tsysIPLocations ON tsysIPLocations.StartIP <= tblAssets.IPNumeric
AND tsysIPLocations.EndIP >= tblAssets.IPNumeric
WHERE NOT EXISTS (
SELECT tblAssets.AssetName AS Domain
,tblUsers.Name AS Username
FROM tblAssets
INNER JOIN tblUsers ON tblAssets.AssetID = tblUsers.AssetID
WHERE tblUsers.BuildInAdmin = 1
AND tblUsersInGroup.Domainname = tblAssets.AssetName
AND tblUsersInGroup.Username = tblUsers.Name
)
AND NOT EXISTS (
SELECT tsysadmins.Domain
,tsysadmins.AdminName AS username
FROM tsysadmins
WHERE ( tblUsersInGroup.Domainname LIKE tsysadmins.Domain
AND tblUsersInGroup.Username LIKE tsysadmins.AdminName )
OR ( tblassets.AssetName LIKE tsysadmins.Domain
AND tblUsersInGroup.Username LIKE tsysadmins.AdminName )
)
AND tblUsersInGroup.Admingroup = 1
AND tblAssetCustom.STATE = 1
ORDER BY tblAssets.AssetName

bnishan
Engaged Sweeper II
We need the ability to authorize a domain user for a specific computer. This report has very limited usefulness without that.

bnishan wrote:
We need the ability to authorize a domain user for a specific computer. This report has very limited usefulness without that.


This is what I came up with. Just replace %DOMAIN% with your domain.

Select Top 1000000 tblAssets.AssetID,
tblAssets.AssetName,
tblUsersInGroup.Username,
tblUsersInGroup.Domainname,
tblUsersInGroup.Groupname
From tblAssets
Inner Join tblUsersInGroup On tblAssets.AssetID = tblUsersInGroup.AssetID
Where tblUsersInGroup.Username != 'Administrator' And
tblUsersInGroup.Groupname = 'Administrators' And
Not Exists(Select tsysadmins.Domain,
tsysadmins.AdminName From tsysadmins
Where (tblAssets.AssetName Like tsysadmins.Domain Or
tsysadmins.Domain Like '%DOMAIN%') And tblUsersInGroup.Username Like
tsysadmins.AdminName)
Order By tblAssets.AssetName

bnishan
Engaged Sweeper II
Lancreeper wrote:
bnishan wrote:
We need the ability to authorize a domain user for a specific computer. This report has very limited usefulness without that.


This is what I came up with. Just replace %DOMAIN% with your domain.

Select Top 1000000 tblAssets.AssetID,
tblAssets.AssetName,
tblUsersInGroup.Username,
tblUsersInGroup.Domainname,
tblUsersInGroup.Groupname
From tblAssets
Inner Join tblUsersInGroup On tblAssets.AssetID = tblUsersInGroup.AssetID
Where tblUsersInGroup.Username != 'Administrator' And
tblUsersInGroup.Groupname = 'Administrators' And
Not Exists(Select tsysadmins.Domain,
tsysadmins.AdminName From tsysadmins
Where (tblAssets.AssetName Like tsysadmins.Domain Or
tsysadmins.Domain Like '%DOMAIN%') And tblUsersInGroup.Username Like
tsysadmins.AdminName)
Order By tblAssets.AssetName


Thanks, worked like a charm

Lancreeper
Engaged Sweeper
The KB article states "Authorizing a domain user for a specific computer is not currently possible." Is this possible using a different query?