2014-11-29 3 views
0

Я использую PowerShell на Windows 8. Я использую эту строку кода ...Поддерживать один экземпляр запуска процесса

start-process -filepath "C:\Program Files\Internet Explorer\iexplore.exe" -argumentlist "-k http://localhost/" 

... чтобы начать IE. Это работает, однако, когда событие запускается несколько раз, открывается несколько экземпляров IE киоска. Как я могу поддерживать один экземпляр IE киоска, а затем закрывать его программно?

Спасибо! :)

ответ

1

Будет ли это работать?

$ie = Get-Process -Name iexplore -ErrorAction SilentlyContinue 

if ($ie -eq $null) 
{ 
    start-process -filepath "C:\Program Files\Internet Explorer\iexplore.exe" -argumentlist "-k http://localhost/" 
} 

Чтобы остановить запущенный экземпляр вы можете сделать это:

$ie = Get-Process -Name iexplore -ErrorAction SilentlyContinue 

if ($ie -ne $null) 
{ 
    $ie | Stop-Process 
} 

EDIT: Вы также можете объединить два, чтобы обеспечить IE не работает, прежде чем начать процесс, и если да, то это будет прекращена:

Get-Process -ErrorAction SilentlyContinue -Name iexplore | Stop-Process -ErrorAction SilentlyContinue 
start-process -filepath "C:\Program Files\Internet Explorer\iexplore.exe" -argumentlist "-k http://localhost/" 
+0

Спасибо! Это работает, если IE не открыт на машине. Я дал вам взнос, но это не совсем отвечает на мой вопрос. – GiantDuck

+0

Это только запустит iexplore, если он не запущен. Вы хотите закрыть его, если он работает, прежде чем запускать новый процесс? Изменен ответ на адрес, который, если это так. –