diff --git a/Apps/7Zip/App.json b/Apps/7Zip/App.json index 3b694c5..3dafda2 100644 --- a/Apps/7Zip/App.json +++ b/Apps/7Zip/App.json @@ -12,15 +12,22 @@ "AppVersion": "", "Description": "Install 7-Zip", "Publisher": "", + "Developer": "", "Notes": "", - "Owner": "", + "InformationURL": "", + "PrivacyURL": "", + "CompanyPortalFeaturedApp": false, + "CategoryName": [""], + "Owner": "" "ScopeTagName": "" }, "Program": { "InstallCommand": "Deploy-Application.exe Install", "UninstallCommand": "Deploy-Application.exe Uninstall", "InstallExperience": "system", - "DeviceRestartBehavior": "suppress" + "DeviceRestartBehavior": "suppress", + "MaximumInstallationTimeInMinutes": "60", + "AllowAvailableUninstall": "true" }, "RequirementRule": { "MinimumSupportedWindowsRelease": "W10_22H2", @@ -57,4 +64,4 @@ "RestartNotificationSnoozeInMinutes": "" } ] -} \ No newline at end of file +} diff --git a/Apps/NotepadPlusPlus/App.json b/Apps/NotepadPlusPlus/App.json index d14c9e1..bf9a52f 100644 --- a/Apps/NotepadPlusPlus/App.json +++ b/Apps/NotepadPlusPlus/App.json @@ -12,15 +12,22 @@ "AppVersion": "", "Description": "Install Notepad++", "Publisher": "", + "Developer": "", "Notes": "", - "Owner": "", + "InformationURL": "", + "PrivacyURL": "", + "CompanyPortalFeaturedApp": false, + "CategoryName": [""], + "Owner": "" "ScopeTagName": "" }, "Program": { "InstallCommand": "Deploy-Application.exe Install", "UninstallCommand": "Deploy-Application.exe Uninstall", "InstallExperience": "system", - "DeviceRestartBehavior": "suppress" + "DeviceRestartBehavior": "suppress", + "MaximumInstallationTimeInMinutes": "60", + "AllowAvailableUninstall": "true" }, "RequirementRule": { "MinimumSupportedWindowsRelease": "W10_22H2", @@ -57,4 +64,4 @@ "RestartNotificationSnoozeInMinutes": "" } ] -} \ No newline at end of file +} diff --git a/Apps/VLC/App.json b/Apps/VLC/App.json index c79a98d..5fe4bf0 100644 --- a/Apps/VLC/App.json +++ b/Apps/VLC/App.json @@ -12,15 +12,22 @@ "AppVersion": "", "Description": "Install VLC", "Publisher": "", + "Developer": "", "Notes": "", - "Owner": "", + "InformationURL": "", + "PrivacyURL": "", + "CompanyPortalFeaturedApp": false, + "CategoryName": [""], + "Owner": "" "ScopeTagName": "" }, "Program": { "InstallCommand": "Deploy-Application.exe Install", "UninstallCommand": "Deploy-Application.exe Uninstall", "InstallExperience": "system", - "DeviceRestartBehavior": "suppress" + "DeviceRestartBehavior": "suppress", + "MaximumInstallationTimeInMinutes": "60", + "AllowAvailableUninstall": "true" }, "RequirementRule": { "MinimumSupportedWindowsRelease": "W10_22H2", @@ -54,4 +61,4 @@ "RestartNotificationSnoozeInMinutes": "" } ] -} \ No newline at end of file +} diff --git a/Scripts/New-Win32App.ps1 b/Scripts/New-Win32App.ps1 index 15bb4fb..2bf3af2 100644 --- a/Scripts/New-Win32App.ps1 +++ b/Scripts/New-Win32App.ps1 @@ -13,12 +13,13 @@ Author: Nickolaj Andersen Contact: @NickolajA Created: 2022-04-20 - Updated: 2024-03-04 + Updated: 2024-11-01 Version history: 1.0.0 - (2020-09-26) Script created 1.0.1 - (2023-05-29) Fixed bugs mention in release notes for Intune App Factory 1.0.1 1.0.2 - (2024-03-04) Added support for ScopeTagName parameter, added Assignment handling + 1.0.3 - (2024-11-01) Added support for the parameter CompanyPortalFeaturedApp, CategoryName, Developer, InformationURL, PrivacyURL and MaximumInstallationTimeInMinutes #> [CmdletBinding(SupportsShouldProcess = $true)] param ( @@ -591,15 +592,33 @@ Process { if (-not([string]::IsNullOrEmpty($AppData.Information.Owner))) { $Win32AppArgs.Add("Owner", $AppData.Information.Owner) } + if (-not([string]::IsNullOrEmpty($AppData.Information.Developer))) { + $Win32AppArgs.Add("Developer", $AppData.Information.Developer) + } if (-not([string]::IsNullOrEmpty($AppData.Information.Notes))) { $Win32AppArgs.Add("Notes", $AppData.Information.Notes) } + if (-not([string]::IsNullOrEmpty($AppData.Information.InformationURL))) { + $Win32AppArgs.Add("InformationURL", $AppData.Information.InformationURL) + } + if (-not([string]::IsNullOrEmpty($AppData.Information.PrivacyURL))) { + $Win32AppArgs.Add("PrivacyURL", $AppData.Information.PrivacyURL) + } + if (-not([string]::IsNullOrEmpty($AppData.Information.CompanyPortalFeaturedApp))) { + $Win32AppArgs.Add("CompanyPortalFeaturedApp", [System.Convert]::ToBoolean($AppData.Information.CompanyPortalFeaturedApp)) + } + if (-not([string]::IsNullOrEmpty($AppData.Information.CategoryName))) { + $Win32AppArgs.Add("CategoryName", $AppData.Information.CategoryName) + } if (-not([string]::IsNullOrEmpty($AppData.Program.InstallCommand))) { $Win32AppArgs.Add("InstallCommandLine", $AppData.Program.InstallCommand) } if (-not([string]::IsNullOrEmpty($AppData.Program.UninstallCommand))) { $Win32AppArgs.Add("UninstallCommandLine", $AppData.Program.UninstallCommand) } + if ((-not([string]::IsNullOrEmpty($AppData.Program.MaximumInstallationTimeInMinutes))) -and ($AppData.Program.MaximumInstallationTimeInMinutes -match "^[\d\.]+$") -and ([int]$AppData.Program.MaximumInstallationTimeInMinutes -ge 1) -and ([int]$AppData.Program.MaximumInstallationTimeInMinutes -le 1440)){ + $Win32AppArgs.Add("MaximumInstallationTimeInMinutes", [int]$AppData.Program.MaximumInstallationTimeInMinutes) + } if (-not([string]::IsNullOrEmpty($AppData.Program.AllowAvailableUninstall))) { if ($AppData.Program.AllowAvailableUninstall -eq $true) { $Win32AppArgs.Add("AllowAvailableUninstall", $true) @@ -679,4 +698,4 @@ Process { Write-Output -InputObject "Failed to locate required $($AppsPublishListFileName) file in build artifacts staging directory, aborting pipeline" Write-Output -InputObject "##vso[task.setvariable variable=shouldrun;isOutput=true]false" } -} \ No newline at end of file +}