måndag 6 december 2021

Blev en hel del PowerShell idag

Idag blev det en hel del PowerShell. Fick klart min funktion för att lägga till 2 Requirements till en Deolployment Type i SCCM:en.
Det tog lite tid då det var 3500 rader kod att gå igenom och den funktionen som fanns var uppdelad i 5 steg och gjorde en hel del saker baklänges och fick fel information i variablerna den hade.

Till slut fick jag till det.

$myGC = Get-CMGlobalCondition -Name "Operating System" |Where-Object PlatformType -eq 1

                                    $myGC2 = Get-CMGlobalCondition -Name"UserLoggedOn"

 

                                    $platformA = Get-CMConfigurationPlatform-Id "16777298"

                                    $myRule = $myGC | New-CMRequirementRuleOperatingSystemValue -RuleOperator OneOf-Platform $platformA

                                    $myRule2 = New-CMRequirementRuleBooleanValue -GlobalCondition $myGC2-Value $false

                                    $myRule3 = New-CMRequirementRuleBooleanValue -GlobalCondition $myGC2-Value $true

 

                                    Set-CMScriptDeploymentType-ApplicationName $SharpApplicationXML.Title-DeploymentTypeName($SharpApplicationXML.DeploymentTypes.title | Where-Object {$_ -like "*- LoggedOn" }) -AddRequirement $myRule3

                                    Set-CMScriptDeploymentType-ApplicationName $SharpApplicationXML.Title-DeploymentTypeName($SharpApplicationXML.DeploymentTypes.title | Where-Object {$_ -like "*- LoggedOn" }) -AddRequirement $myRule

                                    Set-CMScriptDeploymentType-ApplicationName $SharpApplicationXML.Title-DeploymentTypeName($SharpApplicationXML.DeploymentTypes.title | Where-Object {$_ -like "*- NotLoggedOn" }) -AddRequirement $myRule2

                                    Set-CMScriptDeploymentType-ApplicationName $SharpApplicationXML.Title-DeploymentTypeName($SharpApplicationXML.DeploymentTypes.title | Where-Object {$_ -like "*- NotLoggedOn" }) -AddRequirement $myRule


Kanske inte den snyggaste men den fungerar. 
Den letar upp de 2 Deployment Types som finns för varje Applikation som den har skapat och slutar med - LoggedOn eller - NotLoggedOn.
Sen lägger den till 2 Requirements, ett för operativet som är Windows 10 x64 som jag fick ut ifrån den Globala Condition med ID 16777298.
Sen sätter jag den ena Deployment Typen för logged on till True och den andra till False så var det klart.

Detta för att kunden ville ha en Deployment Type för inloggad användare och en för avloggad för att få inloggade användare att använda sig av funktionen ”Allow user to view and interact with the program installation.”

Det är grymt med PowerShell. Det är så lätt att automatisera saker och få det att gå riktigt snabbt utan fel.



Inga kommentarer: