2017-03-29 2 views
1

C#에서 매개 변수 값으로 cmdlet을 전달하려면 어떻게해야합니까? 즉, 다음과 같은 .NET의 동등 물은 무엇입니까?.NET에서 매개 변수 값으로 cmdlet을 전달하는 방법

var ps = PowerShell.Create(session); 
ps.AddComand("Get-Content").AddParameter("Path", "(Some-Cmdlet)"); 

그러나, 문자열 "(일부-cmdlet를)"그대로 전달되는 :

PS> Get-Content -Path (Some-Cmdlet) 

나는 다음과 같은 코드가 있습니다. 그것은 해석되지 않습니다. 나는 또한 시도했다 :

var ps = PowerShell.Create(session); 
var cmd = new Command("Some-Cmdlet"); 
ps.AddComand("Get-Content").AddParameter("Path", cmd); 

불행하게도, 그것은 같은 결과를 준다. Command 개체를 평가하는 대신 ToString()을 호출하는 것 같습니다.

답변

0

매개 변수 값을 평가할 방법이없는 것처럼 보입니다. 내가 발견 할 수있는 것부터 AddCommand 대신 AddScript을 사용해야합니다. 또한 매개 변수가 필요한 경우 명령 줄에서 작성하는 표현식을 변경해야합니다. 내 경우

, 나는 양식을 사용 :

var flag = "xyz"; 
ps.AddScript(@"param([string]$Flag) Get-Content -Path (Some-Cmdlet -Flag $Flag)") 
    .AddParameter("Flag", flag); 

더 나은 방법이있을 수 있습니다,하지만이 작동합니다.

관련 문제