Skip to content

Commit d5b148c

Browse files
committed
1.1.0
1 parent 510a454 commit d5b148c

20 files changed

+1344
-216
lines changed

Apps/7Zip/App.json

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,17 @@
44
"SetupFile": "Deploy-Application.exe",
55
"SourceFolder": "Source",
66
"OutputFolder": "Package",
7-
"IconFile": "Icon.png"
7+
"IconFile": "",
8+
"IconURL": "https://mseazdevopsapps.blob.core.windows.net/icons/7Zip.png"
89
},
910
"Information": {
1011
"DisplayName": "<replaced_by_pipeline>",
1112
"AppVersion": "<replaced_by_pipeline>",
1213
"Description": "Install 7-Zip",
1314
"Publisher": "<replaced_by_pipeline>",
1415
"Notes": "",
15-
"Owner": ""
16+
"Owner": "",
17+
"ScopeTagName": ""
1618
},
1719
"Program": {
1820
"InstallCommand": "Deploy-Application.exe Install",
@@ -36,5 +38,23 @@
3638
"Value": "<replaced_by_pipeline>",
3739
"Check32BitOn64System": "false"
3840
}
41+
],
42+
"Assignment": [
43+
{
44+
"Type": "VirtualGroup",
45+
"GroupName": "AllDevices",
46+
"Intent": "available",
47+
"Notification": "showAll",
48+
"UseLocalTime": true,
49+
"FilterName": "",
50+
"FilterMode": "",
51+
"AvailableTime": "",
52+
"DeadlineTime": "",
53+
"DeliveryOptimizationPriority": "",
54+
"EnableRestartGracePeriod": "",
55+
"RestartGracePeriodInMinutes": "",
56+
"RestartCountDownDisplayInMinutes": "",
57+
"RestartNotificationSnoozeInMinutes": ""
58+
}
3959
]
4060
}

Apps/NotepadPlusPlus/App.json

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,17 @@
44
"SetupFile": "Deploy-Application.exe",
55
"SourceFolder": "Source",
66
"OutputFolder": "Package",
7-
"IconFile": "Icon.png"
7+
"IconFile": "Icon.png",
8+
"IconURL": ""
89
},
910
"Information": {
1011
"DisplayName": "<replaced_by_pipeline>",
1112
"AppVersion": "<replaced_by_pipeline>",
1213
"Description": "Install Notepad++",
1314
"Publisher": "<replaced_by_pipeline>",
1415
"Notes": "",
15-
"Owner": ""
16+
"Owner": "",
17+
"ScopeTagName": ""
1618
},
1719
"Program": {
1820
"InstallCommand": "Deploy-Application.exe Install",
@@ -21,7 +23,7 @@
2123
"DeviceRestartBehavior": "suppress"
2224
},
2325
"RequirementRule": {
24-
"MinimumSupportedWindowsRelease": "W10_21H2",
26+
"MinimumSupportedWindowsRelease": "W10_22H2",
2527
"Architecture": "x64"
2628
},
2729
"CustomRequirementRule": [
@@ -36,5 +38,23 @@
3638
"Value": "<replaced_by_pipeline>",
3739
"Check32BitOn64System": "false"
3840
}
41+
],
42+
"Assignment": [
43+
{
44+
"Type": "VirtualGroup",
45+
"GroupName": "AllDevices",
46+
"Intent": "available",
47+
"Notification": "showAll",
48+
"UseLocalTime": true,
49+
"FilterName": "",
50+
"FilterMode": "",
51+
"AvailableTime": "",
52+
"DeadlineTime": "",
53+
"DeliveryOptimizationPriority": "",
54+
"EnableRestartGracePeriod": "",
55+
"RestartGracePeriodInMinutes": "",
56+
"RestartCountDownDisplayInMinutes": "",
57+
"RestartNotificationSnoozeInMinutes": ""
58+
}
3959
]
4060
}

