我最近才了解到,可以通过这些窗口 CLSID 启动 Windows 10 中的控制面板窗口;到目前为止我找到的唯一列表是https://www.autohotkey.com/docs/v1/misc/CLSID-List.htm,我可以在其中看到:
CLSID 地点 可用性 ::{7007ACC7-3202-11D1-AAD2-00805FC1270E} 网络连接 XP-11
所以,本质上,您所要做的就是在
cmd.exe
中运行它:
start ::{7007ACC7-3202-11D1-AAD2-00805FC1270E}
...并且将启动“控制面板\网络连接”窗口:
所以,我想知道,如何在 PowerShell 中执行相同的操作?
我最接近的,是使用
CreateInstance
和 GetTypeFromCLSID
(通过 this):
PS C:\tmp> $comObject = [Activator]::CreateInstance([type]::GetTypeFromCLSID("{7007ACC7-3202-11D1-AAD2-00805FC1270E}"))
PS C:\tmp> $comObject
System.__ComObject
PS C:\tmp> $comObject | Get-Member
TypeName: System.__ComObject
Name MemberType Definition
---- ---------- ----------
CreateObjRef Method System.Runtime.Remoting.ObjRef CreateObjRef(type requestedType)
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetLifetimeService Method System.Object GetLifetimeService()
GetType Method type GetType()
InitializeLifetimeService Method System.Object InitializeLifetimeService()
ToString Method string ToString()
所以,显然,从 CLSID 创建的对象就在那里 - 但我无法让 window 出现?
那么,如何通过在 PowerShell 中使用其 CLSID
{7007ACC7-3202-11D1-AAD2-00805FC1270E}
来启动/显示“控制面板\网络连接”窗口?
以下内容应该在 powershell.exe 和 cmd.exe 中都能正常工作。
start ms-settings:network
start
是 PowerShell 中 start-process
的别名。
还有这些选项:
start ms-settings:network-cellular
start ms-settings:network-dialup
start ms-settings:network-directaccess
start ms-settings:network-ethernet
start ms-settings:network-mobilehotspot
start ms-settings:network-proxy
start ms-settings:network-status
start ms-settings:network-vpn
start ms-settings:network-wifi
start ms-settings:network-wificalling
start ms-settings:network-wifisettings