我找到了如何从 PowerShell 打开运行对话框:
(New-Object -ComObject "Shell.Application").FileRun()
我知道如何从那里运行 PowerShell 命令,并且我知道从运行对话框运行命令与从命令提示符或 PowerShell 运行命令之间的区别。
话虽如此,我的问题是:我怎样才能执行从 PowerShell 的运行对话框中运行的命令?
shell:common startup
具体来说,我感兴趣的是获取从运行对话框运行时打开的位置,但是要从 PowerShell 脚本中获取它。
我想到了:
Join-Path -Path ([io.path]::GetFullPath($env:AllUsersProfile)) -ChildPath 'Microsoft\Windows\Start Menu\Programs\StartUp'
但这似乎对内部的路径做出了太多假设$env:AllUsersProfile
,而且我不确定该子路径是否适用于任何机器,或者是否会有变化。
理想情况下,我只想获取使用的位置shell:common startup
,但如果这不可能,我想知道确定通用启动文件夹的正确方法是什么。
(注意:从技术上讲,我不需要知道如何运行Run...
对话框中的命令,因为这样做只会在该位置打开文件管理器,显然我只想要该位置作为一个字符串。)
答案1
设法部分回答了我自己的问题。
获取通用启动文件夹:
[Environment]::GetFolderPath([Environment+SpecialFolder]::CommonStartup)
但是,我仍然有兴趣了解是否有办法直接从 PowerShell 执行“运行...”对话框命令,即使我不需要它来解决我的具体问题。
以上适用于任何 CSIDL 名称,或者更确切地说是SpecialFolder
名称,如下所示:https://learn.microsoft.com/en-us/dotnet/api/system.environment.specialfolder?redirectedfrom=MSDN&view=net-6.0