Apps/VLC/App.json

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
{
2+
"PackageInformation": {
3+
"SetupType": "EXE",
4+
"SetupFile": "Deploy-Application.exe",
5+
"SourceFolder": "Source",
6+
"OutputFolder": "Package",
7+
"IconFile": "Icon.png",
8+
"IconURL": ""
9+
},
10+
"Information": {
11+
"DisplayName": "<replaced_by_pipeline>",
12+
"AppVersion": "<replaced_by_pipeline>",
13+
"Description": "Install VLC",
14+
"Publisher": "<replaced_by_pipeline>",
15+
"Notes": "",
16+
"Owner": "",
17+
"ScopeTagName": ""
18+
},
19+
"Program": {
20+
"InstallCommand": "Deploy-Application.exe Install",
21+
"UninstallCommand": "Deploy-Application.exe Uninstall",
22+
"InstallExperience": "system",
23+
"DeviceRestartBehavior": "suppress"
24+
},
25+
"RequirementRule": {
26+
"MinimumSupportedWindowsRelease": "W10_22H2",
27+
"Architecture": "x64"
28+
},
29+
"CustomRequirementRule": [
30+
],
31+
"DetectionRule": [
32+
{
33+
"Type": "MSI",
34+
"ProductCode": "<replaced_by_pipeline>",
35+
"ProductVersionOperator": "greaterThanOrEqual",
36+
"ProductVersion": "<replaced_by_pipeline>"
37+
}
38+
],
39+
"Assignment": [
40+
{
41+
"Type": "VirtualGroup",
42+
"GroupName": "AllDevices",
43+
"Intent": "available",
44+
"Notification": "showAll",
45+
"UseLocalTime": true,
46+
"FilterName": "",
47+
"FilterMode": "",
48+
"AvailableTime": "",
49+
"DeadlineTime": "",
50+
"DeliveryOptimizationPriority": "",
51+
"EnableRestartGracePeriod": "",
52+
"RestartGracePeriodInMinutes": "",
53+
"RestartCountDownDisplayInMinutes": "",
54+
"RestartNotificationSnoozeInMinutes": ""
55+
}
56+
]
57+
}

Apps/VLC/Deploy-Application.ps1

