-
Notifications
You must be signed in to change notification settings - Fork 26
Expand file tree
/
Copy pathConfigMgr_CreateWmiForAppFolderLocation.ps1
More file actions
26 lines (24 loc) · 1.4 KB
/
ConfigMgr_CreateWmiForAppFolderLocation.ps1
File metadata and controls
26 lines (24 loc) · 1.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
param
(
[Parameter(Mandatory = $false)]
$ApplicationName = '*',
[Parameter(Mandatory = $true)]
$SiteCode
)
$nameSpace = "root\sms\site_$SiteCode"
$matchedApps = Get-CimInstance -Namespace $nameSpace -Query "SELECT ModelName, LocalizedDisplayName FROM SMS_ApplicationLatest WHERE LocalizedDisplayName LIKE '$($ApplicationName -replace '\*', '%')'"
foreach ($app in $matchedApps) {
$appFolderInfo = Get-CimInstance -Namespace $nameSpace -Query "SELECT ContainerNodeID FROM SMS_ObjectContainerItem WHERE InstanceKey = '$($app.ModelName)'"
$appFolder = Get-CimInstance -Namespace $nameSpace -Query "SELECT Name, ContainerNodeID, ParentContainerNodeID FROM SMS_ObjectContainerNode WHERE ContainerNodeID = '$($appFolderInfo.ContainerNodeID)'"
$appFolderPath = $appFolder.Name
while ($appFolder.ParentContainerNodeID -ne 0) {
$appFolder = Get-CimInstance -Namespace $nameSpace -Query "SELECT Name, ContainerNodeID, ParentContainerNodeID FROM SMS_ObjectContainerNode WHERE ContainerNodeID = '$($appFolder.ParentContainerNodeID)'"
$appFolderPath = [string]::Join('\', @($appFolder.Name, $appFolderPath))
}
[PSCustomObject]@{
ApplicationName = $app.LocalizedDisplayName
ApplicationFolderPath = [string]::Join('\', $('Applications', $appFolderPath))
ApplicationModelName = $app.ModelName
ApplicationContainerID = $appFolderInfo.ContainerNodeID
}
}