All PCs discovered from specific site 2

All PCs client assigned and installed site code details 2

All Site Servers Issue MP components status 2

All Site Servers Issue DP components status 2

All Site Servers Issue DDR components status 3

All Site Servers Issue CCR components status 4

All Site Servers Issue WSUS components status 4

All Site Servers Issue Discovery components status 4

All Site Servers Issue Collection Evaluator components status 6

All Site Servers Issue Hardware Inventory components status 6

All Site Servers Issue Despooler components status 7

All Site Servers Issue Inbox Monitor components status 8

All Site Servers Issue Component Monitor components status 8

All Site Servers Issue Others components status 8

Find Overall SCCM Site Hierarchy Information 10

Find SCCM Site Hierarchy Detailed Information 10

Site Status Overview Status 11

Site Status Status 12

Site Components Status 12

All PCs discovered from specific site

Select agent.AgentSite,sys.Netbios_Name0, sys.Resource_Domain_OR_Workgr0, MAX(AgentTime) as AgentTime

from v_R_System sys

join v_AgentDiscoveries agent on sys.ResourceID=agent.ResourceId

where agent.AgentSite= ‘A00’

group by agent.AgentSite,sys.Netbios_Name0, sys.Resource_Domain_OR_Workgr0

order by agent.AgentSite, Netbios_Name0

All PCs client assigned and installed site code details

Select v_R_System.Netbios_Name0 as ‘NetBios Name’,

v_R_System.AD_Site_Name0 as ‘AD Site’,

v_R_System.Active0 as ‘isActive’,

v_R_System.Obsolete0 as ‘isObsolete’,

v_RA_System_SMSAssignedSites.SMS_Assigned_Sites0 as ‘Assigned Site’,

v_RA_System_SMSInstalledSites.SMS_Installed_Sites0 as ‘Installed Site’

from v_R_System

inner join v_RA_System_SMSAssignedSites on (v_R_System.ResourceID = v_RA_System_SMSAssignedSites.ResourceID)

inner join v_RA_System_SMSInstalledSites on (v_R_System.ResourceID = v_RA_System_SMSInstalledSites.ResourceID)

Where SMS_Assigned_Sites0 like ‘%’ and SMS_Installed_Sites0 like ‘%’

All Site Servers Issue MP components status

SELECT distinct SiteCode ,

MachineName ‘ServerName’,

ComponentName ,

Case v_componentSummarizer.State When 0 Then ‘Stopped’ When 1 Then ‘Started’ When 2 Then ‘Paused’ When 3 Then ‘Installing’ When 4 Then ‘Re-Installing’ When 5 Then ‘De-Installing’ Else ‘ ‘ END AS ‘Thread State’,

Errors,

Warnings,

Infos,

Case v_componentSummarizer.Type When 0 Then ‘Autostarting’ When 1 Then ‘Scheduled’ When 2 Then ‘Manual’ ELSE ‘ ‘ END AS ‘StartupType’,

CASE AvailabilityState When 0 Then ‘Online’ When 3 Then ‘Offline’ ELSE ‘ ‘ END AS ‘State’,

Case v_ComponentSummarizer.Status When 0 Then ‘OK’ When 1 Then ‘Warning’ When 2 Then ‘Critical’ Else ‘ ‘ End As ‘Status’

from v_ComponentSummarizer Where TallyInterval = ‘0001128000100008’

and ComponentName =’SMS_MP_CONTROL_MANAGER’ and v_ComponentSummarizer.Status = 2 Order By SiteCode

All Site Servers Issue DP components status

SELECT distinct SiteCode ,

MachineName ‘ServerName’,

ComponentName ,

Case v_componentSummarizer.State When 0 Then ‘Stopped’ When 1 Then ‘Started’ When 2 Then ‘Paused’ When 3 Then ‘Installing’ When 4 Then ‘Re-Installing’ When 5 Then ‘De-Installing’ Else ‘ ‘ END AS ‘Thread State’,

Errors,

Warnings,

Infos,

Case v_componentSummarizer.Type When 0 Then ‘Autostarting’ When 1 Then ‘Scheduled’ When 2 Then ‘Manual’ ELSE ‘ ‘ END AS ‘StartupType’,

CASE AvailabilityState When 0 Then ‘Online’ When 3 Then ‘Offline’ ELSE ‘ ‘ END AS ‘State’,