Lines changed: 218 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,218 @@
1+
<#
2+
.SYNOPSIS
3+
This script performs the installation or uninstallation of an application(s).
4+
# LICENSE #
5+
PowerShell App Deployment Toolkit - Provides a set of functions to perform common application deployment tasks on Windows.
6+
Copyright (C) 2017 - Sean Lillis, Dan Cunningham, Muhammad Mashwani, Aman Motazedian.
7+
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
8+
You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
9+
.DESCRIPTION
10+
The script is provided as a template to perform an install or uninstall of an application(s).
11+
The script either performs an "Install" deployment type or an "Uninstall" deployment type.
12+
The install deployment type is broken down into 3 main sections/phases: Pre-Install, Install, and Post-Install.
13+
The script dot-sources the AppDeployToolkitMain.ps1 script which contains the logic and functions required to install or uninstall an application.
14+
.PARAMETER DeploymentType
15+
The type of deployment to perform. Default is: Install.
16+
.PARAMETER DeployMode
17+
Specifies whether the installation should be run in Interactive, Silent, or NonInteractive mode. Default is: Interactive. Options: Interactive = Shows dialogs, Silent = No dialogs, NonInteractive = Very silent, i.e. no blocking apps. NonInteractive mode is automatically set if it is detected that the process is not user interactive.
18+
.PARAMETER AllowRebootPassThru
19+
Allows the 3010 return code (requires restart) to be passed back to the parent process (e.g. SCCM) if detected from an installation. If 3010 is passed back to SCCM, a reboot prompt will be triggered.
20+
.PARAMETER TerminalServerMode
21+
Changes to "user install mode" and back to "user execute mode" for installing/uninstalling applications for Remote Destkop Session Hosts/Citrix servers.
22+
.PARAMETER DisableLogging
23+
Disables logging to file for the script. Default is: $false.
24+
.EXAMPLE
25+
powershell.exe -Command "& { & '.\Deploy-Application.ps1' -DeployMode 'Silent'; Exit $LastExitCode }"
26+
.EXAMPLE
27+
powershell.exe -Command "& { & '.\Deploy-Application.ps1' -AllowRebootPassThru; Exit $LastExitCode }"
28+
.EXAMPLE
29+
powershell.exe -Command "& { & '.\Deploy-Application.ps1' -DeploymentType 'Uninstall'; Exit $LastExitCode }"
30+
.EXAMPLE
31+
Deploy-Application.exe -DeploymentType "Install" -DeployMode "Silent"
32+
.NOTES
33+
Toolkit Exit Code Ranges:
34+
60000 - 68999: Reserved for built-in exit codes in Deploy-Application.ps1, Deploy-Application.exe, and AppDeployToolkitMain.ps1
35+
69000 - 69999: Recommended for user customized exit codes in Deploy-Application.ps1
36+
70000 - 79999: Recommended for user customized exit codes in AppDeployToolkitExtensions.ps1
37+
.LINK
38+
http://psappdeploytoolkit.com
39+
#>
40+
[CmdletBinding()]
41+
Param (
42+
[Parameter(Mandatory=$false)]
43+
[ValidateSet('Install','Uninstall')]
44+
[string]$DeploymentType = 'Install',
45+
[Parameter(Mandatory=$false)]
46+
[ValidateSet('Interactive','Silent','NonInteractive')]
47+
[string]$DeployMode = 'Interactive',
48+
[Parameter(Mandatory=$false)]
49+
[switch]$AllowRebootPassThru = $false,
50+
[Parameter(Mandatory=$false)]
51+
[switch]$TerminalServerMode = $false,
52+
[Parameter(Mandatory=$false)]
53+
[switch]$DisableLogging = $false
54+
)
55+
56+
Try {
57+
## Set the script execution policy for this process
58+
Try { Set-ExecutionPolicy -ExecutionPolicy 'ByPass' -Scope 'Process' -Force -ErrorAction 'Stop' } Catch {}
59+
60+
##*===============================================
61+
##* VARIABLE DECLARATION
62+
##*===============================================
63+
## Variables: Main Application
64+
[string]$appVendor = '###APPPUBLISHER###'
65+
[string]$appName = '###INTUNEAPPNAME###'
66+
[string]$appVersion = '###VERSION###'
67+
[string]$appArch = ''
68+
[string]$appLang = ''
69+
## Variables: Additional applications
70+
## - Not required
71+
## Variables: Application package details
72+
[string]$appRevision = '1.0'
73+
[string]$appScriptVersion = '3.7.0'
74+
[string]$appScriptDate = '###DATETIME###'
75+
[string]$appScriptAuthor = 'IntuneAppFactory'
76+
##*===============================================
77+
## Variables: Install Titles (Only set here to override defaults set by the toolkit)
78+
[string]$installName = ''
79+
[string]$installTitle = ''
80+
81+
##* Do not modify section below
82+
#region DoNotModify
83+
84+
## Variables: Exit Code
85+
[int32]$mainExitCode = 0
86+
87+
## Variables: Script
88+
[string]$deployAppScriptFriendlyName = 'Deploy Application'
89+
[version]$deployAppScriptVersion = [version]'3.7.0'
90+
[string]$deployAppScriptDate = '02/13/2018'
91+
[hashtable]$deployAppScriptParameters = $psBoundParameters
92+
93+
## Variables: Environment
94+
If (Test-Path -LiteralPath 'variable:HostInvocation') { $InvocationInfo = $HostInvocation } Else { $InvocationInfo = $MyInvocation }
95+
[string]$scriptDirectory = Split-Path -Path $InvocationInfo.MyCommand.Definition -Parent
96+
97+
## Dot source the required App Deploy Toolkit Functions
98+
Try {
99+
[string]$moduleAppDeployToolkitMain = "$scriptDirectory\AppDeployToolkit\AppDeployToolkitMain.ps1"
100+
If (-not (Test-Path -LiteralPath $moduleAppDeployToolkitMain -PathType 'Leaf')) { Throw "Module does not exist at the specified location [$moduleAppDeployToolkitMain]." }
101+
If ($DisableLogging) { . $moduleAppDeployToolkitMain -DisableLogging } Else { . $moduleAppDeployToolkitMain }
102+
}
103+
Catch {
104+
If ($mainExitCode -eq 0){ [int32]$mainExitCode = 60008 }
105+
Write-Error -Message "Module [$moduleAppDeployToolkitMain] failed to load: `n$($_.Exception.Message)`n `n$($_.InvocationInfo.PositionMessage)" -ErrorAction 'Continue'
106+
## Exit the script, returning the exit code to SCCM
107+
If (Test-Path -LiteralPath 'variable:HostInvocation') { $script:ExitCode = $mainExitCode; Exit } Else { Exit $mainExitCode }
108+
}
109+
110+
#endregion
111+
##* Do not modify section above
112+
##*===============================================
113+
##* END VARIABLE DECLARATION
114+
##*===============================================
115+
116+
If ($deploymentType -ine 'Uninstall') {
117+
##*===============================================
118+
##* PRE-INSTALLATION
119+
##*===============================================
120+
[string]$installPhase = 'Pre-Installation'
121+
122+
## Show Welcome Message, close Internet Explorer if required, allow up to 3 deferrals, verify there is enough disk space to complete the install, and persist the prompt
123+
#Show-InstallationWelcome -CloseApps 'iexplore' -AllowDefer -DeferTimes 3 -CheckDiskSpace -PersistPrompt
124+
125+
## Show Progress Message (with the default message)
126+
#Show-InstallationProgress
127+
128+
## <Perform Pre-Installation tasks here>
129+
130+
## SAMPLE: Uninstall any previous versions of application by calling the command from Uninstall-string
131+
Remove-MSIApplications -Name "VLC"
132+
133+
## SAMPLE: Uninstall any previous versions of application by referencing the product code and call msiexec /x <product_code>
134+
#Remove-MSIApplicationsEx -Name "<App_Display_Name>"
135+
136+
##*===============================================
137+
##* INSTALLATION
138+
##*===============================================
139+
[string]$installPhase = 'Installation'
140+
141+
## Handle Zero-Config MSI Installations
142+
If ($useDefaultMsi) {
143+
[hashtable]$ExecuteDefaultMSISplat = @{ Action = 'Install'; Path = $defaultMsiFile }; If ($defaultMstFile) { $ExecuteDefaultMSISplat.Add('Transform', $defaultMstFile) }
144+
Execute-MSI @ExecuteDefaultMSISplat; If ($defaultMspFiles) { $defaultMspFiles | ForEach-Object { Execute-MSI -Action 'Patch' -Path $_ } }
145+
}
146+
147+
## ***********************<PERFORM INSTALLATION TASK HERE>********************
148+
149+
$msiInstall = "###SETUPFILENAME###"
150+
Execute-MSI -Action "Install" -Path "$($dirFiles)\$($msiInstall)" -Parameters "/qn REBOOT=ReallySuppress"
151+
152+
##*===============================================
153+
##* POST-INSTALLATION
154+
##*===============================================
155+
[string]$installPhase = 'Post-Installation'
156+
157+
## <Perform Post-Installation tasks here>
158+
159+
## Display a message at the end of the install
160+
#If (-not $useDefaultMsi) { Show-InstallationPrompt -Message 'You can customize text to appear at the end of an install or remove it completely for unattended installations.' -ButtonRightText 'OK' -Icon Information -NoWait }
161+
}
162+
ElseIf ($deploymentType -ieq 'Uninstall')
163+
{
164+
##*===============================================
165+
##* PRE-UNINSTALLATION
166+
##*===============================================
167+
[string]$installPhase = 'Pre-Uninstallation'
168+
169+
## Show Welcome Message, close Internet Explorer with a 60 second countdown before automatically closing
170+
#Show-InstallationWelcome -CloseApps 'iexplore' -CloseAppsCountdown 60
171+
172+
## Show Progress Message (with the default message)
173+
#Show-InstallationProgress
174+
175+
## <Perform Pre-Uninstallation tasks here>
176+
177+
##*===============================================
178+
##* UNINSTALLATION
179+
##*===============================================
180+
[string]$installPhase = 'Uninstallation'
181+
182+
## Handle Zero-Config MSI Uninstallations
183+
If ($useDefaultMsi) {
184+
[hashtable]$ExecuteDefaultMSISplat = @{ Action = 'Uninstall'; Path = $defaultMsiFile }; If ($defaultMstFile) { $ExecuteDefaultMSISplat.Add('Transform', $defaultMstFile) }
185+
Execute-MSI @ExecuteDefaultMSISplat
186+
}
187+
188+
# ***********************<PERFORM UN-INSTALLATION TASK HERE>********************
189+
190+
## SAMPLE: Uninstall any previous versions of application by calling the command from Uninstall-string
191+
Remove-MSIApplications -Name "VLC"
192+
193+
## SAMPLE: Uninstall any previous versions of application by referencing the product code and call msiexec /x <product_code>
194+
#Execute-MSI -Action "Uninstall" -Path "<Product_GUID>"
195+
196+
##*===============================================
197+
##* POST-UNINSTALLATION
198+
##*===============================================
199+
[string]$installPhase = 'Post-Uninstallation'
200+
201+
## <Perform Post-Uninstallation tasks here>
202+
203+
}
204+
205+
##*===============================================
206+
##* END SCRIPT BODY
207+
##*===============================================
208+
209+
## Call the Exit-Script function to perform final cleanup operations
210+
Exit-Script -ExitCode $mainExitCode
211+
}
212+
Catch {
213+
[int32]$mainExitCode = 60001
214+
[string]$mainErrorMessage = "$(Resolve-Error)"
215+
Write-Log -Message $mainErrorMessage -Severity 3 -Source $deployAppScriptFriendlyName
216+
Show-DialogBox -Text $mainErrorMessage -Icon 'Stop'
217+
Exit-Script -ExitCode $mainExitCode
218+
}

Apps/VLC/Icon.png

878 KB
Loading

0 commit comments

Comments
 (0)