Hello,
I am trying to create a query of machines which do not have Sophos and do not have System Center Endpoint Protection:
Select Name0 from v_R_System
inner join v_FullCollectionMembership on v_R_System.ResourceID = v_FullCollectionMembership.ResourceID
where CollectionID = 'UCP00020'
and NOT EXISTS
(
Select
/* ISS - All Servers /
Name0 as [Server Name],
ProductName0 as [Product Name],
Publisher0 as [Publisher],
MAX(ProductVersion0) as [Version]
from v_GS_INSTALLED_SOFTWARE v_GS_INSTALLED_SOFTWARE
join v_R_System on v_R_System.ResourceID = v_GS_INSTALLED_SOFTWARE.ResourceID
where v_GS_INSTALLED_SOFTWARE.ProductName0 IS NOT NULL
and v_GS_INSTALLED_SOFTWARE.ResourceID IN
(
select distinct v_R_System.ResourceID
from v_R_System
inner join v_FullCollectionMembership on v_R_System.ResourceID = v_FullCollectionMembership.ResourceID
where CollectionID = 'UCP00020')
and Publisher0 = 'Sophos Limited'
and ProductName0 = 'Sophos Anti-Virus'
Group By
Name0,
ProductName0,
ProductVersion0,
Publisher0
UNION
Select
/ ISS - All Servers */
Name0 as [Server Name],
ProductName0 as [Product Name],
Publisher0 as [Publisher],
MAX(ProductVersion0) as [Version]
from v_GS_INSTALLED_SOFTWARE v_GS_INSTALLED_SOFTWARE
join v_R_System on v_R_System.ResourceID = v_GS_INSTALLED_SOFTWARE.ResourceID
where v_GS_INSTALLED_SOFTWARE.ProductName0 IS NOT NULL
and v_GS_INSTALLED_SOFTWARE.ResourceID IN
(
select distinct v_R_System.ResourceID
from v_R_System
inner join v_FullCollectionMembership on v_R_System.ResourceID = v_FullCollectionMembership.ResourceID
where CollectionID = 'UCP00020')
and Publisher0 like '%Microsoft Corporation%'
and ProductName0 Like '%System Center Endpoint Protection%'
Group By
Name0,
ProductName0,
ProductVersion0,
Publisher0
)
--------------------------------------------------------------------------------------------------------------------------
If I do
Select Name0 from v_R_System
inner join v_FullCollectionMembership on v_R_System.ResourceID = v_FullCollectionMembership.ResourceID
where CollectionID = 'UCP00020'
I have 1,628 resources...
If I do
Select
/* ISS - All Servers /
Name0 as [Server Name],
ProductName0 as [Product Name],
Publisher0 as [Publisher],
MAX(ProductVersion0) as [Version]
from v_GS_INSTALLED_SOFTWARE v_GS_INSTALLED_SOFTWARE
join v_R_System on v_R_System.ResourceID = v_GS_INSTALLED_SOFTWARE.ResourceID
where v_GS_INSTALLED_SOFTWARE.ProductName0 IS NOT NULL
and v_GS_INSTALLED_SOFTWARE.ResourceID IN
(
select distinct v_R_System.ResourceID
from v_R_System
inner join v_FullCollectionMembership on v_R_System.ResourceID = v_FullCollectionMembership.ResourceID
where CollectionID = 'UCP00020')
and Publisher0 = 'Sophos Limited'
and ProductName0 = 'Sophos Anti-Virus'
Group By
Name0,
ProductName0,
ProductVersion0,
Publisher0
UNION
Select
/ ISS - All Servers */
Name0 as [Server Name],
ProductName0 as [Product Name],
Publisher0 as [Publisher],
MAX(ProductVersion0) as [Version]
from v_GS_INSTALLED_SOFTWARE v_GS_INSTALLED_SOFTWARE
join v_R_System on v_R_System.ResourceID = v_GS_INSTALLED_SOFTWARE.ResourceID
where v_GS_INSTALLED_SOFTWARE.ProductName0 IS NOT NULL
and v_GS_INSTALLED_SOFTWARE.ResourceID IN
(
select distinct v_R_System.ResourceID
from v_R_System
inner join v_FullCollectionMembership on v_R_System.ResourceID = v_FullCollectionMembership.ResourceID
where CollectionID = 'UCP00020')
and Publisher0 like '%Microsoft Corporation%'
and ProductName0 Like '%System Center Endpoint Protection%'
Group By
Name0,
ProductName0,
ProductVersion0,
Publisher0
I have 1,387 resources
but when I ran the complete SQL Statement I obtain 0 resource and no error...
I was expecting 1628-1387 = 241 resources...
What is wrong is the complete statement?
Thanks,
Dom