-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinstall-apps.ps1
More file actions
84 lines (78 loc) · 2.83 KB
/
install-apps.ps1
File metadata and controls
84 lines (78 loc) · 2.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope currentuser
Clear-Host
# Check for Winget
if ($null -eq (Get-Command "winget" -ErrorAction SilentlyContinue))
{
Write-Host "Unable to find winget. Please install via Windows Store"
}
# Configure WinGet
Write-Output "Configuring winget"
#winget config path from: https://github.com/microsoft/winget-cli/blob/master/doc/Settings.md#file-location
$settingsPath = "$env:LOCALAPPDATA\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json";
$settingsJson =
@"
{
"installBehavior": {
"preferences": {
"scope": "user"
},
"portablePackageUserRoot": "C:/Users/marti/Apps/Packages",
"defaultInstallRoot": "C:/Users/marti/Apps/Packages",
"portablePackageMachineRoot": "C:/Users/marti/Apps/Packages"
},
}
"@;
$settingsJson | Out-File $settingsPath -Encoding utf8
# Install apps
Write-Output "Installing Apps"
$apps = @(
@{name = "Microsoft.PowerToys" },
@{name = "Slack"; source = "msstore" },
@{name = "Microsoft Teams"; source = "msstore" },
@{name = "Enpass Password Manager"; source = "msstore" },
@{name = "AgileBits.1Password" },
@{name = "bitwarden"; source = "msstore" },
@{name = "OpenWhisperSystems.Signal" },
@{name = "Notion.Notion" },
@{name = "Toggl Track"; source = "msstore" },
@{name = "VideoLAN.VLC" },
@{name = "7zip.7zip" },
@{name = "Valve.Steam" },
@{name = "Ubisoft.Connect" },
@{name = "EpicGames.EpicGamesLauncher" },
@{name = "Telegram.TelegramDesktop" },
@{name = "Spotify"; source = "msstore" },
@{name = "Microsoft.VisualStudioCode" },
@{name = "JetBrains.Toolbox" },
@{name = "HeidiSQL.HeidiSQL" },
@{name = "Microsoft.PowerShell" },
@{name = "Windows Terminal"; source = "msstore" },
@{name = "Docker.DockerDesktop" },
@{name = "Microsoft.DotNet.SDK.7" },
@{name = "OpenJS.NodeJS" },
@{name = "Axosoft.GitKraken" },
@{name = "Git.Git" },
@{name = "JanDeDobbeleer.OhMyPosh" },
@{name = "Synology.DriveClient" },
@{name = "Canneverbe.CDBurnerXP" },
@{name = "SpotiFlyer" },
@{name = "Office (Microsoft 365)"; source = "msstore" },
@{name = "Adobe Creative Cloud"; source = "msstore" },
@{name = "Disney+"; source = "msstore" },
@{name = "fre:ac - free audio converter"; source = "msstore" }
);
Foreach ($app in $apps) {
$listApp = winget list --exact -q $app.name
if (![String]::Join("", $listApp).Contains($app.name)) {
Write-host "Installing:" $app.name
if ($app.source -ne $null) {
winget install --silent $app.name --source $app.source
}
else {
winget install --exact --silent $app.name
}
}
else {
Write-host "Skipping Install of " $app.name
}
}