Case v_ComponentSummarizer.Status When 0 Then ‘OK’ When 1 Then ‘Warning’ When 2 Then ‘Critical’ Else ‘ ‘ End As ‘Status’

from v_ComponentSummarizer Where TallyInterval = ‘0001128000100008’

and ComponentName =’SMS_DISTRIBUTION_MANAGER’ and v_ComponentSummarizer.Status = 2 Order By SiteCode

All Site Servers Issue DDR components status

SELECT distinct SiteCode ,

MachineName ‘ServerName’,

ComponentName ,

Case v_componentSummarizer.State When 0 Then ‘Stopped’ When 1 Then ‘Started’ When 2 Then ‘Paused’ When 3 Then ‘Installing’ When 4 Then ‘Re-Installing’ When 5 Then ‘De-Installing’ Else ‘ ‘ END AS ‘Thread State’,

Errors,

Warnings,

Infos,

Case v_componentSummarizer.Type When 0 Then ‘Autostarting’ When 1 Then ‘Scheduled’ When 2 Then ‘Manual’ ELSE ‘ ‘ END AS ‘StartupType’,

CASE AvailabilityState When 0 Then ‘Online’ When 3 Then ‘Offline’ ELSE ‘ ‘ END AS ‘State’,

Case v_ComponentSummarizer.Status When 0 Then ‘OK’ When 1 Then ‘Warning’ When 2 Then ‘Critical’ Else ‘ ‘ End As ‘Status’

from v_ComponentSummarizer Where TallyInterval = ‘0001128000100008’

and ComponentName =’SMS_DISCOVERY_DATA_MANAGER’

and v_ComponentSummarizer.Status = 2 Order By SiteCode

All Site Servers Issue CCR components status

SELECT distinct SiteCode ,

MachineName ‘ServerName’,

ComponentName ,

Case v_componentSummarizer.State When 0 Then ‘Stopped’ When 1 Then ‘Started’ When 2 Then ‘Paused’ When 3 Then ‘Installing’ When 4 Then ‘Re-Installing’ When 5 Then ‘De-Installing’ Else ‘ ‘ END AS ‘Thread State’,

Errors,

Warnings,

Infos,

Case v_componentSummarizer.Type When 0 Then ‘Autostarting’ When 1 Then ‘Scheduled’ When 2 Then ‘Manual’ ELSE ‘ ‘ END AS ‘StartupType’,

CASE AvailabilityState When 0 Then ‘Online’ When 3 Then ‘Offline’ ELSE ‘ ‘ END AS ‘State’,

Case v_ComponentSummarizer.Status When 0 Then ‘OK’ When 1 Then ‘Warning’ When 2 Then ‘Critical’ Else ‘ ‘ End As ‘Status’

from v_ComponentSummarizer Where TallyInterval = ‘0001128000100008’

and ComponentName =’SMS_CLIENT_CONFIG_MANAGER’

and v_ComponentSummarizer.Status = 2 Order By SiteCode

All Site Servers Issue WSUS components status

SELECT distinct SiteCode ,

MachineName ‘ServerName’,

ComponentName ,

Case v_componentSummarizer.State When 0 Then ‘Stopped’ When 1 Then ‘Started’ When 2 Then ‘Paused’ When 3 Then ‘Installing’ When 4 Then ‘Re-Installing’ When 5 Then ‘De-Installing’ Else ‘ ‘ END AS ‘Thread State’,

Errors,

Warnings,

Infos,

Case v_componentSummarizer.Type When 0 Then ‘Autostarting’ When 1 Then ‘Scheduled’ When 2 Then ‘Manual’ ELSE ‘ ‘ END AS ‘StartupType’,

CASE AvailabilityState When 0 Then ‘Online’ When 3 Then ‘Offline’ ELSE ‘ ‘ END AS ‘State’,

Case v_ComponentSummarizer.Status When 0 Then ‘OK’ When 1 Then ‘Warning’ When 2 Then ‘Critical’ Else ‘ ‘ End As ‘Status’

from v_ComponentSummarizer Where TallyInterval = ‘0001128000100008’

and (ComponentName =’SMS_WSUS_CONFIGURATION_MANAGER’ or ComponentName =’SMS_WSUS_SYNC_MANAGER’)

and v_ComponentSummarizer.Status = 2 Order By SiteCode

