
Necesito ejecutar el siguiente comando en PowerShell:
%windir%\system32\inetsrv\appcmd add site /in < c:\mywebsite.xml
Estoy intentando hacerlo así:
$appCmd = "$Env:SystemRoot\system32\inetsrv\appcmd.exe"
[String] $targetFilePath = $restoreFromDirectory + "config.xml"
$AllArgs = @('add', 'site', '/in')
& $appCmd $AllArgs | Get-Content $targetFilePath
Pero esto aparentemente es incorrecto ya que me da un error:
El objeto de entrada no se puede vincular a ningún parámetro para el comando porque el comando no toma entrada de canalización o porque la entrada y sus propiedades no coinciden con ninguno de los parámetros que reciben entrada de canalización.
Ayúdeme sobre cuál es la alternativa correcta al script mencionado anteriormente en PowerShell.
Respuesta1
La canalización de PowerShell toma la entrada de la izquierda y la pasa al comando de la derecha. En este caso, está pasando la salida de su comando a Get-Content
, que no toma un parámetro de entrada.
Cambie su línea de llamada para que la entrada fluya de izquierda a derecha:
Get-Content $targetFilePath | & $appCmd $AllArgs
Mira estoresponder en StackOverflowpara un ejemplo.