submodules/ChocoDeployIntune/function-New-ChocoIntuneW32App.ps1
#Requires -Module @{ ModuleName = 'PSIntuneAuth'; ModuleVersion = '1.2.2' },@{ ModuleName = 'AzureAD'; ModuleVersion = '2.0.2.76' },@{ModuleName = "intunewin32app"; ModuleVersion = "1.1.0"} #Requires -Version 5.1 <# .SYNOPSIS .DESCRIPTION .EXAMPLE #> function New-ChocoIntuneW32App { [CmdletBinding()] param ( # Application Icon [Parameter(Mandatory=$false)] [ValidateScript({Test-Path $_})] [ValidatePattern(".jpeg$|.jpg$|.png$")] [String] $IconFilePath, # PowerShell Detection Script Path [Parameter(Mandatory)] [ValidateScript({Test-Path $_})] [ValidatePattern(".ps1")] [String] $DetectionScriptPath, # Install Command Line [Parameter(Mandatory)] [string] $InstallCommandLine, # Uninstall Command Line [Parameter(Mandatory)] [string] $UninstallCommandLine, # Description [Parameter(Mandatory=$false)] [string] $ApplicationDescription = " ", # Application Display Name [Parameter(Mandatory)] [string] $ApplicationDisplayName, # Application Publisher Name [Parameter(Mandatory)] [string] $ApplicationPublisherName, # Application File Name [Parameter(Mandatory)] [ValidatePattern(".intunewin$")] [string] $IntuneAppFilePath, # Tenant Name [Parameter(Mandatory)] [string] $TenantName ) process { $appCreateParam = @{ DetectionRule = New-IntuneWin32AppDetectionRuleScript -ScriptFile $DetectionScriptPath RestartBehavior = "basedOnReturnCode" FilePath = $IntuneAppFilePath DisplayName = $ApplicationDisplayName InstallCommandLine = $InstallCommandLine UninstallCommandline = $UninstallCommandLine InstallExperience = "system" Description = $ApplicationDescription Publisher = $ApplicationPublisherName } if ($IconFilePath) { $imgFile = New-IntuneWin32AppIcon -FilePath $IconFilePath $appCreateParam.Add("Icon", $imgFile) } Write-Verbose "Creating Intune Application: $ApplicationDisplayName" Add-IntuneWin32App @appCreateParam } } |