All Site Servers Issue Discovery components status

SELECT distinct SiteCode ,

MachineName ‘ServerName’,

ComponentName ,

Case v_componentSummarizer.State When 0 Then ‘Stopped’ When 1 Then ‘Started’ When 2 Then ‘Paused’ When 3 Then ‘Installing’ When 4 Then ‘Re-Installing’ When 5 Then ‘De-Installing’ Else ‘ ‘ END AS ‘Thread State’,

Errors,

Warnings,

Infos,

Case v_componentSummarizer.Type When 0 Then ‘Autostarting’ When 1 Then ‘Scheduled’ When 2 Then ‘Manual’ ELSE ‘ ‘ END AS ‘StartupType’,

CASE AvailabilityState When 0 Then ‘Online’ When 3 Then ‘Offline’ ELSE ‘ ‘ END AS ‘State’,

Case v_ComponentSummarizer.Status When 0 Then ‘OK’ When 1 Then ‘Warning’ When 2 Then ‘Critical’ Else ‘ ‘ End As ‘Status’

from v_ComponentSummarizer Where TallyInterval = ‘0001128000100008’

and (ComponentName =’SMS_AD_SYSTEM_GROUP_DISCOVERY_AGENT’ or ComponentName =’SMS_AD_SYSTEM_DISCOVERY_AGENT’ or

ComponentName =’SMS_NETWORK_DISCOVERY’ or ComponentName =’SMS_AD_SECURITY_GROUP_DISCOVERY_AGENT’)

and v_ComponentSummarizer.Status = 2 Order By SiteCode

All Site Servers Issue Collection Evaluator components status

SELECT distinct SiteCode ,

MachineName ‘ServerName’,

ComponentName ,

Case v_componentSummarizer.State When 0 Then ‘Stopped’ When 1 Then ‘Started’ When 2 Then ‘Paused’ When 3 Then ‘Installing’ When 4 Then ‘Re-Installing’ When 5 Then ‘De-Installing’ Else ‘ ‘ END AS ‘Thread State’,

Errors,

Warnings,

Infos,

Case v_componentSummarizer.Type When 0 Then ‘Autostarting’ When 1 Then ‘Scheduled’ When 2 Then ‘Manual’ ELSE ‘ ‘ END AS ‘StartupType’,

CASE AvailabilityState When 0 Then ‘Online’ When 3 Then ‘Offline’ ELSE ‘ ‘ END AS ‘State’,

Case v_ComponentSummarizer.Status When 0 Then ‘OK’ When 1 Then ‘Warning’ When 2 Then ‘Critical’ Else ‘ ‘ End As ‘Status’

from v_ComponentSummarizer Where TallyInterval = ‘0001128000100008’

and ComponentName =’SMS_COLLECTION_EVALUATOR’

and v_ComponentSummarizer.Status = 2 Order By SiteCode

All Site Servers Issue Hardware Inventory components status

SELECT distinct SiteCode ,

MachineName ‘ServerName’,

ComponentName ,

Case v_componentSummarizer.State When 0 Then ‘Stopped’ When 1 Then ‘Started’ When 2 Then ‘Paused’ When 3 Then ‘Installing’ When 4 Then ‘Re-Installing’ When 5 Then ‘De-Installing’ Else ‘ ‘ END AS ‘Thread State’,

Errors,

Warnings,

Infos,

Case v_componentSummarizer.Type When 0 Then ‘Autostarting’ When 1 Then ‘Scheduled’ When 2 Then ‘Manual’ ELSE ‘ ‘ END AS ‘StartupType’,

CASE AvailabilityState When 0 Then ‘Online’ When 3 Then ‘Offline’ ELSE ‘ ‘ END AS ‘State’,

Case v_ComponentSummarizer.Status When 0 Then ‘OK’ When 1 Then ‘Warning’ When 2 Then ‘Critical’ Else ‘ ‘ End As ‘Status’

from v_ComponentSummarizer Where TallyInterval = ‘0001128000100008’

and ComponentName =’SMS_INVENTORY_DATA_LOADER’

and v_ComponentSummarizer.Status = 2 Order By SiteCode

All Site Servers Issue Despooler components status

SELECT distinct SiteCode ,

MachineName ‘ServerName’,

ComponentName ,

