
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 aparentemente está errado, pois me dá um erro:
O objeto de entrada não pode ser vinculado a nenhum parâmetro do comando porque o comando não aceita a entrada do pipeline ou a entrada e suas propriedades não correspondem a nenhum dos parâmetros que recebem a entrada do pipeline.
Por favor, ajude sobre qual é a alternativa correta para o script mencionado acima no PowerShell.
Responder1
O pipe do PowerShell recebe a entrada à esquerda e a passa para o comando à direita. Nesse caso, você está passando a saída do seu comando para Get-Content
, que não aceita um parâmetro de entrada.
Mude sua linha de chamada para que a entrada flua da esquerda para a direita:
Get-Content $targetFilePath | & $appCmd $AllArgs
Veja issoresposta no StackOverflowPor exemplo.