You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PowerShell中区分不同版本的Visual Studio实例(如2022与2017)

如何在PowerShell中区分不同版本的Visual Studio实例(如2022与2017)

我太懂你这种困扰了——用gps | ? {$_.mainwindowtitle.length -ne 0}查进程,结果只能看到窗口标题,完全分不清哪个是VS2017哪个是2022,想杀挂掉的进程都怕误关了正在干活的那个。别慌,给你两个实用的小方法,轻松把它们区分开:

方法一:通过进程的产品版本号快速识别

Visual Studio每个大版本都对应固定的产品版本段:

  • VS2017的产品版本以15.x开头
  • VS2022的产品版本以17.x开头

运行这条命令,就能同时看到进程ID、窗口标题和对应的产品版本:

Get-Process devenv | Select-Object Id, MainWindowTitle, @{Name='ProductVersion'; Expression={$_.MainModule.FileVersionInfo.ProductVersion}}

一眼就能锁定目标版本的进程,找到要终止的ID后,用Stop-Process -Id [进程ID]就能精准关闭啦。

方法二:通过安装路径直接区分

不同版本的VS安装路径自带年份标识,devenv.exe的位置一瞅就明白:

  • VS2017通常在C:\Program Files (x86)\Microsoft Visual Studio\2017\[你的版本,比如Community]\Common7\IDE\devenv.exe
  • VS2022则在C:\Program Files\Microsoft Visual Studio\2022\[你的版本]\Common7\IDE\devenv.exe

用这条命令查看每个VS进程的启动路径:

Get-Process devenv | ForEach-Object {
    $cmdLine = (Get-CimInstance Win32_Process -Filter "ProcessId = $($_.Id)").CommandLine
    [PSCustomObject]@{
        进程ID = $_.Id
        窗口标题 = $_.MainWindowTitle
        安装路径 = $cmdLine -split 'devenv.exe' | Select-Object -First 1
    }
}

从路径里的2017/2022字样就能立刻分辨版本,是不是超直观?

要是你想直接筛选某个版本的进程,比如只看VS2022,还能这么写:

Get-Process devenv | Where-Object {$_.MainModule.FileVersionInfo.ProductVersion -like '17.*'}

分分钟定位到目标版本的所有实例~

备注:内容来源于stack exchange,提问作者Dazz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 16:44:51