Case v_componentSummarizer.State When 0 Then ‘Stopped’ When 1 Then ‘Started’ When 2 Then ‘Paused’ When 3 Then ‘Installing’ When 4 Then ‘Re-Installing’ When 5 Then ‘De-Installing’ Else ‘ ‘ END AS ‘Thread State’,

Errors,

Warnings,

Infos,

Case v_componentSummarizer.Type When 0 Then ‘Autostarting’ When 1 Then ‘Scheduled’ When 2 Then ‘Manual’ ELSE ‘ ‘ END AS ‘StartupType’,

CASE AvailabilityState When 0 Then ‘Online’ When 3 Then ‘Offline’ ELSE ‘ ‘ END AS ‘State’,

Case v_ComponentSummarizer.Status When 0 Then ‘OK’ When 1 Then ‘Warning’ When 2 Then ‘Critical’ Else ‘ ‘ End As ‘Status’

from v_ComponentSummarizer Where TallyInterval = ‘0001128000100008’

and ComponentName =’SMS_DESPOOLER’

and v_ComponentSummarizer.Status = 2 Order By SiteCode

All Site Servers Issue Inbox Monitor components status

SELECT distinct SiteCode ,

MachineName ‘ServerName’,

ComponentName ,

Case v_componentSummarizer.State When 0 Then ‘Stopped’ When 1 Then ‘Started’ When 2 Then ‘Paused’ When 3 Then ‘Installing’ When 4 Then ‘Re-Installing’ When 5 Then ‘De-Installing’ Else ‘ ‘ END AS ‘Thread State’,

Errors,

Warnings,

Infos,

Case v_componentSummarizer.Type When 0 Then ‘Autostarting’ When 1 Then ‘Scheduled’ When 2 Then ‘Manual’ ELSE ‘ ‘ END AS ‘StartupType’,

CASE AvailabilityState When 0 Then ‘Online’ When 3 Then ‘Offline’ ELSE ‘ ‘ END AS ‘State’,

Case v_ComponentSummarizer.Status When 0 Then ‘OK’ When 1 Then ‘Warning’ When 2 Then ‘Critical’ Else ‘ ‘ End As ‘Status’

from v_ComponentSummarizer Where TallyInterval = ‘0001128000100008’

and ComponentName =’SMS_INBOX_MONITOR’

and v_ComponentSummarizer.Status = 2 Order By SiteCode

All Site Servers Issue Component Monitor components status

SELECT distinct SiteCode,

MachineName ‘ServerName’,

ComponentName ,

Case v_componentSummarizer.State When 0 Then ‘Stopped’ When 1 Then ‘Started’ When 2 Then ‘Paused’ When 3 Then ‘Installing’ When 4 Then ‘Re-Installing’ When 5 Then ‘De-Installing’ Else ‘ ‘ END AS ‘Thread State’,

Errors,

Warnings,

Infos,

Case v_componentSummarizer.Type When 0 Then ‘Autostarting’ When 1 Then ‘Scheduled’ When 2 Then ‘Manual’ ELSE ‘ ‘ END AS ‘StartupType’,

CASE AvailabilityState When 0 Then ‘Online’ When 3 Then ‘Offline’ ELSE ‘ ‘ END AS ‘State’,

Case v_ComponentSummarizer.Status When 0 Then ‘OK’ When 1 Then ‘Warning’ When 2 Then ‘Critical’ Else ‘ ‘ End As ‘Status’

from v_ComponentSummarizer Where TallyInterval = ‘0001128000100008’

and ComponentName =’SMS_COMPONENT_MONITOR’

and v_ComponentSummarizer.Status = 2 Order By SiteCode

All Site Servers Issue Others components status

SELECT distinct SiteCode ,

MachineName ‘ServerName’,

ComponentName ,

Case v_componentSummarizer.State When 0 Then ‘Stopped’ When 1 Then ‘Started’ When 2 Then ‘Paused’ When 3 Then ‘Installing’ When 4 Then ‘Re-Installing’ When 5 Then ‘De-Installing’ Else ‘ ‘ END AS ‘Thread State’,

Errors,

Warnings,

Infos,

Case v_componentSummarizer.Type When 0 Then ‘Autostarting’ When 1 Then ‘Scheduled’ When 2 Then ‘Manual’ ELSE ‘ ‘ END AS ‘StartupType’,

