プログラムとしてpowershell.exeを使用しており、「-Command "& C:\Windows\logon.ps1; exit $LASTEXITCODE"; ExecutionPolicy RemoteSigned
"をパラメータとして使用していますが、機能していないようです。
私が欲しいいくつかのこと:
タスクスケジューラで結果を取得するので、すべてが正常に機能したかどうか、またはエラーが発生したかどうかを知ることができます
スクリプトの出力をoutput.txtファイルに取得します(増分ファイルは可能ですか?)
非表示のスクリプトを実行する
あなたがあなたの質問で-を忘れたかどうかはわかりませんが、それは-ExecutionPolicy
です。そのスクリプトが署名されていない場合、そのスクリプトも実行されません。実行ポリシーとしてbypass
を使用して、それを除外できます。
コマンドラインでスクリプトやコマンドを次々に実行できるとは思えません。スクリプトにexit $LASTEXITCODE
を追加し、-File C:\script.ps1
で実行します。
run hiddenでコンソールウィンドウがないことを意味する場合、私は通常、スクリプトを次のように呼び出します。
powershell.exe -noprofile -executionpolicy bypass -file C:\script.ps1
窓は決して見えません。
スクリプトの出力をファイルに取り込むには、コマンドをTee-Object
にパイプします。
"Hello World" | Tee-Object C:\output.file
ファイルに任意の名前を付けたり、スクリプトにロジックを実装してファイル名をインクリメントしたり、(私の個人的なお気に入り)ファイル名にYYYYMMddhhmmssを使用したりできます。
更新
また、Powershellの MicrosoftのTechnetページ から取得:
スクリプトブロックは中括弧({})で囲む必要があります。 WindowsPowerShellでPowerShell.exeを実行している場合にのみスクリプトブロックを指定する。スクリプトの結果は、ライブオブジェクトではなく、逆シリアル化されたXMLオブジェクトとして親シェルに返されます。
Commandの値が文字列の場合、コマンドの後に入力された文字はすべてコマンド引数として解釈されるため、コマンドはコマンドの最後のパラメーターである必要があります。