Как я могу убедиться, что одновременно работает только один экземпляр скрипта? - PullRequest
4 голосов
/ 24 декабря 2010

Предположим, я запускаю скрипт powershell, и он работает в цикле.Я открываю вторую консоль PS и запускаю второй скрипт.В этом скрипте я хочу определить, запущен первый скрипт или нет.Как этого добиться?

Ответы [ 2 ]

4 голосов
/ 24 декабря 2010

Если вы смотрите на открытие 2 отдельных консолей, вам нужно добавить некоторую логику в ваш скрипт, чтобы внести некоторые изменения в файловую систему, реестр или даже строку заголовка сеанса PowerShell, в котором он выполняется.Затем вы можете использовать некоторую логику во второй консоли для поиска этой информации.

Еще один метод, который я обычно использую, - это WMI:

PS>get-wmiobject win32_process|where {$_.name -eq "powershell.exe"}|select-exp commandline

Пример:

CommandLine                : powershell.exe -file "./loop.ps1"

Это означает, что вам нужно вызвать powershell.exe для запуска скрипта.

0 голосов
/ 25 декабря 2010

Когда меня интересуют только процессы на локальном компьютере, я бы использовал

get-process *powershell*

Я тоже хочу получить PowerShell ISE, поэтому подстановочный знак.

...