Private/WinGet/New-WinGetRemediationBody.ps1
|
function New-WinGetRemediationBody { [CmdletBinding()] [OutputType([hashtable])] param( [Parameter(Mandatory)] [psobject]$Definition, [Parameter(Mandatory)] [bool]$IncludeCreateOnlyProperties ) $detectionScriptContent = New-WinGetRemediationScriptContent -PackageIdentifiers $Definition.PackageIdentifiers -Scope $Definition.Scope -ScriptType 'Detection' $remediationScriptContent = New-WinGetRemediationScriptContent -PackageIdentifiers $Definition.PackageIdentifiers -Scope $Definition.Scope -ScriptType 'Remediation' $scopeFolderName = [cultureinfo]::InvariantCulture.TextInfo.ToTitleCase($Definition.Scope) $null = Save-HydrationGeneratedScript -RelativePath "WinGetRemediations/$scopeFolderName/Detect-WinGetAppUpdates.ps1" -Content $detectionScriptContent $null = Save-HydrationGeneratedScript -RelativePath "WinGetRemediations/$scopeFolderName/Remediate-WinGetAppUpdates.ps1" -Content $remediationScriptContent $body = @{ publisher = 'WinGet' displayName = $Definition.DisplayName description = $Definition.Description detectionScriptContent = [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($detectionScriptContent)) remediationScriptContent = [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($remediationScriptContent)) runAs32Bit = $false runAsAccount = $Definition.RunAsAccount enforceSignatureCheck = $false roleScopeTagIds = @('0') detectionScriptParameters = @() remediationScriptParameters = @() } if ($IncludeCreateOnlyProperties) { $body['@odata.type'] = '#microsoft.graph.deviceHealthScript' $body['isGlobalScript'] = $false } return $body } |