Linking Framework Configuration Manager Data Consumer

DataConsumer.Microsoft.EnterpriseManagement.ServiceManager.Connector.Sms (ObjectTemplate)

Linking Framework Configuration Manager Data Consumer class

Element properties:

TypeSystem.LinkingFramework.DataConnector.Projection

Source Code:

<ObjectTemplate ID="DataConsumer.Microsoft.EnterpriseManagement.ServiceManager.Connector.Sms" TypeID="LFX!System.LinkingFramework.DataConnector.Projection">
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataConnector']/DataConnectorName$">MomStore</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataConnector']/IsProvider$">False</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataConnector']/SolutionName$">SCCM-Inventory</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataConnector']/EntryPoint$">Microsoft.EnterpriseManagement.ServiceManager.Linking.Consumer.OperationalStore.OperationalStoreConsumer</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataConnector']/EntryAssembly$">Microsoft.EnterpriseManagement.ServiceManager.Linking.Consumer.OperationalStore, Version="7.0.5000.0", Culture=neutral, PublicKeyToken="31bf3856ad364e35"</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataConnector']/InstallSQLScripts$">&lt;Script&gt;
--- Processing for computers
if not object_id('[LFXSTG].[fn_CheckComputers]') is null
drop function [LFXSTG].[fn_CheckComputers];
exec ('
CREATE FUNCTION LFXSTG.fn_CheckComputers(
@sourceID AS INT,
@resourceID AS INT,
@sms_identifier AS NVARCHAR(255),
@lfx_Status AS nvarchar(1)
)
RETURNS @LogicalComputers TABLE
(
Lfx_Status nvarchar(1),
Name0 nvarchar(64),
Domain0 nvarchar(255),
CurrentTimeZone0 int,
IsVirtualMachine bit
)
AS
BEGIN
-- implement detailed checking for deletion cases

-- if v_R_System has an update for ResourceID process the join unchanged.
-- In case of rename, the join on ResourceID will return two rows, one will be an update
-- representing the renamed computer, one will be a delete for the original computer
-- The two rows have same resource id but different group key.
IF (@lfx_Status = ''U'')
BEGIN
INSERT @LogicalComputers (Lfx_Status, Name0, Domain0,
CurrentTimeZone0, IsVirtualMachine)
SELECT CS.Lfx_Status,
CS.Name0,
CS.Domain0,
CS.CurrentTimeZone0,
(CASE WHEN COALESCE(CS.Model0,'''')=''Virtual Machine''
OR COALESCE(CS.Model0,'''')=''VMware Virtual Platform''
THEN ''True''
WHEN COALESCE(CS.Manufacturer0, '''')=''Microsoft Corporation''
OR COALESCE(CS.Manufacturer0, '''') = ''VMware, Inc.''
THEN ''True''
ELSE ''False''
END)
FROM LFXSTG.vex_GS_COMPUTER_SYSTEM CS
WHERE CS.ResourceID = @resourceID
AND CS.Lfx_SourceID = @sourceID

END
ELSE
BEGIN
-- Process a deletion in v_R_System.
-- Check if there is a live computer with same previous SMS_UUID. If there is,
-- drop the delete if FQDN is the same as that of live computer.
DECLARE @liveComputerFQDN NVARCHAR(256)

DECLARE @deadComputerFQDN NVARCHAR(256)
DECLARE @deadComputerHWID NVARCHAR(64)
DECLARE @deadComputerSMBIOSGUID NVARCHAR(38)

-- get fields for current passed in computer
SELECT @deadComputerFQDN = FQDN,
@deadComputerHWID = Hardware_ID0,
@deadComputerSMBIOSGUID = SMBIOS_GUID0
FROM LFXSTG.vex_R_System
WHERE ResourceID = @resourceID AND Lfx_SourceId = @sourceID

-- get FQDN for any live computer with same previous SMS_UUID OR
-- if the SMBIOSGUID and HWID are the same. In some reimage cases, the
-- previous SMS_UUID may not populated at the time we run the query (because
-- Delete Aged Discovery hasnt run?) there is another row with same HWID and SMBIOSGUID.
-- That should indicate there is a live computer, hence check if name is same
SELECT @liveComputerFQDN = FQDN
FROM LFXSTG.vex_R_System
WHERE ((Previous_SMS_UUID0 = @sms_identifier)
OR (Hardware_ID0 = @deadComputerHWID AND SMBIOS_GUID0 = @deadComputerSMBIOSGUID))
AND Lfx_SourceId = @sourceID
AND ResourceID != @resourceID
AND Lfx_Status = ''U''

IF (@liveComputerFQDN IS NOT NULL)
BEGIN
IF (@liveComputerFQDN = @deadComputerFQDN)
BEGIN
-- status changed to skip this delete. Outer query filters by this
SET @lfx_Status = ''I''
END
END

-- prepare the deletion row to be inserted, either we permit the delete or place
-- a dummy status to filter it out. The status from v_R_System overrides any status
-- in V_GS_COMPUTER_SYSTEM in case of delete.
INSERT @LogicalComputers (Lfx_Status, Name0, Domain0,
CurrentTimeZone0, IsVirtualMachine)
SELECT @lfx_Status,
CS.Name0, -- name of deleted computer
CS.Domain0, -- domain of deleted computer
CS.CurrentTimeZone0,
(CASE WHEN COALESCE(CS.Model0,'''')=''Virtual Machine''
OR COALESCE(CS.Model0,'''')=''VMware Virtual Platform''
THEN ''True''
WHEN COALESCE(CS.Manufacturer0, '''')=''Microsoft Corporation''
OR COALESCE(CS.Manufacturer0, '''') = ''VMware, Inc.''
THEN ''True''
ELSE ''False''
END)
FROM LFXSTG.vex_GS_COMPUTER_SYSTEM CS
WHERE CS.ResourceID = @resourceID
AND CS.Lfx_SourceId = @sourceID
END
RETURN
END
');
&lt;/Script&gt;&lt;Script&gt;
if not object_id('[LFXSTG].[v_PhysicalComputer]') is null
drop view [LFXSTG].[v_PhysicalComputer];
exec ('
CREATE VIEW [LFXSTG].[v_PhysicalComputer] AS
SELECT S.Lfx_RowId AS Lfx_RowId,
S.Lfx_SourceId,
(case
when isnull(S.Lfx_Timestamp,''1900-01-01'') &gt; isnull(CS.Lfx_Timestamp,''1900-01-01'')
then S.Lfx_Timestamp
else CS.Lfx_Timestamp end) AS Lfx_Timestamp,
S.Lfx_Status,
CS.Name0 AS ''DisplayName'',
CS.Model0 AS ''Model'',
CS.NumberOfProcessors0 AS ''NumberOfProcessors'',
CS.SystemType0 AS ''SystemType'',
S.Hardware_ID0 AS ''HardwareId'',
S.SMBIOS_GUID0 AS ''SMBIOS_UUID'',
COALESCE(E.SMBIOSAssetTag0,'''') AS ''SMBIOSAssetTag'',
CS.Manufacturer0 AS ''Manufacturer'',
E.ChassisTypes0 AS ''ChassisType'',
E.SerialNumber0 AS ''SerialNumber''
FROM [LFXSTG].vex_R_System S
LEFT JOIN [LFXSTG].vex_GS_COMPUTER_SYSTEM CS
ON S.ResourceID=CS.ResourceID
AND S.Lfx_SourceId = CS.Lfx_SourceId
AND CS.Lfx_Status = ''U''
LEFT JOIN [LFXSTG].vex_GS_SYSTEM_ENCLOSURE E
ON E.ResourceID=S.ResourceID
AND E.Lfx_SourceId = S.Lfx_SourceId
AND E.Lfx_Status = ''U''
');

&lt;/Script&gt;&lt;Script&gt;
if not object_id('[LFXSTG].[v_LogicalComputer]') is null
drop view [LFXSTG].[v_LogicalComputer];
exec ('
CREATE VIEW [LFXSTG].[v_LogicalComputer] AS
SELECT S.Lfx_RowId,
S.Lfx_SourceID,
S.Lfx_Timestamp,
CCX.Lfx_Status,
CCX.Name0 AS ''DisplayName'',
COALESCE(CCX.Name0, S.Netbios_Name0)
+ ''.'' + COALESCE(CCX.Domain0, S.Resource_Domain_OR_Workgr0) AS ''PrincipalName'',
S.Netbios_Name0 AS ''NetbiosComputerName'',
S.Resource_Domain_OR_Workgr0 AS ''NetbiosDomainName'',
CCX.CurrentTimeZone0 AS ''OffsetInMinuteFromGreenwichTime'',
CCX.IsVirtualMachine,
W.LastHWScan AS ''LastInventoryDate'',
S.AD_Site_Name0 AS ''ActiveDirectorySite''
FROM LFXSTG.vex_R_System S
CROSS APPLY
LFXSTG.fn_CheckComputers(S.Lfx_SourceID, S.ResourceID, S.SMS_Unique_Identifier0, S.Lfx_Status) AS CCX
LEFT JOIN [LFXSTG].vex_GS_Workstation_Status W
ON S.ResourceID = W.ResourceID AND S.Lfx_SourceId = W.Lfx_SourceId
WHERE S.Netbios_Name0 IS NOT NULL
AND S.Resource_Domain_OR_Workgr0 IS NOT NULL
AND CCX.Lfx_Status != ''I''
');
&lt;/Script&gt;&lt;Script&gt;
if not object_id('[LFXSTG].[v_LogicalComputerOnPhysicalComputer]') is null
drop view [LFXSTG].[v_LogicalComputerOnPhysicalComputer]
exec ('
CREATE VIEW [LFXSTG].[v_LogicalComputerOnPhysicalComputer] AS
SELECT S.Lfx_RowId AS Lfx_RowId,
S.Lfx_SourceId,
(case
when isnull(S.Lfx_Timestamp,''1900-01-01'') &gt; isnull(CS.Lfx_Timestamp,''1900-01-01'')
then S.Lfx_Timestamp
else CS.Lfx_Timestamp end) AS Lfx_Timestamp,
S.Lfx_Status as Lfx_Status,
COALESCE(CS.Name0, S.Netbios_Name0) + ''.'' + COALESCE(CS.Domain0, S.Resource_Domain_OR_Workgr0) AS ''PrincipalName'',
S.Hardware_ID0 AS ''HardwareId'',
COALESCE(E.SMBIOSAssetTag0,'''') AS ''SMBIOSAssetTag''
FROM [LFXSTG].vex_GS_COMPUTER_SYSTEM CS
INNER JOIN [LFXSTG].vex_R_System S
ON S.ResourceID=CS.ResourceID AND S.Lfx_SourceId = CS.Lfx_SourceId
LEFT JOIN [LFXSTG].vex_GS_SYSTEM_ENCLOSURE E
ON E.ResourceID=CS.ResourceID AND E.Lfx_SourceId = CS.Lfx_SourceId
WHERE S.Netbios_Name0 IS NOT NULL
AND S.Resource_Domain_OR_Workgr0 IS NOT NULL
')
&lt;/Script&gt;&lt;Script&gt;
if not object_id('[LFXSTG].[v_OperatingSystem]') is null
drop view [LFXSTG].[v_OperatingSystem]
exec ('
CREATE VIEW [LFXSTG].[v_OperatingSystem] AS
SELECT OS.Lfx_RowId AS Lfx_RowId,
OS.Lfx_SourceId,
(case
when isnull(OS.Lfx_Timestamp,''1900-01-01'') &gt; isnull(S.Lfx_Timestamp,''1900-01-01'')
then OS.Lfx_Timestamp
else S.Lfx_Timestamp end) AS Lfx_Timestamp,
OS.[Lfx_Status] as Lfx_Status,
COALESCE(CS.Name0, S.Netbios_Name0) + ''.'' + COALESCE(CS.Domain0, S.Resource_Domain_OR_Workgr0) AS ''PrincipalName'',
OS.Caption0 AS ''DisplayName'',
OS.Version0 AS ''OSVersion'',
OS.BuildNumber0 AS ''BuildNumber'',
OS.InstallDate0 AS ''InstallDate'',
OS.WindowsDirectory0 AS ''WindowsDirectory'',
OS.SystemDirectory0 AS ''SystemDrive'',
OS.CountryCode0 AS ''CountryCode'',
OS.Locale0 AS ''Locale'',
OS.Manufacturer0 AS ''Manufacturer'',
OS.OSLanguage0 AS ''OSLanguage'',
OS.TotalVisibleMemorySize0 AS ''PhysicalMemory'',
CS.NumberOfProcessors0 AS ''LogicalProcessors''
FROM [LFXSTG].vex_GS_Operating_System OS
INNER JOIN [LFXSTG].vex_R_System S
ON OS.ResourceID=S.ResourceID AND OS.Lfx_SourceId = S.Lfx_SourceId
INNER JOIN [LFXSTG].vex_GS_COMPUTER_SYSTEM CS
ON S.ResourceID=CS.ResourceID
AND S.Lfx_SourceId = CS.Lfx_SourceId
WHERE S.Netbios_Name0 IS NOT NULL
AND S.Resource_Domain_OR_Workgr0 IS NOT NULL
AND CS.Lfx_Status = ''U''
')
&lt;/Script&gt;&lt;Script&gt;
if not object_id('[LFXSTG].[v_LogicalDisk]') is null
drop view [LFXSTG].[v_LogicalDisk]
exec ('
CREATE VIEW [LFXSTG].[v_LogicalDisk] AS
SELECT (LD.Lfx_RowId) AS Lfx_RowId,
LD.Lfx_SourceId,
LD.Lfx_Timestamp AS Lfx_Timestamp,
LD.Lfx_Status AS Lfx_Status,
COALESCE(CS.Name0, S.Netbios_Name0) + ''.'' + COALESCE(CS.Domain0, S.Resource_Domain_OR_Workgr0) AS ''PrincipalName'',
LD.Name0 AS ''DisplayName'',
LD.DeviceID0 AS ''DeviceID'',
LD.Name0 AS ''Name'',
LD.Description0 AS ''Description'',
LD.VolumeName0 AS ''VolumeName'',
LD.FileSystem0 AS ''FileSystem'',
LD.Compressed0 AS ''Compressed'',
LD.Size0 AS ''Size'',
LD.FreeSpace0 AS ''FreeSpace'',
LD.DriveType0 AS ''DriveType''
FROM [LFXSTG].vex_GS_Logical_Disk LD
INNER JOIN [LFXSTG].vex_R_System S
ON LD.ResourceID=S.ResourceID AND LD.Lfx_SourceId = S.Lfx_SourceId
INNER JOIN [LFXSTG].vex_GS_COMPUTER_SYSTEM CS
ON S.ResourceID=CS.ResourceID
AND S.Lfx_SourceId = CS.Lfx_SourceId
WHERE S.Netbios_Name0 IS NOT NULL
AND S.Resource_Domain_OR_Workgr0 IS NOT NULL
AND CS.Lfx_Status = ''U''
')
&lt;/Script&gt;&lt;Script&gt;
if not object_id('[LFXSTG].[v_PhysicalDisk]') is null
drop view [LFXSTG].[v_PhysicalDisk]
exec ('
CREATE VIEW [LFXSTG].[v_PhysicalDisk] AS
SELECT D.Lfx_RowId AS Lfx_RowId,
D.Lfx_SourceId,
D.Lfx_Timestamp AS Lfx_Timestamp,
D.Lfx_Status as Lfx_Status,
COALESCE(CS.Name0, S.Netbios_Name0) + ''.'' + COALESCE(CS.Domain0, S.Resource_Domain_OR_Workgr0) AS ''PrincipalName'',
D.Name0 AS ''DisplayName'',
D.DeviceID0 AS ''DeviceID'',
D.Name0 AS ''Name'',
D.Description0 AS ''Description'',
D.MediaType0 AS ''MediaType'',
D.PNPDeviceID0 AS ''PNPDeviceId'',
D.Description0 AS ''Caption'',
D.Index0 AS ''Index'',
D.InterfaceType0 AS ''InterfaceType'',
D.Manufacturer0 AS ''Manufacturer'',
D.Model0 AS ''Model'',
D.SCSIBus0 AS ''SCSIBus'',
D.SCSILogicalUnit0 AS ''SCSILogicalUnit'',
D.SCSIPort0 AS ''SCSIPort'',
D.SCSITargetId0 AS ''SCSITargetID'',
D.Size0 AS ''Size''
FROM [LFXSTG].vex_GS_Disk D
INNER JOIN [LFXSTG].vex_R_System S
ON D.ResourceID=S.ResourceID AND D.Lfx_SourceId = S.Lfx_SourceId
INNER JOIN [LFXSTG].vex_GS_COMPUTER_SYSTEM CS
ON S.ResourceID=CS.ResourceID
AND S.Lfx_SourceId = CS.Lfx_SourceId
WHERE S.Netbios_Name0 IS NOT NULL
AND S.Resource_Domain_OR_Workgr0 IS NOT NULL
AND CS.Lfx_Status = ''U''
')
&lt;/Script&gt;&lt;Script&gt;
if not object_id('[LFXSTG].[v_Processor]') is null
drop view [LFXSTG].[v_Processor]
exec ('
CREATE VIEW [LFXSTG].[v_Processor] AS
SELECT P.Lfx_RowId AS Lfx_RowId,
P.Lfx_SourceId,
P.Lfx_Timestamp AS Lfx_Timestamp,
P.Lfx_Status as Lfx_Status,
COALESCE(CS.Name0, S.Netbios_Name0) + ''.'' + COALESCE(CS.Domain0, S.Resource_Domain_OR_Workgr0) AS ''PrincipalName'',
P.Name0 AS ''DisplayName'',
P.DeviceID0 AS ''DeviceID'',
P.Name0 AS ''Name'',
P.Name0 AS ''Description'',
P.Family0 AS ''Family'',
P.MaxClockSpeed0 AS ''MaxClockSpeed'',
P.ProcessorType0 AS ''Type'',
P.BrandID0 AS ''BrandId'',
P.PCache0 AS ''PCache'',
P.CPUKey0 AS ''CPUKey'',
(CASE WHEN ISNULL(P.IsMobile0, 0) = 0 THEN ''False''
ELSE ''True'' END) AS ''IsMobile'',
(CASE WHEN ISNULL(P.IsMultiCore0, 0) = 0 THEN ''False''
ELSE ''True'' END) AS ''IsMulticore'',
P.Manufacturer0 AS ''Manufacturer'',
P.NormSpeed0 AS ''Speed'',
P.DataWidth0 AS ''DataWidth'',
P.Revision0 AS ''Revision'',
P.Version0 AS ''Version''
FROM [LFXSTG].vex_GS_Processor P
INNER JOIN [LFXSTG].vex_R_System S
ON P.ResourceID=S.ResourceID AND P.Lfx_SourceId = S.Lfx_SourceId
INNER JOIN [LFXSTG].vex_GS_COMPUTER_SYSTEM CS
ON S.ResourceID=CS.ResourceID
AND S.Lfx_SourceId = CS.Lfx_SourceId
WHERE S.Netbios_Name0 IS NOT NULL
AND S.Resource_Domain_OR_Workgr0 IS NOT NULL
AND CS.Lfx_Status = ''U''
')
&lt;/Script&gt;&lt;Script&gt;
if not object_id('[LFXSTG].[v_NetworkAdapter]') is null
drop view [LFXSTG].[v_NetworkAdapter]
exec ('
CREATE VIEW [LFXSTG].[v_NetworkAdapter] AS
SELECT N.Lfx_RowId AS Lfx_RowId,
N.Lfx_SourceId,
(case
when isnull(N.Lfx_Timestamp,''1900-01-01'') &gt; isnull(NC.Lfx_Timestamp,''1900-01-01'')
then N.Lfx_Timestamp
else NC.Lfx_Timestamp end) AS Lfx_Timestamp,
N.Lfx_Status as Lfx_Status,
COALESCE(CS.Name0, S.Netbios_Name0) + ''.'' + COALESCE(CS.Domain0, S.Resource_Domain_OR_Workgr0) AS ''PrincipalName'',
N.Name0 AS ''DisplayName'',
N.DeviceID0 AS ''DeviceID'',
N.Name0 AS ''Name'',
N.Description0 AS ''Description'',
ISNULL(N.Speed0, 0) AS ''Bandwidth'',
ISNULL(N.MaxSpeed0, 0) AS ''MaxSpeed'',
N.ProductName0 AS ''ProductName'',
NC.DefaultIPGateway0 AS ''DefaultIPGateway'',
NC.DHCPServer0 AS ''DHCPHostname'',
(CASE WHEN ISNULL(NC.IPEnabled0, 0) = 0 THEN ''False''
ELSE ''True'' END) AS ''IPEnabled'',
N.AdapterType0 AS ''AdapterType'',
NC.Index0 AS ''Index'',
N.Manufacturer0 AS ''Manufacturer'',
N.MACAddress0 AS ''MACAddress'',
N.ServiceName0 AS ''ServiceName'',
NC.DHCPEnabled0 AS ''DHCPEnabled'',
NC.DHCPServer0 AS ''DHCPServer'',
NC.DNSDomain0 AS ''DNSDomain'',
NC.IPAddress0 AS ''IPAddress'',
NC.IPSubnet0 AS ''IPSubnet''
FROM [LFXSTG].vex_GS_NETWORK_ADAPTER N
INNER JOIN [LFXSTG].vex_GS_NETWORK_ADAPTER_CONFIGUR NC
ON N.MACAddress0 = NC.MACAddress0
AND N.ServiceName0 = NC.ServiceName0
AND N.ResourceID = NC.ResourceID
AND N.Lfx_SourceId = NC.Lfx_SourceId
INNER JOIN [LFXSTG].vex_R_System S
ON N.ResourceID=S.ResourceID AND N.Lfx_SourceId = S.Lfx_SourceId
INNER JOIN [LFXSTG].vex_GS_COMPUTER_SYSTEM CS
ON S.ResourceID=CS.ResourceID
AND S.Lfx_SourceId = CS.Lfx_SourceId
WHERE N.MACAddress0 IS NOT NULL
AND N.ServiceName0 != ''RasPppoe'' AND N.ServiceName0 != ''PptpMiniport''
AND NC.IPEnabled0 != 0
AND S.Netbios_Name0 IS NOT NULL
AND S.Resource_Domain_OR_Workgr0 IS NOT NULL
AND CS.Lfx_Status = ''U''
')
&lt;/Script&gt;&lt;Script&gt;
if not object_id('[LFXSTG].[v_DeviceHasSoftwareItemInstalled]') is null
drop view [LFXSTG].[v_DeviceHasSoftwareItemInstalled]
exec ('
CREATE VIEW [LFXSTG].[v_DeviceHasSoftwareItemInstalled] AS
SELECT SW.Lfx_RowId AS Lfx_RowId,
SW.Lfx_SourceId,
SW.Lfx_Timestamp,
SW.Lfx_Status as Lfx_Status,
COALESCE(CS.Name0, S.Netbios_Name0) + ''.'' + COALESCE(CS.Domain0, S.Resource_Domain_OR_Workgr0) AS ''PrincipalName'',
ISNULL(SW.ProductName0, '''') AS ''ProductName'',
ISNULL(SW.ProductVersion0, '''') AS ''VersionString'',
ISNULL(SW.Publisher0, '''') AS ''Publisher'',
ISNULL(SW.Language0, 0) AS ''LocaleID'',
SW.ProductName0 AS ''SoftwareDisplayName'',
SW.InstallDate0 AS ''InstalledDate'',
SW.InstalledLocation0 AS ''InstalledPath'',
SW.ProductID0 AS ''SerialNumber'',
(CASE WHEN SW.InstallType0 = 1 THEN ''True'' ELSE ''False'' END) AS ''IsVirtualApplication'',
SW.SoftwareCode0 AS ''ProductCode''
FROM [LFXSTG].vex_GS_INSTALLED_SOFTWARE SW
INNER JOIN [LFXSTG].vex_R_System S
ON SW.ResourceID=S.ResourceID AND SW.Lfx_SourceId = S.Lfx_SourceId
INNER JOIN [LFXSTG].vex_GS_COMPUTER_SYSTEM CS
ON S.ResourceID=CS.ResourceID
AND S.Lfx_SourceId = CS.Lfx_SourceId
WHERE ((SW.ProductName0 IS NOT NULL)
OR (SW.ProductVersion0 IS NOT NULL)
OR (SW.Publisher0 IS NOT NULL))
AND S.Netbios_Name0 IS NOT NULL
AND S.Resource_Domain_OR_Workgr0 IS NOT NULL
AND CS.Lfx_Status = ''U''
')
&lt;/Script&gt;&lt;Script&gt;
if not object_id('[LFXSTG].[v_DCMConfigItems]') is null
drop view [LFXSTG].[v_DCMConfigItems]
exec ('
CREATE VIEW [LFXSTG].[v_DCMConfigItems] AS
SELECT CI.Lfx_RowId,
CI.Lfx_SourceId,
(CASE WHEN ISNULL(CI.Lfx_Timestamp,''1900-01-01'') &gt; ISNULL(LOC.Lfx_Timestamp,''1900-01-01'')
THEN CI.Lfx_Timestamp
WHEN ISNULL(LOC.Lfx_Timestamp,''1900-01-01'') &gt; ISNULL(CI.Lfx_Timestamp,''1900-01-01'')
THEN LOC.Lfx_Timestamp
ELSE ISNULL(CI.Lfx_Timestamp,''1900-01-01'') END) AS ''Lfx_Timestamp'',
CI.Lfx_Status,
CI.CI_UniqueID AS ''UniqueID'',
COALESCE(LOC.DisplayName, ELOC.DisplayName) AS ''DisplayName'',
COALESCE(LOC.Description, ELOC.Description) AS ''Description'',
CI.SDMPackageDigest,
(CASE WHEN CI.CIType_ID = 2 THEN ''True'' ELSE ''False'' END) AS ''IsBaseline''
FROM [LFXSTG].vex_ConfigurationItems CI
INNER JOIN LFXSTG.vex_LocalizedCIProperties ELOC
ON CI.CI_ID = ELOC.CI_ID
AND ((ELOC.Lfx_Status = ''U'' AND ELOC.LocaleID &amp; 0x00FF = 0x0009)
OR (ELOC.Lfx_Status = ''D'')
)
AND CI.Lfx_SourceId = ELOC.Lfx_SourceId
LEFT JOIN [LFXSTG].vex_LocalizedCIProperties LOC
ON CI.CI_ID = LOC.CI_ID
AND LOC.LocaleID = $SMLOC
AND LOC.Lfx_Status = ''U''
AND CI.Lfx_SourceId = LOC.Lfx_SourceId
WHERE CI.CIType_ID in (2, 3, 4, 5)
')
&lt;/Script&gt;&lt;Script&gt;
if not object_id('[LFXSTG].[v_DCMConfigItemRelations]') is null
drop view [LFXSTG].[v_DCMConfigItemRelations]
exec ('
CREATE VIEW [LFXSTG].[v_DCMConfigItemRelations] AS
SELECT CIR.Lfx_RowId,
CIR.Lfx_SourceId,
CIR.Lfx_Timestamp,
CIR.Lfx_Status,
SRC.CI_UniqueID AS ''FromCI_UniqueID'',
TAR.CI_UniqueID AS ''ToCI_UniqueID'',
CIR.RelationType AS ''RelType''
FROM [LFXSTG].vex_ConfigurationItemRelations CIR
INNER JOIN [LFXSTG].vex_ConfigurationItems SRC
ON CIR.FromCI_ID = SRC.CI_ID AND CIR.Lfx_SourceId = SRC.Lfx_SourceId
INNER JOIN [LFXSTG].vex_ConfigurationItems TAR
ON CIR.ToCI_ID = TAR.CI_ID AND CIR.Lfx_SourceId = TAR.Lfx_SourceId
WHERE SRC.Lfx_Status = ''U''
AND SRC.CIType_ID in (2, 3, 4, 5)
AND TAR.CIType_ID in (2, 3, 4, 5)
AND TAR.Lfx_Status = ''U''
')
&lt;/Script&gt;&lt;Script&gt;
if not object_id('[LFXSTG].[v_DCMNonCompliantConfigItems]') is null
drop view [LFXSTG].[v_DCMNonCompliantConfigItems]
exec ('
CREATE VIEW [LFXSTG].[v_DCMNonCompliantConfigItems] AS
SELECT BNC.Lfx_RowId,
BNC.Lfx_SourceId,
BNC.Lfx_Timestamp,
''U'' AS Lfx_Status,
COALESCE(CS.Name0, S.Netbios_Name0) + ''.'' + COALESCE(CS.Domain0, S.Resource_Domain_OR_Workgr0) AS ''PrincipalName'',
BCI.CI_UniqueID AS ''Baseline_UniqueID'',
CI.CI_UniqueID AS ''CI_UniqueID'',
CS.Name0 AS ''ComputerName'',
BNC.MaxNoncomplianceCriticality AS ''MaxNonComplianceCriticality'',
CNC.ComplianceStatusDetails,
CNC.LastComplianceScanTime
FROM [LFXSTG].vex_CICurrentComplianceStatus BNC
INNER JOIN [LFXSTG].vex_ConfigurationItems BCI
ON BNC.CI_ID = BCI.CI_ID AND BNC.Lfx_SourceId = BCI.Lfx_SourceId
INNER JOIN [LFXSTG].vex_ConfigurationItemRelations REL
ON BCI.CI_ID = REL.FromCI_ID
AND REL.RelationDepth = 1 -- pick first child ci
AND BCI.Lfx_SourceId = REL.Lfx_SourceId
INNER JOIN [LFXSTG].vex_ConfigurationItems CI
ON CI.CI_ID = REL.ToCI_ID AND CI.Lfx_SourceId = REL.Lfx_SourceId
INNER JOIN [LFXSTG].vex_CICurrentComplianceStatus CNC
ON CI.CI_ID = CNC.CI_ID
AND CNC.ResourceID = BNC.ResourceID
AND CNC.Lfx_SourceId = BNC.Lfx_SourceId
INNER JOIN [LFXSTG].vex_R_System S
ON BNC.ResourceID=S.ResourceID AND BNC.Lfx_SourceId = S.Lfx_SourceId
INNER JOIN [LFXSTG].vex_GS_COMPUTER_SYSTEM CS
ON S.ResourceID=CS.ResourceID
AND S.Lfx_SourceId = CS.Lfx_SourceId
WHERE BCI.CIType_ID = 2 and BNC.ComplianceState = 2 --non compliant baselines
AND CI.CIType_ID IN (3, 4, 5) AND
( (REL.RelationType=2 AND (CNC.ComplianceState = 2 OR CNC.IsDetected=0))
OR (REL.RelationType=4 AND (CNC.IsDetected=1 AND CNC.ComplianceState=2))
OR (REL.RelationType=3 AND CNC.IsDetected=1)
OR (REL.RelationType=1 AND (CNC.ComplianceState=2 OR CNC.IsDetected=0))
)
AND S.Netbios_Name0 IS NOT NULL
AND S.Resource_Domain_OR_Workgr0 IS NOT NULL
AND CS.Lfx_Status = ''U''
')
&lt;/Script&gt;&lt;Script&gt;
if not object_id('[LFXSTG].[v_DeviceHasSoftwareUpdate]') is null
drop view [LFXSTG].[v_DeviceHasSoftwareUpdate]
exec ('
CREATE VIEW [LFXSTG].[v_DeviceHasSoftwareUpdate] AS
SELECT UCS.Lfx_RowId,
UCS.Lfx_SourceId,
UCS.Lfx_Timestamp,
''U'' AS Lfx_Status,
COALESCE(CS.Name0, S.Netbios_Name0) + ''.'' + COALESCE(CS.Domain0, S.Resource_Domain_OR_Workgr0) AS ''PrincipalName'',
COALESCE(COALESCE(LOC.DisplayName, ELOC.DisplayName),'''') AS Title,
COALESCE(COALESCE(LOC1.CategoryInstanceName, ELOC1.CategoryInstanceName),'''') AS Vendor,
(CASE WHEN ELOC2.CategoryInstanceName = ''Applications'' THEN ''Classification.Applications''
WHEN ELOC2.CategoryInstanceName = ''Critical Updates'' THEN ''Classification.CriticalUpdates''
WHEN ELOC2.CategoryInstanceName = ''Definition Updates'' THEN ''Classification.DefinitionUpdates''
WHEN ELOC2.CategoryInstanceName = ''Drivers'' THEN ''Classification.Drivers''
WHEN ELOC2.CategoryInstanceName = ''Feature Packs'' THEN ''Classification.FeaturePacks''
WHEN ELOC2.CategoryInstanceName = ''Security Updates'' THEN ''Classification.SecurityUpdates''
WHEN ELOC2.CategoryInstanceName = ''Service Packs'' THEN ''Classification.ServicePacks''
WHEN ELOC2.CategoryInstanceName = ''Tools'' THEN ''Classification.Tools''
WHEN ELOC2.CategoryInstanceName = ''Update Rollups'' THEN ''Classification.UpdateRollups''
WHEN ELOC2.CategoryInstanceName = ''Updates'' THEN ''Classification.Updates''
WHEN ELOC2.CategoryInstanceName = ''WSUS Infrastructure Updates'' THEN ''Classification.WSUSInfrastructureUpdates''
ELSE ''Classification.Updates'' END) AS Classification,
UCI.BulletinID AS BulletinID,
UCI.ArticleID AS ArticleID,
(CASE WHEN UCS.Status=3 THEN ''InstallStatus.Installed''
WHEN UCS.Status =2 THEN ''InstallStatus.Missing''
ELSE ''InstallStatus.Unknown'' END) AS InstallStatus,
COALESCE(LOC.CIInformativeURL, ELOC.CIInformativeURL) AS SupportString
FROM [LFXSTG].vex_UpdateComplianceStatus UCS WITH(INDEX(IX_RowId_Timestamp_Status))
INNER JOIN [LFXSTG].vex_ConfigurationItems ci
ON UCS.CI_ID = ci.CI_ID AND UCS.Lfx_SourceId = ci.Lfx_SourceId
INNER JOIN [LFXSTG].vex_UpdateCIs UCI
ON UCI.CI_ID=ci.CI_ID AND UCI.Lfx_SourceId = ci.Lfx_SourceId
INNER JOIN [LFXSTG].vex_LocalizedCIProperties ELOC
ON ELOC.CI_ID=ci.CI_ID AND ELOC.Lfx_SourceId = ci.Lfx_SourceId
LEFT JOIN [LFXSTG].vex_LocalizedCIProperties LOC
ON LOC.CI_ID=ci.CI_ID AND LOC.Lfx_SourceId = ci.Lfx_SourceId
AND LOC.LocaleID=$SMLOC
AND LOC.Lfx_Status=''U''

INNER JOIN [LFXSTG].vex_CICategories_All cicatall1
ON cicatall1.CI_ID=ci.CI_ID AND cicatall1.Lfx_SourceId = ci.Lfx_SourceId
INNER JOIN [LFXSTG].vex_CategoryInstances cinst1
on cicatall1.CategoryInstanceID=cinst1.CategoryInstanceID
AND cinst1.CategoryTypeName=''Company''
AND cinst1.Lfx_SourceId = cicatall1.Lfx_SourceId
LEFT JOIN [LFXSTG].vex_LocalizedCategoryInstances LOC1
ON cinst1.CategoryInstanceID = LOC1.CategoryInstanceID
AND LOC1.LocaleID=$SMLOC
AND LOC1.Lfx_Status=''U''
AND cinst1.Lfx_SourceId = LOC1.Lfx_SourceId
INNER JOIN [LFXSTG].vex_LocalizedCategoryInstances ELOC1
ON cinst1.CategoryInstanceID = ELOC1.CategoryInstanceID
AND cinst1.Lfx_SourceId = ELOC1.Lfx_SourceId

INNER JOIN
(SELECT cicatall2.CI_ID,
MIN(cinst2.CategoryInstanceID) AS CategoryInstanceID,
cicatall2.Lfx_SourceId
FROM [LFXSTG].vex_CICategories_All cicatall2
INNER JOIN [LFXSTG].vex_CategoryInstances cinst2
ON cicatall2.CategoryInstanceID=cinst2.CategoryInstanceID
AND cicatall2.Lfx_SourceId = cinst2.Lfx_SourceId
WHERE cicatall2.Lfx_Status = ''U''
AND cinst2.CategoryTypeName=''UpdateClassification''
AND cinst2.Lfx_Status = ''U''
GROUP BY cicatall2.CI_ID, cicatall2.Lfx_SourceId
) X
ON X.CI_ID = ci.CI_ID AND X.Lfx_SourceId = ci.Lfx_SourceId

INNER JOIN [LFXSTG].vex_LocalizedCategoryInstances ELOC2
ON ELOC2.CategoryInstanceID=X.CategoryInstanceID
AND ELOC2.Lfx_SourceId = X.Lfx_SourceId

INNER JOIN [LFXSTG].vex_R_System S
ON UCS.ResourceID=S.ResourceID AND UCS.Lfx_SourceId = S.Lfx_SourceId

INNER JOIN [LFXSTG].vex_GS_COMPUTER_SYSTEM CS
ON S.ResourceID=CS.ResourceID
AND S.Lfx_SourceId = CS.Lfx_SourceId

WHERE UCS.Lfx_Status=''U'' AND ci.Lfx_Status=''U'' AND UCI.Lfx_Status=''U''
AND ELOC.Lfx_Status = ''U'' AND ELOC.LocaleID &amp; 0x00FF = 0x0009
AND ELOC1.Lfx_Status = ''U'' AND ELOC1.LocaleID &amp; 0x00FF = 0x0009
AND ELOC2.Lfx_Status = ''U'' AND ELOC2.LocaleID &amp; 0x00FF = 0x0009
AND cicatall1.Lfx_Status = ''U'' AND cinst1.Lfx_Status = ''U''
AND ci.CIType_ID IN (1, 8)
--AND ci.IsHidden = 0
AND ((UCS.Status=2) or (UCS.Status=3))
AND S.Netbios_Name0 IS NOT NULL
AND S.Resource_Domain_OR_Workgr0 IS NOT NULL
AND CS.Lfx_Status = ''U''
')
&lt;/Script&gt;&lt;Script&gt;
if not object_id('[LFXSTG].[fn_CheckTopConsoleUser]') is null
drop function [LFXSTG].[fn_CheckTopConsoleUser]
exec ('
CREATE FUNCTION [LFXSTG].[fn_CheckTopConsoleUser](
@sourceID AS INT,
@resourceID AS INT
)
RETURNS @ConsoleUsers TABLE
(
UserName0 nvarchar(64)
)
AS
BEGIN
DECLARE @totalConsoleTime INT

SELECT @totalConsoleTime = U.TotalConsoleTime0
FROM LFXSTG.vex_GS_SYSTEM_CONSOLE_USAGE U INNER JOIN
(SELECT MAX(U1.GroupKey) AS MaxKey, U1.ResourceID, U1.Lfx_SourceID
FROM LFXSTG.vex_GS_SYSTEM_CONSOLE_USAGE U1
WHERE U1.ResourceID = @resourceID
AND U1.Lfx_SourceId = @sourceID
AND U1.Lfx_Status = ''U''
GROUP BY U1.ResourceID, U1.Lfx_SourceId) AS Latest_Usage_Data
ON U.ResourceID = Latest_Usage_Data.ResourceID
AND U.GroupKey = Latest_Usage_Data.MaxKey
WHERE U.ResourceID = @resourceID AND U.Lfx_SourceId = @sourceID

IF (@totalConsoleTime IS NOT NULL) AND (@totalConsoleTime &gt; 0)
BEGIN
INSERT @ConsoleUsers(UserName0)
(
SELECT SystemConsoleUser0
FROM LFXSTG.vex_GS_SYSTEM_CONSOLE_USER
WHERE ResourceID = @resourceID AND Lfx_SourceId = @sourceID
AND Lfx_Status = ''U''
AND SystemConsoleUser0 IS NOT NULL
AND
(cast(TotalUserConsoleMinutes0 as Decimal (20,4)))/(cast(@totalConsoleTime as Decimal(20,4))) &gt;= .66
)
END
RETURN
END
')
&lt;/Script&gt;&lt;Script&gt;
if not object_id('[LFXSTG].[v_TopConsoleUser]') is null
drop view [LFXSTG].[v_TopConsoleUser]
exec ('
CREATE VIEW [LFXSTG].[v_TopConsoleUser] AS
SELECT U.Lfx_RowId,
U.Lfx_SourceId,
U.Lfx_Timestamp,
U.Lfx_Status,
COALESCE(CS.Name0, S.Netbios_Name0) + ''.'' + COALESCE(CS.Domain0, S.Resource_Domain_OR_Workgr0) AS ''PrincipalName'',
(CASE WHEN CHARINDEX(''\'', UX.UserName0, 0) &gt; 0
THEN SUBSTRING(UX.UserName0, 0, CHARINDEX(''\'', UX.UserName0, 0))
ELSE '''' END) AS ''Domain'',
(CASE WHEN CHARINDEX(''\'', UX.UserName0, 0) &gt; 0
THEN SUBSTRING(UX.UserName0, CHARINDEX(''\'', UX.UserName0)+1, LEN(U.TopConsoleUser0))
ELSE UX.UserName0 END) AS ''UserName''
FROM [LFXSTG].vex_GS_SYSTEM_CONSOLE_USAGE U
CROSS APPLY [LFXSTG].fn_CheckTopConsoleUser(U.Lfx_SourceId, U.ResourceID) AS UX
INNER JOIN [LFXSTG].vex_R_System S
ON U.ResourceID=S.ResourceID AND U.Lfx_SourceId = S.Lfx_SourceId
INNER JOIN [LFXSTG].vex_GS_COMPUTER_SYSTEM CS
ON S.ResourceID=CS.ResourceID
AND S.Lfx_SourceId = CS.Lfx_SourceId
WHERE U.TopConsoleUser0 IS NOT NULL
AND U.Lfx_Status = ''U''
AND UX.UserName0 IS NOT NULL
AND S.Netbios_Name0 IS NOT NULL
AND S.Resource_Domain_OR_Workgr0 IS NOT NULL
AND CS.Lfx_Status = ''U''
')
&lt;/Script&gt;</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataConnector']/UninstallSQLScripts$">&lt;Script&gt;
if not object_id('[LFXSTG].[v_PhysicalComputer]') is null
drop view [LFXSTG].[v_PhysicalComputer];
&lt;/Script&gt;&lt;Script&gt;
if not object_id('[LFXSTG].[v_LogicalComputer]') is null
drop view [LFXSTG].[v_LogicalComputer];
&lt;/Script&gt;&lt;Script&gt;
if not object_id('[LFXSTG].[v_LogicalComputerOnPhysicalComputer]') is null
drop view [LFXSTG].[v_LogicalComputerOnPhysicalComputer];
&lt;/Script&gt;&lt;Script&gt;
if not object_id('[LFXSTG].[v_OperatingSystem]') is null
drop view [LFXSTG].[v_OperatingSystem];
&lt;/Script&gt;&lt;Script&gt;
if not object_id('[LFXSTG].[v_LogicalDisk]') is null
drop view [LFXSTG].[v_LogicalDisk];
&lt;/Script&gt;&lt;Script&gt;
if not object_id('[LFXSTG].[v_PhysicalDisk]') is null
drop view [LFXSTG].[v_PhysicalDisk];
&lt;/Script&gt;&lt;Script&gt;
if not object_id('[LFXSTG].[v_Processor]') is null
drop view [LFXSTG].[v_Processor];
&lt;/Script&gt;&lt;Script&gt;
if not object_id('[LFXSTG].[v_NetworkAdapter]') is null
drop view [LFXSTG].[v_NetworkAdapter];
&lt;/Script&gt;&lt;Script&gt;
if exists (select * from dbo.sysobjects where id = object_id(N'[LFXSTG].[vex_GS_SYSTEM_ENCLOSURE]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
Drop table [LFXSTG].[vex_GS_SYSTEM_ENCLOSURE];
&lt;/Script&gt;&lt;Script&gt;
if exists (select * from dbo.sysobjects where id = object_id(N'[LFXSTG].[vex_GS_COMPUTER_SYSTEM]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
Drop table [LFXSTG].[vex_GS_COMPUTER_SYSTEM];
&lt;/Script&gt;&lt;Script&gt;
if exists (select * from dbo.sysobjects where id = object_id(N'[LFXSTG].[vex_R_System]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
Drop table [LFXSTG].[vex_R_System];
&lt;/Script&gt;</Property>
<Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsTables' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataTable']$">
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DataName$">Collections</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkField$">C.Lfx_Timestamp</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkType$">0</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdField$">C.Lfx_RowId</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdType$">0</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdSize$">500</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/UseCache$">false</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/QueryString$">
select C.* from [LFXSTG].vex_Collection C
</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/CollectionName$">Collections</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DependOnDataTable$">SCCM_Ext.vex_Collection</Property>
</Object>
<Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsTables' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataTable']$">
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DataName$">Packages</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkField$">P.Lfx_Timestamp</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkType$">0</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdField$">P.Lfx_RowId</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdType$">0</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdSize$">500</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/UseCache$">false</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/QueryString$">
select P.*, P.Name AS DisplayName from [LFXSTG].vex_Package P
</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/CollectionName$">Packages</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DependOnDataTable$">SCCM_Ext.vex_Package,Collections</Property>
</Object>
<Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsTables' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataTable']$">
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DataName$">Programs</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkField$">P.Lfx_Timestamp</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkType$">0</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdField$">P.Lfx_RowId</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdType$">0</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdSize$">500</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/UseCache$">false</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/QueryString$">
select P.Lfx_RowId,
P.Lfx_SourceId,
P.Lfx_Status,
P.Lfx_Timestamp,
P.PackageID + '_' + P.Name AS ProgramId,
P.PackageID,
P.Name AS ProgramName,
P.Name AS DisplayName,
P.Comment,
P.Command,
P.Description AS ProgramDescription,
P.MSIFilePath,
P.SourceSite AS SourceSiteCode
from [LFXSTG].vex_Program P
</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/CollectionName$">ProgramsCollection</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DependOnDataTable$">Packages,SCCM_Ext.vex_Program</Property>
</Object>
<Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsTables' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataTable']$">
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DataName$">PhysicalComputer</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkField$">E.Lfx_Timestamp</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkType$">0</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdField$">E.Lfx_RowId</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdType$">0</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdSize$">500</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/UseCache$">false</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/QueryString$">
SELECT E.Lfx_RowId,
E.Lfx_SourceId,
E.Lfx_Status,
E.DisplayName,
E.Model,
E.NumberOfProcessors,
E.SystemType,
E.HardwareId,
E.SMBIOS_UUID,
E.SMBIOSAssetTag,
E.Manufacturer,
E.ChassisType,
E.SerialNumber
FROM [LFXSTG].v_PhysicalComputer E
</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/CollectionName$">PhysicalComputers</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DependOnDataTable$">SCCM_Ext.vex_GS_SYSTEM_ENCLOSURE,SCCM_Ext.vex_GS_COMPUTER_SYSTEM,SCCM_Ext.vex_R_System,SCCM_Ext.vex_CICurrentComplianceStatus,SCCM_Ext.vex_LocalizedCIProperties,SCCM_Ext.vex_ConfigurationItems,SCCM_Ext.vex_ConfigurationItemRelations,Packages</Property>
</Object>
<Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsTables' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataTable']$">
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DataName$">LogicalComputer</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkField$">E.Lfx_Timestamp</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkType$">0</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdField$">E.Lfx_RowId</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdType$">0</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdSize$">500</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/UseCache$">false</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/QueryString$">
SELECT E.Lfx_RowId,
E.Lfx_SourceID,
E.Lfx_Status,
E.DisplayName,
E.PrincipalName,
E.NetbiosComputerName,
E.NetbiosDomainName,
E.OffsetInMinuteFromGreenwichTime,
E.IsVirtualMachine,
E.LastInventoryDate,
E.ActiveDirectorySite
from [LFXSTG].v_LogicalComputer E
</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/CollectionName$">LogicalComputers</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DependOnDataTable$">PhysicalComputer</Property>
</Object>
<Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsTables' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataTable']$">
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DataName$">LogicalComputerOnPhysicalComputer</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkField$">E.Lfx_Timestamp</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkType$">0</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdField$">E.Lfx_RowId</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdType$">0</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdSize$">500</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/UseCache$">false</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/QueryString$">
SELECT E.Lfx_RowId,
E.Lfx_SourceId,
E.Lfx_Status as Lfx_Status,
E.PrincipalName,
E.HardwareId,
E.SMBIOSAssetTag
FROM [LFXSTG].v_LogicalComputerOnPhysicalComputer E
</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/CollectionName$">LogicalComputersOnPhysicalComputers</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DependOnDataTable$">PhysicalComputer,LogicalComputer</Property>
</Object>
<Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsTables' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataTable']$">
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DataName$">OperatingSystem</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkField$">E.Lfx_Timestamp</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkType$">0</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdField$">E.Lfx_RowId</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdType$">0</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdSize$">500</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/UseCache$">false</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/QueryString$">
select E.* from [LFXSTG].v_OperatingSystem E
</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/CollectionName$">OperatingSystem</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DependOnDataTable$">LogicalComputer,SCCM_Ext.vex_GS_OPERATING_SYSTEM,LogicalComputerOnPhysicalComputer</Property>
</Object>
<Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsTables' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataTable']$">
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DataName$">PhysicalDisk</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkField$">E.Lfx_Timestamp</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkType$">0</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdField$">E.Lfx_RowId</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdType$">0</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdSize$">500</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/UseCache$">false</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/QueryString$">
select E.* from [LFXSTG].v_PhysicalDisk E
</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/CollectionName$">PhysicalDisk</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DependOnDataTable$">LogicalComputer,SCCM_Ext.vex_GS_DISK,OperatingSystem</Property>
</Object>
<Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsTables' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataTable']$">
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DataName$">LogicalDisk</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkField$">E.Lfx_Timestamp</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkType$">0</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdField$">E.Lfx_RowId</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdType$">0</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdSize$">500</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/UseCache$">false</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/QueryString$">
select E.* from [LFXSTG].v_LogicalDisk E
</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/CollectionName$">LogicalDisk</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DependOnDataTable$">LogicalComputer,SCCM_Ext.vex_GS_LOGICAL_DISK,PhysicalDisk</Property>
</Object>
<Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsTables' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataTable']$">
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DataName$">Processor</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkField$">E.Lfx_Timestamp</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkType$">0</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdField$">E.Lfx_RowId</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdType$">0</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdSize$">500</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/UseCache$">false</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/QueryString$">
select E.* from [LFXSTG].v_Processor E
</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/CollectionName$">Processor</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DependOnDataTable$">LogicalComputer,SCCM_Ext.vex_GS_PROCESSOR,LogicalDisk</Property>
</Object>
<Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsTables' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataTable']$">
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DataName$">NetworkAdapter</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkField$">E.Lfx_Timestamp</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkType$">0</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdField$">E.Lfx_RowId</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdType$">0</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdSize$">500</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/UseCache$">false</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/QueryString$">
select E.* from [LFXSTG].v_NetworkAdapter E
</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/CollectionName$">NetworkAdapter</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DependOnDataTable$">LogicalComputer,SCCM_Ext.vex_GS_NETWORK_ADAPTER,SCCM_Ext.vex_GS_NETWORK_ADAPTER_CONFIGUR,Processor</Property>
</Object>
<Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsTables' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataTable']$">
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DataName$">DeviceHasSoftwareItemInstalled</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkField$">SW.Lfx_Timestamp</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkType$">0</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdField$">SW.Lfx_RowId</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdType$">0</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdSize$">500</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/UseCache$">false</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/QueryString$">
SELECT SW.Lfx_RowId,
SW.Lfx_SourceId,
SW.Lfx_Status as Lfx_Status,
SW.PrincipalName,
SW.ProductName,
SW.VersionString,
SW.Publisher,
SW.LocaleID,
SW.SoftwareDisplayName,
SW.InstalledDate,
SW.InstalledPath,
SW.SerialNumber,
SW.IsVirtualApplication,
SW.ProductCode
FROM [LFXSTG].v_DeviceHasSoftwareItemInstalled SW
</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/CollectionName$">DeviceHasSoftwareItemInstalled</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DependOnDataTable$">LogicalComputer,SCCM_Ext.vex_GS_INSTALLED_SOFTWARE,NetworkAdapter</Property>
</Object>
<Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsTables' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataTable']$">
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DataName$">DeviceHasSoftwareUpdate</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkField$">SU.Lfx_Timestamp</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkType$">0</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdField$">SU.Lfx_RowId</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdType$">0</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdSize$">500</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/UseCache$">false</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/QueryString$">
SELECT SU.Lfx_RowId,
SU.Lfx_SourceId,
'U' AS Lfx_Status,
SU.PrincipalName,
SU.Title,
SU.Vendor,
SU.Classification,
SU.BulletinID,
SU.ArticleID,
SU.InstallStatus,
SU.SupportString
FROM [LFXSTG].v_DeviceHasSoftwareUpdate SU
</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/CollectionName$">DeviceHasSoftwareUpdate</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DependOnDataTable$">LogicalComputer,SCCM_Ext.vex_UpdateComplianceStatus,DeviceHasSoftwareItemInstalled</Property>
</Object>
<Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsTables' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataTable']$">
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DataName$">TopConsoleUser</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkField$">U.Lfx_Timestamp</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkType$">0</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdField$">U.Lfx_RowId</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdType$">0</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdSize$">500</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/UseCache$">false</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/QueryString$">
select U.* from [LFXSTG].v_TopConsoleUser U
</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/CollectionName$">TopConsoleUser</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DependOnDataTable$">LogicalComputer,SCCM_Ext.vex_GS_SYSTEM_CONSOLE_USER,SCCM_Ext.vex_GS_SYSTEM_CONSOLE_USAGE,DeviceHasSoftwareUpdate</Property>
</Object>
<Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsTables' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataTable']$">
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DataName$">DCMConfigItems</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkField$">DC.Lfx_Timestamp</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkType$">0</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdField$">DC.Lfx_RowId</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdType$">0</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdSize$">500</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/UseCache$">false</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/QueryString$">
select DC.* from [LFXSTG].v_DCMConfigItems DC
</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/CollectionName$">DCMConfigItems</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DependOnDataTable$">SCCM_Ext.vex_ConfigurationItems,SCCM_Ext.vex_LocalizedCIProperties,TopConsoleUser</Property>
</Object>
<Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsTables' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataTable']$">
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DataName$">DCMConfigItemRelations</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkField$">DCR.Lfx_Timestamp</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkType$">0</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdField$">DCR.Lfx_RowId</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdType$">0</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdSize$">500</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/UseCache$">false</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/QueryString$">
select DCR.* from [LFXSTG].v_DCMConfigItemRelations DCR
</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/CollectionName$">DCMConfigItemRelations</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DependOnDataTable$">SCCM_Ext.vex_ConfigurationItemRelations,DCMConfigItems</Property>
</Object>
<Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsTables' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataTable']$">
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DataName$">DCMNonCompliantConfigItems</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkField$">DC.Lfx_Timestamp</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/WatermarkType$">0</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdField$">DC.Lfx_RowId</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdType$">0</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/BatchIdSize$">10</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/UseCache$">false</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/QueryString$">
SELECT DC.Lfx_RowId,
DC.Lfx_SourceId,
'U' AS Lfx_Status,
DC.PrincipalName,
DC.Baseline_UniqueID,
DC.CI_UniqueID,
DC.ComputerName,
DC.MaxNonComplianceCriticality,
DC.ComplianceStatusDetails,
DC.LastComplianceScanTime
FROM [LFXSTG].v_DCMNonCompliantConfigItems DC
</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/CollectionName$">DCMNonCompliantConfigItems</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataTable']/DependOnDataTable$">DCMConfigItems,SCCM_Ext.vex_CICurrentComplianceStatus,DCMConfigItemRelations</Property>
</Object>
<Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsCollections' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataCollection']$">
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataCollectionName$">Collections</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataTables$">Collections</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/Settings$">&lt;TypeName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;Microsoft.SystemCenter.ConfigurationManager.CollectionInfo&lt;/TypeName&gt;&lt;MPName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;Microsoft.SystemCenter.ConfigurationManager&lt;/MPName&gt;&lt;MPVersion xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;7.5.3079.0&lt;/MPVersion&gt;&lt;MPToken xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;31bf3856ad364e35&lt;/MPToken&gt;</Property>
</Object>
<Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsCollections' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataCollection']$">
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataCollectionName$">Packages</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataTables$">Packages</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/Settings$">&lt;TypeName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;Microsoft.SystemCenter.ConfigurationManager.Package&lt;/TypeName&gt;&lt;MPName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;Microsoft.SystemCenter.ConfigurationManager&lt;/MPName&gt;&lt;MPVersion xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;7.5.3079.0&lt;/MPVersion&gt;&lt;MPToken xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;31bf3856ad364e35&lt;/MPToken&gt;</Property>
</Object>
<Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsCollections' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataCollection']$">
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataCollectionName$">ProgramsCollection</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataTables$">Programs</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/Settings$">&lt;TypeName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;Microsoft.SystemCenter.ConfigurationManager.Program&lt;/TypeName&gt;&lt;MPName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;Microsoft.SystemCenter.ConfigurationManager&lt;/MPName&gt;&lt;MPVersion xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;7.5.3079.0&lt;/MPVersion&gt;&lt;MPToken xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;31bf3856ad364e35&lt;/MPToken&gt;</Property>
</Object>
<Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsCollections' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataCollection']$">
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataCollectionName$">PhysicalComputers</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataTables$">PhysicalComputer</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/Settings$">&lt;TypeName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;Microsoft.SystemCenter.ConfigurationManager.DeployedComputer&lt;/TypeName&gt;&lt;MPName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;Microsoft.SystemCenter.ConfigurationManager&lt;/MPName&gt;&lt;MPVersion xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;7.5.3079.0&lt;/MPVersion&gt;&lt;MPToken xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;31bf3856ad364e35&lt;/MPToken&gt;</Property>
</Object>
<Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsCollections' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataCollection']$">
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataCollectionName$">LogicalComputers</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataTables$">LogicalComputer</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/Settings$">&lt;TypeName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;Microsoft.Windows.Computer&lt;/TypeName&gt;&lt;MPName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;Microsoft.Windows.Library&lt;/MPName&gt;&lt;MPVersion xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;7.5.8501.0&lt;/MPVersion&gt;&lt;MPToken xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;31bf3856ad364e35&lt;/MPToken&gt;</Property>
</Object>
<Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsCollections' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataCollection']$">
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataCollectionName$">LogicalComputersOnPhysicalComputers</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataTables$">LogicalComputerOnPhysicalComputer</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/Settings$">&lt;RelationshipName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;Microsoft.SystemCenter.ConfigurationManager.DeployedComputerRunsWindowsComputer&lt;/RelationshipName&gt;&lt;MPName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;Microsoft.SystemCenter.ConfigurationManager&lt;/MPName&gt;&lt;MPVersion xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;7.5.3079.0&lt;/MPVersion&gt;&lt;MPToken xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;31bf3856ad364e35&lt;/MPToken&gt;&lt;OmitSource xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;true&lt;/OmitSource&gt;&lt;OmitTarget xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;true&lt;/OmitTarget&gt;</Property>
</Object>
<Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsCollections' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataCollection']$">
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataCollectionName$">OperatingSystem</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataTables$">OperatingSystem</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/Settings$">&lt;TypeName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;Microsoft.Windows.OperatingSystem&lt;/TypeName&gt;&lt;MPName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;Microsoft.Windows.Library&lt;/MPName&gt;&lt;MPVersion xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;7.5.8501.0&lt;/MPVersion&gt;&lt;MPToken xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;31bf3856ad364e35&lt;/MPToken&gt;</Property>
</Object>
<Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsCollections' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataCollection']$">
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataCollectionName$">LogicalDisk</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataTables$">LogicalDisk</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/Settings$">&lt;TypeName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;Microsoft.Windows.Peripheral.LogicalDisk&lt;/TypeName&gt;&lt;MPName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;Microsoft.Windows.Peripheral.Library&lt;/MPName&gt;&lt;MPVersion xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;7.5.3079.0&lt;/MPVersion&gt;&lt;MPToken xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;31bf3856ad364e35&lt;/MPToken&gt;</Property>
</Object>
<Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsCollections' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataCollection']$">
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataCollectionName$">PhysicalDisk</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataTables$">PhysicalDisk</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/Settings$">&lt;TypeName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;Microsoft.Windows.Peripheral.PhysicalDisk&lt;/TypeName&gt;&lt;MPName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;Microsoft.Windows.Peripheral.Library&lt;/MPName&gt;&lt;MPVersion xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;7.5.3079.0&lt;/MPVersion&gt;&lt;MPToken xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;31bf3856ad364e35&lt;/MPToken&gt;</Property>
</Object>
<Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsCollections' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataCollection']$">
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataCollectionName$">Processor</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataTables$">Processor</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/Settings$">&lt;TypeName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;Microsoft.Windows.Peripheral.Processor&lt;/TypeName&gt;&lt;MPName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;Microsoft.Windows.Peripheral.Library&lt;/MPName&gt;&lt;MPVersion xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;7.5.3079.0&lt;/MPVersion&gt;&lt;MPToken xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;31bf3856ad364e35&lt;/MPToken&gt;</Property>
</Object>
<Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsCollections' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataCollection']$">
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataCollectionName$">NetworkAdapter</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataTables$">NetworkAdapter</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/Settings$">&lt;TypeName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;Microsoft.Windows.Peripheral.NetworkAdapter&lt;/TypeName&gt;&lt;MPName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;Microsoft.Windows.Peripheral.Library&lt;/MPName&gt;&lt;MPVersion xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;7.5.3079.0&lt;/MPVersion&gt;&lt;MPToken xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;31bf3856ad364e35&lt;/MPToken&gt;</Property>
</Object>
<Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsCollections' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataCollection']$">
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataCollectionName$">DeviceHasSoftwareItemInstalled</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataTables$">DeviceHasSoftwareItemInstalled</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/Settings$">&lt;RelationshipName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;System.DeviceHasSoftwareItemInstalled&lt;/RelationshipName&gt;&lt;MPName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;System.Software.Library&lt;/MPName&gt;&lt;MPVersion xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;7.5.3079.0&lt;/MPVersion&gt;&lt;MPToken xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;31bf3856ad364e35&lt;/MPToken&gt;&lt;SourceType xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;Microsoft.Windows.Computer&lt;/SourceType&gt;&lt;SourceMPName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;Microsoft.Windows.Library&lt;/SourceMPName&gt;&lt;SourceMPVersion xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;7.5.8501.0&lt;/SourceMPVersion&gt;&lt;SourceMPToken xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;31bf3856ad364e35&lt;/SourceMPToken&gt;&lt;TargetPropertyName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;SoftwareDisplayName:DisplayName&lt;/TargetPropertyName&gt;&lt;OmitSource xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;true&lt;/OmitSource&gt;</Property>
</Object>
<Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsCollections' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataCollection']$">
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataCollectionName$">DeviceHasSoftwareUpdate</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataTables$">DeviceHasSoftwareUpdate</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/Settings$">&lt;RelationshipName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;System.DeviceHasSoftwareUpdateInstalled&lt;/RelationshipName&gt;&lt;MPName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;System.Software.Library&lt;/MPName&gt;&lt;MPVersion xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;7.5.3079.0&lt;/MPVersion&gt;&lt;MPToken xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;31bf3856ad364e35&lt;/MPToken&gt;&lt;SourceType xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;Microsoft.Windows.Computer&lt;/SourceType&gt;&lt;SourceMPName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;Microsoft.Windows.Library&lt;/SourceMPName&gt;&lt;SourceMPVersion xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;7.5.8501.0&lt;/SourceMPVersion&gt;&lt;SourceMPToken xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;31bf3856ad364e35&lt;/SourceMPToken&gt;&lt;TargetType xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;Microsoft.Windows.SoftwareUpdate&lt;/TargetType&gt;&lt;TargetMPName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;Microsoft.Windows.Library&lt;/TargetMPName&gt;&lt;TargetMPVersion xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;7.5.8501.0&lt;/TargetMPVersion&gt;&lt;TargetMPToken xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;31bf3856ad364e35&lt;/TargetMPToken&gt;&lt;OmitSource xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;true&lt;/OmitSource&gt;</Property>
</Object>
<Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsCollections' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataCollection']$">
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataCollectionName$">TopConsoleUser</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataTables$">TopConsoleUser</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/Settings$">&lt;RelationshipName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;System.ComputerPrimaryUser&lt;/RelationshipName&gt;&lt;MPName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;System.Library&lt;/MPName&gt;&lt;MPVersion xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;7.5.3079.0&lt;/MPVersion&gt;&lt;MPToken xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;31bf3856ad364e35&lt;/MPToken&gt;&lt;SourceType xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;Microsoft.Windows.Computer&lt;/SourceType&gt;&lt;SourceMPName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;Microsoft.Windows.Library&lt;/SourceMPName&gt;&lt;SourceMPVersion xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;7.5.8501.0&lt;/SourceMPVersion&gt;&lt;SourceMPToken xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;31bf3856ad364e35&lt;/SourceMPToken&gt;&lt;TargetType xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;System.Domain.User&lt;/TargetType&gt;&lt;TargetMPName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;System.Library&lt;/TargetMPName&gt;&lt;TargetMPVersion xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;7.5.3079.0&lt;/TargetMPVersion&gt;&lt;TargetMPToken xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;31bf3856ad364e35&lt;/TargetMPToken&gt;</Property>
</Object>
<Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsCollections' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataCollection']$">
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataCollectionName$">DCMConfigItems</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataTables$">DCMConfigItems</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/Settings$">&lt;TypeName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;Microsoft.SystemCenter.ConfigurationManager.DCM_CI&lt;/TypeName&gt;&lt;MPName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;Microsoft.SystemCenter.ConfigurationManager&lt;/MPName&gt;&lt;MPVersion xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;7.5.3079.0&lt;/MPVersion&gt;&lt;MPToken xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;31bf3856ad364e35&lt;/MPToken&gt;</Property>
</Object>
<Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsCollections' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataCollection']$">
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataCollectionName$">DCMConfigItemRelations</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataTables$">DCMConfigItemRelations</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/Settings$">&lt;RelationshipName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;Microsoft.SystemCenter.ConfigurationManager.ConfigItemRefersConfigItem&lt;/RelationshipName&gt;&lt;MPName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;Microsoft.SystemCenter.ConfigurationManager&lt;/MPName&gt;&lt;MPVersion xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;7.5.3079.0&lt;/MPVersion&gt;&lt;MPToken xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;31bf3856ad364e35&lt;/MPToken&gt;&lt;SourcePropertyName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;FromCI_UniqueID:UniqueID&lt;/SourcePropertyName&gt;&lt;TargetPropertyName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;ToCI_UniqueID:UniqueID&lt;/TargetPropertyName&gt;&lt;OmitSource xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;true&lt;/OmitSource&gt;&lt;OmitTarget xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;true&lt;/OmitTarget&gt;</Property>
</Object>
<Object Path="$Context/Path[Relationship='LFX!System.LinkingFramework.ConnectorEmbedsCollections' SeedRole='Source' TypeConstraint='LFX!System.LinkingFramework.DataCollection']$">
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataCollectionName$">DCMNonCompliantConfigItems</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/DataTables$">DCMNonCompliantConfigItems</Property>
<Property Path="$Context/Property[Type='LFX!System.LinkingFramework.DataCollection']/Settings$">&lt;RelationshipName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;Microsoft.SystemCenter.ConfigurationManager.NonComplianceRefersComputer&lt;/RelationshipName&gt;&lt;MPName xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;Microsoft.SystemCenter.ConfigurationManager&lt;/MPName&gt;&lt;MPVersion xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;7.5.3079.0&lt;/MPVersion&gt;&lt;MPToken xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;31bf3856ad364e35&lt;/MPToken&gt;&lt;OmitTarget xmlns="http://schemas.microsoft.com/sdm/servicedesk/linking/2005/09"&gt;true&lt;/OmitTarget&gt;</Property>
</Object>
</ObjectTemplate>