Visa ConfigMgr-applikationsdistributionskrav med PowerShell

Har du en applikationstyp ConfigMgr med flera krav? Måste du hålla dem dokumenterade? Jag gör. De ändras ständigt på några av våra applikationer för att säkerställa att vi inte installerar ett program på en maskin som kommer att påverka den slutpunkten negativt. Först tog jag skärmdumpar och klistrade in dem på en webbsida, men det blev riktigt snabbt gammalt.

Lista över krav för applikationsdistributionstyp - PowerShell -sättet

PowerShell är mitt verktyg för i stort sett allt, så jag tog några minuter att hitta ConfigMgr PowerShell-cmdlets för att få applikationstypen, sedan drog jag ut kraven.

Om du bara letar efter koden och ett exempel, så gör du:

$AppName = "Recast - Test-App" $AppDTName = "Recast - Test-App AppDT" $AppDT = Get-CMDeploymentType -ApplicationName $AppName -DeploymentTypeName $AppDTName [XML] $AppDTXML = $AppDT.SDMPackageXML $AppDTXMLType = $AppDTXML.AppMgmtDigest.DeploymentType | Where -Object {$_.title.'#text '-eq $AppDTName} $AppDTXMLType.Requirements.rule.annotation.displayname
Typ av applikationsdistribution - exempel

Hur det fungerar

Nu, om du vill veta hur det fungerar, kan vi bakåt konstruera det.

Först registrerar jag namnet på applikationen och sedan distributionstypen i variabler. I mitt exempel kallas programmet "Recast-Test-App" och distributionstypen kallas "Recast-Test-App AppDT". Med en enda distributionstyp kan du faktiskt förenkla koden lite. Jag arbetade med appar med flera distributionstyper, men brydde mig bara om en av dem. Detta kan enkelt ändras för att generera kraven för alla distributionstyper för ett program. Om du försöker göra det och stöter på en snag, slå mig @gwblok så ska jag hjälpa dig eller uppdatera det här inlägget.

När du känner till appnamnet och AppDT -namnet kan du dra den ConfigMgr -data via PowerShell till en variabel:

$AppDT = Get -CMDeploymentType -ApplicationName $AppName -DeploymentTypeName $AppDTName

Så vad finns i $AppDT? Det finns flera metoder (som jag inte kommer in på) och egenskaper som lagrar data. Om du använder Get-Member och begränsar det till egenskaper får du en lista:

Egenskaper

Om du vill se data bakom det, kör bara variabeln:

Applikationens distributionstyp - variabel

Det mesta av Application DT -informationen finns i XML, inklusive ton vi inte vill ha, så jag måste bara få PowerShell att dra den del jag vill ha. För att göra dessa data användbara för PowerShell kastade jag egenskapen som XML och placerade den i en variabel.

[XML] $AppDTXML = $AppDT.SDMPackageXML
XML

Det ser inte så mycket ut, men nu kan vi börja gräva ner det.

Resultat

Gräver in

Genom att gräva in ser vi att det bara finns en distributionstyp på appen. Av någon anledning, om det finns mer än en AppDT, kommer den att lista dem alla här trots att du berättade för kommandot vilken AppDT som ska användas. Det är därför jag sedan har den här raden att dra ut ur XML för endast AppDT vi bryr oss om:

$AppDTXMLType = $AppDTXML.AppMgmtDigest.DeploymentType | Where -Object {$_.title.'#text '-eq $AppDTName}

Den koden kommer att placeras i variabeln $AppDTXMLTyp AppDT -informationen från AppDT som matchar namnet vi berättade om den i början. Resten kommer att kasseras. Nu när jag bara har den AppDT vi bryr oss om kan vi fördjupa oss djupare.

Jag visar dig genom att gräva ner lager för lager:

Kravregler

Först kommer jag att granska kravreglerna. Nu finns det flera, så jag valde bara två. Detta ger mig tillräckligt med information om hur man gräver djupare, samtidigt som skärmen hålls ren för att fånga den här bilden.

Efter det fördjupar jag mig i Annotation, vilket ger mig Displayname och Description, så jag gräver i Displayname, och det gav den information jag ville ha.

Vi har nästan 20 krav på vår M365 -applikation på grund av så många kompatibilitetskonflikter. Om vi uppgraderade appen skulle vi bryta nuvarande installerade tillägg, så kraven hindrar dem från att installera och bryta en viktig affärsfunktion. För att se mer om hur jag har implementerat M365, kolla in min M365 bloggserie.

Härifrån kan jag kopiera och klistra in eller utnyttja ett annat API för att ladda upp till rätt plats. För oss är det sammanflödet.

Jag hoppas att detta också hjälper dig att visa hur du kan använda PowerShell för att hitta nästan all information om en applikationstyp i ConfigMgr som ska användas för automatisering.

Se hur Right Click Tools förändrar hur system hanteras.

Öka produktiviteten direkt med vår begränsade, kostnadsfria Community Edition.

Kom igång med Right Click Tools idag:

Support

  • Detta fält används för valideringsändamål och ska lämnas oförändrat.

Kontakt

  • Detta fält används för valideringsändamål och ska lämnas oförändrat.

Genom att skicka in detta formulär förstår du att Recast Software kan behandla dina uppgifter enligt beskrivningen i Recast Software Integritetspolicy.

sv_SESwedish