PowerShellを使用してリモートサーバーで.cmdファイルを実行しようとしています。
私の.ps1スクリプトでこれを試しました:
C:\MyDirectory\MyCommand.cmd
次のエラーが発生します。
C:\MyDirectory\MyCommand.cmd is not recognized as the name of a cmdlet,
function, script file, or operable program.
この
Invoke-Command C:\MyDirectory\MyCommand.cmd
このエラーが発生します:
Invoke-Command : Parameter set cannot be resolved using the specified named
parameters.
PowerShellスクリプトにパラメーターを渡す必要はありません。私が探している正しい構文は何ですか?
Invoke-Item
は、ファイルタイプのデフォルトハンドラーを検索し、実行するように指示します。
基本的に、エクスプローラでファイルをダブルクリックするか、start.exe
。
cmd /c C:\MyDirectory\MyCommand.cmd
を呼び出してみてください–これでうまくいくはずです。
C:\ MyDirectoryに移動して、これを試してください。
.\MyCommand.cmd
バッチファイルを実行またはPowerShellに変換するには(特に、スケジュールされたすべてのタスクスクリプトに証明書で署名する場合)、たとえば、deletefolders.ps1などのPowerShellスクリプトを作成します。
スクリプトに次を入力します。
cmd.exe /c "rd /s /q C:\#TEMP\test1"
cmd.exe /c "rd /s /q C:\#TEMP\test2"
cmd.exe /c "rd /s /q C:\#TEMP\test3"
*各コマンドを新しい行に配置して、cmd.exeを再度呼び出す必要があります。
このスクリプトに署名し、PowerShellから実行して、コマンドをコマンドプロンプト/ cmdに直接出力できます。
バッチファイルを実行するよりもはるかに安全な方法です。