5

Я использую powershell.exe в качестве Программы и " -Command "& C:\Windows\logon.ps1; exit $LASTEXITCODE"; ExecutionPolicy RemoteSigned " в качестве параметра, но, похоже, он не работает.

Некоторые вещи, которые я хотел бы:

  1. получить результат в планировщике задач, чтобы я мог знать, все ли работает нормально или были ошибки

  2. получить вывод скрипта в файл output.txt (возможен инкрементный файл?)

  3. запустить скрипт скрытый

1 ответ1

2

Я не знаю, если вы забыли - в вашем вопросе, но это -ExecutionPolicy . Если этот сценарий не подписан, он также не будет выполнять этот сценарий, вы можете использовать bypass как политику выполнения, чтобы исключить это.

Я сомневаюсь, что вы можете запускать скрипты и команды одну за другой в командной строке. Добавьте exit $LASTEXITCODE в скрипт и запустите его с -File C:\script.ps1 .

Если под управлением скрытого вы подразумеваете отсутствие окна консоли, я обычно называю свои сценарии как

powershell.exe -noprofile -executionpolicy bypass -file C:\script.ps1

и никогда не вижу окна.

Чтобы получить вывод вашего скрипта в файл, направьте ваши команды в Tee-Object

"Hello World" | Tee-Object C:\output.file

Вы можете назвать файл как угодно, реализовать логику в своем скрипте так, чтобы имя файла увеличивалось, или - мой личный фаворит - использовать YYYYMMddhhmmss в имени файла.


Обновить

Также взято с технической страницы Microsoft на Powershell:

Блоки скрипта должны быть заключены в фигурные скобки ({}). Вы можете указать блок скрипта только при запуске PowerShell.exe в Windows PowerShell. Результаты сценария возвращаются в родительскую оболочку в виде десериализованных объектов XML, а не живых объектов.

Если значение Command является строкой, команда должна быть последним параметром в команде, потому что любые символы, введенные после команды, интерпретируются как аргументы команды.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .