Я пытаюсь программно определить, работает ли скрипт .ps1 явно или нет. Если он работает явно, он должен перезапустить себя скрытым. Если он уже скрыт, не предпринимайте никаких действий.Определить, работает ли скрипт скрытым
Проблема у меня есть цикл, где он постоянно перезагружается, потому что скрытый статус не может быть определен.
Я рассматривал как командлет get-process, так и GWMI Win32_process и не вижу ничего как свойство .visible для проверки статуса.
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)
}
Любая идея, какое поле я могу, если -eq против ???
или, может быть, мой вопрос, как я получаю - установите WindowStyle из работающего процесса из powershell, чтобы мне не пришлось повторно ссылаться. –
Я бы использовал два сценария. Один из них был бы пусковой установкой, а другой - основным сценарием. Это значительно упростит работу, особенно для отладки. По-моему, лучше быть прямым, чем умным. Тем не менее, вам все же нужно будет определить, работает ли основной скрипт. Я бы использовал объект Семафор Windows. Но это другой вопрос, поэтому я не буду здесь отвечать. Если вы задали этот вопрос («Как определить, работает ли скрипт PowerShell»), я мог бы ответить на него. –
Я специально пытаюсь избежать второго файла. –