如何在PowerShell中通过CLSID打开Windows控制面板窗口?
在PowerShell中通过CLSID打开网络连接窗口及特定连接的TCP/IP属性
一、通过CLSID打开网络连接窗口
在PowerShell中,仅创建COM对象不会自动触发窗口显示,你可以用以下两种方法直接调出网络连接窗口:
- 方法1:使用
Start-Process调用CLSID路径
Start-Process "::{7007ACC7-3202-11D1-AAD2-00805FC1270E}"
- 方法2:调用cmd的
start命令
cmd /c start ::{7007ACC7-3202-11D1-AAD2-00805FC1270E}
两种方式均能实现和cmd中执行相同的效果,直接打开控制面板的网络连接窗口。
二、打开特定网络连接的TCP/IP属性
要直接打开指定连接的TCP/IP属性,可通过Shell.Application COM对象结合CLSID实现,步骤如下:
- 创建Shell应用实例并定位到网络连接文件夹
- 筛选出目标网络连接
- 触发属性窗口打开操作
示例代码(将"以太网"替换为你的目标连接名称):
# 创建Shell应用对象 $shell = New-Object -ComObject Shell.Application # 通过CLSID访问网络连接文件夹 $ncFolder = $shell.Namespace("::{7007ACC7-3202-11D1-AAD2-00805FC1270E}") # 查找目标网络连接 $targetConn = $ncFolder.Items() | Where-Object { $_.Name -eq "以太网" } # 打开连接属性窗口 $targetConn.InvokeVerb("Properties")
若需更精准定位到TCP/IPv4属性选项卡,可在属性窗口打开后执行以下命令:
rundll32.exe shell32.dll,Control_RunDLL ncpa.cpl,,{00C6D95F-329C-11D0-879B-00A0C90312E1}
另外,你也可以直接通过目标连接的GUID调用rundll32(连接GUID可在网络连接属性的详细信息中查看):
rundll32.exe shell32.dll,Control_RunDLL ncpa.cpl,,{你的连接GUID}
执行后会直接打开对应连接的属性窗口,手动切换到TCP/IP选项卡即可。
内容的提问来源于stack exchange,提问作者sdbbs
相关产品推荐
相关产品推荐

