如何测试什么启动了 powershell 脚本

How to test what started a powershell script

我有一个 PowerShell 脚本,可以通过

启动

脚本本身是否有任何方法可以识别它是如何启动的?在实践中,每种方法都会在屏幕上生成一个缓慢滚动的命令 window,一旦它 运行ning 我就无法知道它是如何启动的。该脚本已经记录了一些关于自身的数据(名称、日期、时间和 $PID),但到目前为止我还没有找到如何测试启动方法,即任务调度程序或手动 运行.

Task Scheduler 运行 的脚本有一个名称为 svchost 的父进程,因此您可以在脚本中使用以下代码来检测:

'svchost' -eq (Get-Process -Id (Get-CimInstance Win32_Process -Filter "ProcessID = $pid").ParentProcessId).Name