2016-11-02 12 views
0

こんにちはを発行し、遠隔PowerShellの実行は、私はいくつかのコードを実行しようとするとき

Invoke-Command -ComputerName server.com -scriptblock {pathCopyAndUnzip.ps1} -Credential $Cred 

プロンプトなしで動作します。あなたはそれを解決する方法を知っていますか?

<Exec Command="powershell.exe -command &quot;Invoke-Command -ComputerName $(Server) -scriptblock {path} -Credential $Cred&quot;" Condition="'$(RunTests)' == 'True'"/> 

答えて

0

あなたはこのようたpowershell.exeするコマンドパイプに試みることができる::

'$Username = "us"; $Password = "password"; $pass = ConvertTo-SecureString -AsPlainText $Password -Force; $Cred = New-Object System.Management.Automation.PSCredential -ArgumentList $Username,$pass; Invoke-Command -ComputerName server.com -scriptblock {pathCopyAndUnzip.ps1} -Credential $Cred' | powershell.exe -command - 
+0

これは動作しません。 – user3162626

+0

私は引用符を逃しました。 – restless1987

0

あなたが置くことができます。このコマンドは、ここのようなTFSのビルド定義ファイルからrunnedされているので、私はオプション1を使用する必要がありますあなたのスクリプトをそれ自身のファイルにして、それをTFSからインラインコードではなく呼び出します。

C:\フォルダ\ script.ps1:

Param(
    [string]$Username, 
    [string]$Password, 
    [string]$OtherParam, 
) 

$Password = $Password | ConvertTo-SecureString -AsPlainText -Force 
$Cred = New-Object System.Management.Automation.PSCredential -ArgumentList $Username,$Password 

Invoke-Command -ComputerName server.com -FilePath "C:\folder\CopyAndUnzip.ps1 -Something $OtherParam" -Credential $Cred 

そして、そのようにそれを呼び出す:

<Exec Command="powershell.exe -command "C:\folder\script.ps1 -username user10 -password [email protected] -OtherParam Whatever" Condition="'$(RunTests)' == 'True'"/> 
+0

何らかの開始を再試行してください;)これは解決ですが、スクリプト内のそのスクリプトにパラメータを与える必要があります – user3162626

+0

コマンドラインからスクリプトへの入力を渡すためにパラメータを使うことができます。スクリプト自体(ユーザ/パス)と、それが呼び出す他のスクリプト(OtherParam)。 –

0
<Exec Command="$(PsExecPath) -accepteula \\$(Server) cmd /C powershell -File FILEPATH " Condition="'$(RunTests)' == 'True'"/> 

私は古き良きPSEXEC :)すべてが今の仕事で使用。

関連する問題