PowerShell 访问运行对话框命令或公共启动文件夹

PowerShell 访问运行对话框命令或公共启动文件夹

我找到了如何从 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

相关内容