Discover Cireson Portal Website Instances

Cireson.Portal.Discovery.Cireson.Portal.App.Component.Website (Discovery)

Description for the new discovery.

Element properties:

TargetCireson.Portal.Computer.WebServer
EnabledTrue
Frequency14400
RemotableFalse

Object Discovery Details:

Discovered Classes and their attribuets:

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Microsoft.Windows.TimedPowerShell.DiscoveryProvider Default

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>