Discover Cireson Portal Website Instances
Cireson.Portal.Discovery.Cireson.Portal.App.Component.Website (Discovery)
Description for the new discovery.
Element properties:
Object Discovery Details:
Member Modules:
Source Code:
<Discovery ID="Cireson.Portal.Discovery.Cireson.Portal.App.Component.Website" Target="Cireson.Portal.Computer.WebServer" Enabled="true" ConfirmDelivery="false" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="Cireson.Portal.App.Component.Website"/>
</DiscoveryTypes>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.TimedPowerShell.DiscoveryProvider">
<IntervalSeconds>14400</IntervalSeconds>
<SyncTime/>
<ScriptName>DiscoverCiresonPortalWebsite.ps1</ScriptName>
<ScriptBody><Script>
param($sourceId,$managedEntityId,$computerName)
$api = New-Object -ComObject 'MOM.ScriptAPI'
$discoveryData = $api.CreateDiscoveryData(0, $sourceId, $managedEntityId)
# Logging
$api.LogScriptEvent('DiscoverCiresonPortalWebsite.ps1',4551,0,"Cireson Web Site Discovery Script is starting")
$websites = (Get-Website | Where-Object 'Name' -NotLike 'Default Web Site')
$results = foreach ($website in $websites)
{
$fullpath = Get-ChildItem -Path $website.Physicalpath -Recurse | Where-Object {$_.PSIscontainer -and $_.FullName -like "*content\cireson"} | Select -Expand FullName
if ($fullpath) {
[pscustomobject]@{
SiteName = $website.name
ContentCiresonPath = $fullpath
PhysicalPath = $website.physicalpath
SiteID = "W3SVC/$($website.id)"
ID = "W3SVC/$($website.id)"
}
}
}
foreach ($result in $results)
{
$instance = $discoveryData.CreateClassInstance("$MPElement[Name='Cireson.Portal.App.Component.Website']$")
$instance.AddProperty("$MPElement[Name='IISCommon!Microsoft.Windows.InternetInformationServices.WebSite']/SiteID$",$result.SiteID)
$instance.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$",$computerName)
$discoveryData.AddInstance($instance)
}
$discoveryData
# Logging
$api.LogScriptEvent('DiscoverCiresonPortalWebsite.ps1',4552,0,"Cireson Web Site Discovery Script is complete")
</Script></ScriptBody>
<Parameters>
<Parameter>
<Name>sourceId</Name>
<Value>$MPElement$</Value>
</Parameter>
<Parameter>
<Name>managedEntityId</Name>
<Value>$Target/Id$</Value>
</Parameter>
<Parameter>
<Name>computerName</Name>
<Value>$Target/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</Value>
</Parameter>
</Parameters>
<TimeoutSeconds>240</TimeoutSeconds>
</DataSource>
</Discovery>