Bestimmen Sie, ob das Skript ausgeblendet ausgeführt wird

Ich versuche programmgesteuert festzustellen, ob ein .ps1-Skript sichtbar ausgeführt wird oder nicht. Wenn es sichtbar läuft, sollte es sich versteckt neu starten. Wenn es bereits ausgeblendet ist, führen Sie keine Aktion aus.

Das Problem, das ich habe, ist eine Schleife, in der es sich ständig neu startet, weil der versteckte Status nicht bestimmt werden kann.

Ich habe sowohl das Cmdlet get-process als auch GWMI Win32_process untersucht und sehe nichts Vergleichbares wie eine .visible-Eigenschaft, um den Status zu überprüfen.

    If ($me -eq visible ???)
{
$Invisible = New-Object System.Diagnostics.ProcessStartInfo
$Invisible.FileName = "PowerShell.exe"
$Invisible.windowStyle ="Hidden"
$Invisible.arguments = "$myInvocation.MyCommand.Definition"
$Invisible.Verb = 'runas'
[System.Diagnostics.Process]::Start($Invisible)
}

Irgendeine Idee, gegen welches Feld ich mich wenden kann, wenn -eq ???

Antworten auf die Frage(4)

Ihre Antwort auf die Frage