CASE AvailabilityState When 0 Then ‘Online’ When 3 Then ‘Offline’ ELSE ‘ ‘ END AS ‘State’,

Case v_ComponentSummarizer.Status When 0 Then ‘OK’ When 1 Then ‘Warning’ When 2 Then ‘Critical’ Else ‘ ‘ End As ‘Status’

from v_ComponentSummarizer Where TallyInterval = ‘0001128000100008’

and ComponentName Not in

(‘SMS_MP_CONTROL_MANAGER’,’SMS_DISTRIBUTION_MANAGER’,’SMS_DISCOVERY_DATA_MANAGER’,

‘SMS_CLIENT_CONFIG_MANAGER’,’SMS_WSUS_CONFIGURATION_MANAGER’,’SMS_WSUS_SYNC_MANAGER’,

‘SMS_AD_SECURITY_GROUP_DISCOVERY_AGENT’,’SMS_AD_SYSTEM_GROUP_DISCOVERY_AGENT’,

‘SMS_AD_SYSTEM_DISCOVERY_AGENT’,’SMS_NETWORK_DISCOVERY’,’SMS_COLLECTION_EVALUATOR,

‘SMS_INVENTORY_DATA_LOADER’,’SMS_DESPOOLER’,’SMS_INBOX_MONITOR’,’SMS_COMPONENT_MONITOR’ )

and v_ComponentSummarizer.Status = 2 Order By SiteCode

Find Overall SCCM Site Hierarchy Information

select distinct

(select COUNT(*) from v_SystemResourceList where RoleName = ‘SMS Site System’) as ‘SCCM SVR Counts’,

(select COUNT(*) from v_SystemResourceList where RoleName = ‘SMS Site Server’) as ‘SCCM Site Counts’, (

select COUNT(*) from v_SystemResourceList Vrl

Inner Join V_site Vs on Vs.ServerName = Vrl.ServerName

Where Vrl.RoleName = ‘SMS Site Server’ and Vs.Type = 3 and Vs.ReportingSiteCode is not null

) as ‘CAS Site Counts’, (

select COUNT(*) from v_SystemResourceList Vrl

Inner Join V_site Vs on Vs.ServerName = Vrl.ServerName

Where Vrl.RoleName = ‘SMS Site Server’ and Vs.Type = 2 and Vs.ReportingSiteCode is not null

) as ‘PRI Site Counts’, (

select COUNT(*) from v_SystemResourceList Vrl

Inner Join V_site Vs on Vs.ServerName = Vrl.ServerName

Where Vrl.RoleName = ‘SMS Site Server’ and Vs.Type = 1 and Vs.ReportingSiteCode is not null

) as ‘SEC Site Counts’,

(select COUNT(*) from v_SystemResourceList where RoleName = ‘SMS Management Point’) as ‘MP SVR Counts’,

(select COUNT(*) from v_SystemResourceList where RoleName = ‘SMS Distribution Point’) as ‘DP SVR Counts’,

(select COUNT(*) from v_SystemResourceList where RoleName = ‘SMS Software Update Point’) as ‘SUP SVR Counts’,

(select COUNT(*) from v_SystemResourceList where RoleName = ‘SMS SRS Reporting Point’) as ‘SSRS SVR Counts’,

(select COUNT(*) from v_SystemResourceList where RoleName = ‘SMS Provider’) as ‘SMSPro SVR Counts’

from v_SystemResourceList

Find SCCM Site Hierarchy Detailed Information

Select

V_Site.SiteCode as ‘SiteCode’,

V_Site.ReportingSiteCode as ‘ReportTo’,

V_Site.ServerName as ‘ServerName’,

V_Site.SiteName as ‘SiteName’,

CASE

WHEN V_Site.Type = 3 and V_Site.ReportingSiteCode is not null THEN ‘CAS Site Server’

WHEN V_Site.Type = 2 and V_Site.ReportingSiteCode = » THEN ‘Standalone Primary Site Server’

WHEN V_Site.Type = 2 and V_Site.ReportingSiteCode is not null THEN ‘Primary Site Server’

WHEN V_Site.Type = 1 and V_Site.ReportingSiteCode is not null THEN ‘Secondary Site Server’

ELSE ‘Others’ END as ‘Site Server Detail’,

V_Site.InstallDir as ‘Installed Directory’,

CASE

WHEN V_Site.BuildNumber = ‘7711’ THEN ‘2012 RTM’

