
PowerShell에서 다음 명령을 실행해야 합니다.
%windir%\system32\inetsrv\appcmd add site /in < c:\mywebsite.xml
나는 이것을 이렇게하려고 노력하고 있습니다 :
$appCmd = "$Env:SystemRoot\system32\inetsrv\appcmd.exe"
[String] $targetFilePath = $restoreFromDirectory + "config.xml"
$AllArgs = @('add', 'site', '/in')
& $appCmd $AllArgs | Get-Content $targetFilePath
그러나 이것은 나에게 오류를 주기 때문에 분명히 잘못된 것입니다.
명령이 파이프라인 입력을 사용하지 않거나 입력 및 해당 속성이 파이프라인 입력을 사용하는 매개 변수와 일치하지 않기 때문에 입력 개체를 명령의 매개 변수에 바인딩할 수 없습니다.
위에서 언급한 PowerShell의 스크립트에 대한 올바른 대안이 무엇인지 도와주세요.
답변1
PowerShell 파이프는 왼쪽에서 입력을 받아 오른쪽 명령에 전달합니다. 이 경우 명령의 출력을 Get-Content
입력 매개변수를 사용하지 않는 에 전달합니다.
입력이 왼쪽에서 오른쪽으로 흐르도록 호출 라인을 변경합니다.
Get-Content $targetFilePath | & $appCmd $AllArgs
이것 좀 봐StackOverflow에 대한 답변예를 들어.