2016-11-02 5 views
0

Привет, когда я пытаюсь сделать некоторый код:Выполнение PowerShell удаленно выдавать

$Username = 'us' 
$Password = 'password' 
$pass = ConvertTo-SecureString -AsPlainText $Password -Force 
$Cred = New-Object System.Management.Automation.PSCredential -ArgumentList $Username,$pass 



powershell.exe -command "Invoke-Command -ComputerName server.com -scriptblock {pathCopyAndUnzip.ps1} -Credential $Cred" 

Это подсказывают мне для пароля, но когда я пытаюсь запустить эту команду, как здесь (без powershell.exe):

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

он работает без подсказки. Вы знаете, как это решить? Мне нужно использовать вариант 1, так как эта команда из запущенной файла определения сборки TFS, как здесь:

<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.

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 :) Все, что работа в настоящее время.

Смежные вопросы