Skip to content

Instantly share code, notes, and snippets.

@ArturKarbone
Last active October 9, 2025 08:30
Show Gist options
  • Select an option

  • Save ArturKarbone/92cec5c72bf2a7dd53263b90d77b3f1c to your computer and use it in GitHub Desktop.

Select an option

Save ArturKarbone/92cec5c72bf2a7dd53263b90d77b3f1c to your computer and use it in GitHub Desktop.
provision-dev-env.ps1
# Ensure winget is available
if (-not (Get-Command "winget" -ErrorAction SilentlyContinue)) {
Write-Error "winget is not installed. Please install from Microsoft Store: App Installer"
exit 1
}
Write-Output "Installing development tools..."
# Package list
$apps = @(
@{ name = "Microsoft.VisualStudio.2022.Professional" }, # Visual Studio 2022 Professional
@{ name = "Microsoft.VisualStudio.2022.Community" }, # Visual Studio 2022 Community
@{ name = "Microsoft.VisualStudioCode" }, # VS Code
@{ name = "JetBrains.Rider" }, # JetBrains Rider
@{ name = "Git.Git" }, # Git
@{ name = "Microsoft.SQLServerManagementStudio.21" },
# @{ name = "Microsoft.SQLServerManagementStudio" }, # SSMS
# @{ name = "Microsoft.SQLServer.2019.Developer" }, # SQL Server Developer
@{ name = "Docker.DockerDesktop" }, # Docker Desktop
@{ name = "RedHat.Podman-Desktop" }, # Podman Desktop
@{ name = "Microsoft.SQLServer.2019.Express" }, # SQL Server Express 2019
@{ name = "Microsoft.SQLServer.2022.Express"}, # SQL Server Express 2022
@{ name = "Microsoft.AzureDataStudio" }, # Azure Data Studio
@{ name = "Microsoft.DotNet.SDK.5" }, # .NET SDK 5
@{ name = "Microsoft.DotNet.SDK.6" }, # .NET SDK 6
@{ name = "Microsoft.DotNet.SDK.7" }, # .NET SDK 7
@{ name = "Microsoft.DotNet.SDK.8" }, # .NET SDK 8
@{ name = "Microsoft.DotNet.SDK.9" }, # .NET SDK 9
@{ name = "Microsoft.DotNet.SDK.10" }, # .NET SDK 10 (preview if not GA yet)
@{ name = "Apache.OpenOffice" }, # Open Office
@{ name = "Obsidian.Obsidian" } # Obsidian
)
foreach ($app in $apps) {
Write-Output "Installing $($app.name)..."
winget install --id $app.name --silent --accept-package-agreements --accept-source-agreements
}
# Optional: Configure Git (example)
Write-Output "Configuring Git..."
# git config --global user.name "Your Name"
# git config --global user.email "you@example.com"
# git config --global core.autocrlf true
# git config --global init.defaultBranch main
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment