Skapa ConfigMgr Globala villkor

Behöver du bara installera ett program när ett annat program redan är installerat? Eller måste du förhindra att ett program installeras om ett annat program redan är installerat? Jag har varit i båda situationerna tidigare, varför jag har satt upp globala villkor för att kontrollera om det redan finns installerade program. I det här inlägget visar jag dig hur du skapar globala ConfigMgr -villkor för att kontrollera SMS_InstalledSoftware i applikationstypskravet.

Situation

Du vill uppgradera ett program, så låt oss använda Microsoft 365 -appar (M365) för företag som exempel. Du vet att om du uppgraderar en användare som har Office 2016 och tillägget Faxcom installerat, kommer det att uppgradera Office 2016 till M365, men Faxcom bryts i processen, vilket kräver en avinstallation och ominstallation för att fixa Faxcom. För att förhindra att någon installerar M365 från programvarukatalogen och bryter en av deras affärskritiska applikationer kan du utnyttja kraven på applikationen, som är dina globala förhållanden.

För att lära dig mer om globala förhållanden, kolla in MSFT -dokumenten https://docs.microsoft.com/en-us/mem/configmgr/apps/deploy-use/create-global-conditions. Om du vill lära dig mer om hur jag har distribuerat M365, kolla in min M365 bloggserie.

Hur man skapar ConfigMgr globala villkor

Börja med att skapa ett nytt globalt tillstånd. Ge den ett namn och en beskrivning. Se till att Inställningstyp är satt till Manus och lägg sedan till din kod. Under skärmdumpen visar jag koden som jag använde för mitt skript.

ConfigMgr Globala villkor - Skapa globalt skick
Namn: SMS_InstalledSoftware - ARPDisplayName
Beskrivning: Detta kommer att samla in resultaten från alla ARPDisplayNames i SMS_InstallSoftware och slå samman dem till en sträng som returneras.

Koda: $AllApps = Get-CimInstance -Namespace root/cimv2/sms -ClassName SMS_InstalledSoftware Foreach ($App i $AllApps) { $AppDisplayName += ",$($App.ARPDisplayName)" } }

Så här ser utmatningen av PowerShell -kod på en ConfigMgr -klient ut:

PowerShell -kodutmatning

När du har skapat det globala villkoret kan du använda det i ett program som ett krav. Men innan jag lägger till krav på produktionsapplikationer har jag en "falsk app" som jag gillar att använda för att testa saker. Jag kommer att använda den här appen för att testa detta nya globala tillstånd.

Testar det globala tillståndet ConfigMgr

ConfigMgr Globala villkor - Fliken Distributionstyper och krav

I ansökan, gå till Distributionstyper och gå sedan till Krav flik. Klick Lägg till vilket gör att du kan skapa ett krav. När du väljer Beställnings från Kategori fält, kommer det att dra från dina globala förhållanden. Nu väljer jag den jag just skapade, lägg till Innehåller inte och skriv in Greenshot för värdet.

Vad gör detta? När programmet utvärderar på slutpunkten kommer det att köra detta villkor, och om det hittar en applikation installerad med ARPDisplayName som INNEHÅLLER Greenshot, tillåter den INTE att installera.

Därefter går jag över till Software Center och försöker installera FakeApp med kravet på en maskin som har Greenshot installerat och en annan som inte har den installerad. Du kan se i skärmdumparna nedan att resultaten var som förväntat.

Programvarucenter

Rapporterar resultat

Och hur räknar du ut varför en app misslyckades? Låt oss gå till rapportering i konsolen.

ConfigMgr Globala villkor - Distributionsstatus

Under Kraven uppfylls inte fliken kan du se maskinen / maskinerna som inte uppfyllde kraven tillsammans med orsaken. Det här är trevligt om du har flera krav på en applikation och du vill veta vilken den misslyckades med.

SMS_InstalledSoftware

Du kan använda andra fält i SMS_InstalledSoftware, men hittills har jag bara hittat Utgivare att vara till hjälp. I några fall har vi hittat några applikationer med liknande namn från olika utgivare, men själva utgivaren var unik.

Namn: SMS_InstalledSoftware - Publisher Description: Detta kommer att samla resultaten från alla utgivare i SMS_InstallSoftware och slå ihop dem till en sträng som returneras. Kod: $AllApps = Get -CimInstance -Namespace root/cimv2/sms -ClassName SMS_InstalledSoftware Foreach ($App i $AllApps) {$AppPublisher += ", $ ($App.Publisher)"} $AppPublisher

Utnyttja PowerShell i ConfigMgr globala förhållanden

Genom att utnyttja PowerShell under globala förhållanden kan du lägga till mycket specialiserade krav på dina applikationsdistributioner för att granulärt styra vilka maskiner som tillåter det att installera. Nu, gå vidare och låt dina distributionsteam distribuera dina appar i fred, även om de distribuerar dem till alla system, det kommer bara att installeras på rätt maskiner! Du kan utnyttja kraften i globala förhållanden och krav på appdistribution.*

*Detta är INTE ett godkännande av att göra breda distributioner eller rikta in sig på alla system, bara en poäng att krav, när de är korrekt implementerade, kan minska risken och se till att appar installeras på rätt slutpunkter.

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:

Dela detta:

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.
sv_SESwedish