Как я могу запустить powershell script в качестве фоновой задачи без отображения окна?

Я работаю над созданием script, который сработает счетчики производительности и сохранит их в CSV файле, перевернувшись, когда файл станет слишком большим. Запуск script из приглашения powershell или ISE (я запускаю v.2/win server 2008) работает нормально, и файлы работают правильно.

Однако, когда я пытаюсь выполнить команду, используя следующую строку подсказки cmd (даже пытаясь переключить /k на cmd), командная строка немедленно закрывается, и файл не запускается.

powershell.exe -windowstyle hidden {iis_test.ps1}

Я также пробовал следующее, и хотя я вижу, что Powershell не останавливается (я отслеживаю его через диспетчер задач, ища Powershell.exe для отображения), я не вижу создаваемый файл.

powershell.exe -noexit -windowstyle hidden {iis_test.ps1}

Я также не вижу ошибок в любом из вероятных мест (средство просмотра событий, само окно командной строки).

Любые идеи? В конечном счете, моя цель состоит в том, чтобы виртуальная игра vb вызывала эти script файлы, и, естественно, я думал, что выяснение команды командной строки было бы полезно. Примечание, что очень важно, чтобы этот script был переносимым и запускался в любой системе Windows 2008 Server (поэтому мне нужно держаться подальше от сторонних объектов, которые потребуют дальнейшей установки).

EDIT: Мне нужно было использовать аргумент -file для указания файла для запуска.

Ответ 1

попробуйте это из оболочки DOS/CMD:

powershell.exe -windowstyle hidden -file C:\iis_test.ps1

Ответ 2

Powershell.exe -windowstyle hidden -file C:\iis_test.ps1

Но когда вы запустите эту команду, появится окно CMD.
Однако вы можете использовать VBscript вместо

Set objShell = CreateObject("WScript.Shell")
objShell.Run "CMD /C START /B " & objShell.ExpandEnvironmentStrings("%SystemRoot%") & "\System32\WindowsPowerShell\v1.0\powershell.exe -file " & "YourScript.ps1", 0, False
Set objShell = Nothing