Entrada de pipeline para executável com o PowerShell

0

Eu preciso executar o seguinte comando no PowerShell:

%windir%\system32\inetsrv\appcmd add site /in < c:\mywebsite.xml

Estou tentando fazer assim:

$appCmd = "$Env:SystemRoot\system32\inetsrv\appcmd.exe"      

[String] $targetFilePath = $restoreFromDirectory + "config.xml"

$AllArgs = @('add', 'site', '/in')

& $appCmd $AllArgs | Get-Content $targetFilePath

Mas isso está aparentemente errado, pois me dá um erro:

The input object cannot be bound to any parameters for the command either because the command does not take pipeline input or the input and its properties do not match any of the parameters that take pipeline input.

Por favor, ajude qual é a alternativa correta para o script mencionado acima no PowerShell.

    
por Maxim V. Pavlov 05.10.2013 / 00:44

1 resposta

2

O pipe do PowerShell recebe entrada à esquerda e passa para o comando à direita. Nesse caso, você está transmitindo a saída do seu comando para Get-Content , que não recebe um parâmetro de entrada.

Altere sua linha de chamada para que a entrada flua da esquerda para a direita:

Get-Content $targetFilePath | & $appCmd $AllArgs

Veja esta resposta no StackOverflow para um exemplo.

    
por 05.10.2013 / 07:52