WHEN V_Site.BuildNumber = ‘7804’ THEN ‘2012 SP1’

WHEN V_Site.BuildNumber = ‘7958’ THEN ‘2012 R2’

WHEN V_Site.BuildNumber = ‘8239’ THEN ‘2012 R2 SP1’

WHEN V_Site.BuildNumber = ‘8325’ THEN ‘1511’

WHEN V_Site.BuildNumber = ‘8355’ THEN ‘1602’

WHEN V_Site.BuildNumber = ‘8412’ THEN ‘1606’

WHEN V_Site.BuildNumber = ‘8458’ THEN ‘1610’

ELSE ‘Others’ END as ‘SCCM Version’,

V_Site.Version as ‘Build Version’

from V_Site

Site Status Overview Status

Select

SiteStatus.SiteCode, SiteInfo.SiteName, SiteStatus.Updated ‘Time Stamp’,

Case SiteStatus.Status

When 0 Then ‘OK’

When 1 Then ‘Warning’

When 2 Then ‘Critical’

Else ‘ ‘

End AS ‘Site Status’,

Case SiteInfo.Status

When 1 Then ‘Active’

When 2 Then ‘Pending’

When 3 Then ‘Failed’

When 4 Then ‘Deleted’

When 5 Then ‘Upgrade’

Else ‘ ‘

END AS ‘Site State’

From V_SummarizerSiteStatus SiteStatus Join v_Site SiteInfo on SiteStatus.SiteCode = SiteInfo.SiteCode

where SiteInfo.Status <> 1

Order By SiteCode

Site Status Status

SELECT distinct

SiteCode ‘Site Code’,

SUBSTRING(SiteSystem, CHARINDEX(‘\\’, SiteSystem) + 2, CHARINDEX(‘ »]’, SiteSystem) – CHARINDEX(‘\\’, SiteSystem) – 3 ) AS ‘Site System’,

REPLACE(Role, ‘SMS’, ‘ConfigMgr’) ‘Role’,

Case ObjectType

When 0 Then ‘Directory’

When 1 Then ‘SQL Database’

When 2 Then ‘SQL Transaction Log’

Else ‘ ‘

END AS ‘Object Type’,

CAST(BytesTotal/1024 AS VARCHAR(49)) + ‘MB’ ‘Total’,

CAST(BytesFree/1024 AS VARCHAR(49)) + ‘MB’ ‘Free’,

CASE PercentFree

When -1 Then ‘Unknown’

When -2 Then ‘Automatically grow’

ELSE CAST(PercentFree AS VARCHAR(49)) + ‘%’

END AS ‘%Free’,

Case v_SiteSystemSummarizer.Status

When 0 Then ‘OK’

When 1 Then ‘Warning’

When 2 Then ‘Critical’

Else ‘ ‘

End As ‘Status’

FROM v_SiteSystemSummarizer

–where v_SiteSystemSummarizer.Status <> 0

Order By 1

Site Components Status

SELECT distinct SiteCode ,

MachineName ‘ServerName’,

ComponentName ,

Case v_componentSummarizer.State When 0 Then ‘Stopped’ When 1 Then ‘Started’ When 2 Then ‘Paused’ When 3 Then ‘Installing’ When 4 Then ‘Re-Installing’ When 5 Then ‘De-Installing’ Else ‘ ‘ END AS ‘Thread State’,

Errors,

Warnings,

Infos,

Case v_componentSummarizer.Type When 0 Then ‘Autostarting’ When 1 Then ‘Scheduled’ When 2 Then ‘Manual’ ELSE ‘ ‘ END AS ‘StartupType’,

CASE AvailabilityState When 0 Then ‘Online’ When 3 Then ‘Offline’ ELSE ‘ ‘ END AS ‘State’,

Case v_ComponentSummarizer.Status When 0 Then ‘OK’ When 1 Then ‘Warning’ When 2 Then ‘Critical’ Else ‘ ‘ End As ‘Status’

from v_ComponentSummarizer Where TallyInterval = ‘0001128000100008’

and (v_ComponentSummarizer.Status = 2 or v_ComponentSummarizer.Status = 1)

Order By ComponentName,SiteCode

error

Enjoy this blog? Please spread the word :)

RSS
Follow by Email
LinkedIn
LinkedIn
Share