Garantir apenas 1 instância do Script do PowerShell em execução em um determinado momento

Estou escrevendo um script em lote no PowerShell v1 que será agendado para ser executado digamos uma vez a cada minuto. Inevitavelmente, chegará um momento em que o trabalho precisa de mais de 1 minuto para ser concluído e agora temos duas instâncias do script em execução e, possivelmente, 3, etc ...

Eu quero evitar isso tendo o próprio script verificar se há uma instância de si mesmo em execução e, em caso afirmativo, o script sai.

Eu fiz isso em outros idiomas no Linux, mas nunca fiz isso no Windows com o PowerShell.

Por exemplo, em PHP eu posso fazer algo como:

exec("ps auxwww|grep mybatchscript.php|grep -v grep", $output);
if($output){exit;}

Existe algo parecido com isso no PowerShell v1? Eu não encontrei nada assim ainda.

Fora desses padrões comuns, qual deles faz mais sentido com um script do PowerShell sendo executado com frequência?

Arquivo de bloqueioAgendador de Tarefas do SOLoop infinito com um intervalo de sono

questionAnswers(6)

yourAnswerToTheQuestion