Determine si el script se está ejecutando oculto

Estoy tratando de determinar mediante programación si un script .ps1 se está ejecutando de forma visible o no. Si se está ejecutando visiblemente, debería reiniciarse oculto. Si ya está oculto, no realice ninguna acción.

El problema que tengo es un bucle en el que se reinicia continuamente porque no se puede determinar el estado oculto.

He estado viendo tanto el cmdlet get-process como el GWMI Win32_process y no veo nada como una propiedad .visible para verificar el estado.

    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)
}

¿Alguna idea de qué campo puedo si -eq contra ???

Respuestas a la pregunta(4)

Su respuesta a la pregunta