Reputation: 777
I have a PowerShell script that can be started either by
Is there any way within the script itself of identifying how it was started? In practice each method produces a slowly scrolling command window on screen, and once it's running I have no way of knowing how it was initiated. The script already logs some data about itself (name, date, time and $PID) but so far I've not found how to test the launch method i.e. task scheduler or manual run.
Upvotes: 2
Views: 942
Reputation: 438208
A script that is run by Task Scheduler has a parent process whose name is svchost
, so you can use the following code in your script to detect this:
'svchost' -eq (Get-Process -Id (Get-CimInstance Win32_Process -Filter "ProcessID = $pid").ParentProcessId).Name
Upvotes: 2