2

次のようにして、ローカル マシンから別のドメイン内のサーバーに対してリモート PowerShell コマンドを実行できます。

Invoke-Command -ComputerName serverName -ScriptBlock {Get-Process} -Credential $credential

ただし、これは何らかの理由でこのデフォルトディレクトリで実行されます-c:\users\username\documents

私の実際の状況は少し異なります。ここに PowerShell スクリプト ( Test.ps1) があります。

C:\Data\Shared\Installation

このスクリプトをリモートで実行したい。ScriptBlock 内でさまざまなことを試しましたが、常にエラーが発生します。構文の問題のようです。たとえば、私はこれを試しました:

Invoke-Command -ComputerName serverName -ScriptBlock {cd "C:\Data\Shared\Installation" ./Test.ps1} -Credential $credential

しかし、これにより次のエラーが発生します

A positional parameter cannot be found that accepts argument './Test.ps1'.

これに関する助けが必要です。ありがとう。

編集

ここに画像の説明を入力

編集 2

はい、コメントに感謝します(現在は消えています)-パスの後にセミコロンを置くと機能します。助けてくれてありがとう。

4

1 に答える 1

5

スクリプトブロックで複数のコマンドを実行する必要がある場合は、改行またはセミコロンを使用してそれらを区切る必要があります;。試す:

Invoke-Command -ComputerName serverName -ScriptBlock {cd "C:\Data\Shared\Installation"; ./Test.ps1} -Credential $credential

または、これを試してください (スクリプトが相対パスで動作する場合、これは適切な解決策ではありません)。

Invoke-Command -ComputerName serverName -ScriptBlock {C:\Data\Shared\Installation\Test.ps1} -Credential $credential
于 2013-02-07T21:44:16.697 に答える