Skip to content


Switch branches/tags

Latest commit

Co-authored-by: microsoft-github-policy-service[bot] <77245923+microsoft-github-policy-service[bot]>

Git stats


Failed to load latest commit information.

Visual Studio Setup PowerShell Module

build status: master build status: develop github release github releases: all PowerShell Gallery

This PowerShell module contains cmdlets to query instances of Visual Studio 2017 and newer. It also serves as a more useful sample of using the Setup Configuration APIs than the previously published samples though those also have samples using VB and VC++.


With Windows Management Framework 5.0 or newer (which installs PowerShell and comes with Windows 10), or PowerShellGet for PowerShell 3.0 or 4.0, you can download and install this module easily.

Install-Module VSSetup -Scope CurrentUser

To install for all users, pass AllUsers instead of CurrentUser, or just leave the -Scope parameter out of the command entirely.

You can also download the ZIP package from the Releases page on this project site and extract to a directory named VSSetup under a directory in your $env:PSMODULEPATH.

Expand-Archive "$([Environment]::GetFolderPath("MyDocuments"))\WindowsPowerShell\Modules\VSSetup"


You can query all usable instances of Visual Studio and other products installed by the Visual Studio installer.


To get the instance for a specific installation directory, you can run the following.

Get-VSSetupInstance 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community'

If you want to select the latest instance that contains the .NET desktop development workload, you can pipe all instances - usable or not - to Select-VSSetupInstance that provides more fine grain control over which instances you enumerate.

Get-VSSetupInstance -All | Select-VSSetupInstance -Require 'Microsoft.VisualStudio.Workload.ManagedDesktop' -Latest


To file issues or suggestions, please use the Issues page for this project on GitHub.


This project is licensed under the MIT license.

Code of Conduct

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact with any additional questions or comments.