【问题标题】:Powershell how to get "Start In" information for process started by shortcutPowershell如何获取由快捷方式启动的进程的“开始”信息
【发布时间】:2014-03-18 14:29:52
【问题描述】:

我有一个使用桌面快捷方式启动的进程。 桌面快捷方式在“开始于”字段中有信息。 我想获得该过程的“开始”信息。 这可能吗?我将如何使用 Powershell?

我查看了 Get-Process 和 Get-WMIObject win32_process 返回的属性 但我似乎找不到在哪里可以找到“开始”信息。 TIA

更新

我需要这些信息的原因是我有几个由 py​​thon 运行的程序。我有快捷方式设置来启动这些。快捷目标是:

python.exe my_script.py

但是,计算机上有几个版本的 my_script.py,但没有一个版本位于 PATH 中。我设置了快捷方式的“Start in”属性来控制执行哪个版本的 my_script.py。

我意识到还有其他方法可以更改,以便我可以知道哪个脚本版本正在运行,但是我试图不对现有设置进行更改,并编写一个可以获取此信息的 powershell 脚本。

【问题讨论】:

  • 进程对象实际上没有办法知道这一点。 start in 字段所做的只是设置初始工作目录。该进程可以随意更改工作目录,并且不需要知道它从哪个工作目录开始。这可能是XY问题情况(meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。为什么你觉得你需要这样做?
  • @EBGreen,感谢您的回复,更多信息请查看更新。
  • 我理解您想要维持现状的愿望,但我不确定您想要做的事情是否可行。为什么您需要确切知道正在运行的版本?
  • @EBGreen,感谢您提供的信息。我正在拍摄系统快照以进行后期分析。我正在为多台计算机执行此操作,并寻找任何奇怪的配置,以便对其进行更正。
  • 顺便说一句,在这种情况下,“不可能”是一个有效的答案 :-) 会给我一个请求更改设置的理由。

标签: windows powershell desktop-shortcut


【解决方案1】:

如果您的桌面快捷方式有一个可预测的文件名,比如shortcut.lnk,那么这可能有帮助吗?

$lnkPath = get-childItem .\shortcut.lnk | select -expand fullname
$wsh = New-Object -COM WScript.Shell
$wsh.CreateShortcut($lnkPath).workingDirectory

【讨论】:

  • 感谢您的信息。我对尝试查找单击了哪个快捷方式(即运行了哪个版本的脚本)更感兴趣。但我以后在使用快捷方式时会记住这一点。
猜你喜欢
  • 1970-01-01
  • 2018-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 2011-10-23
  • 1970-01-01
相关资源
最近更新 更多