2017-05-10 1 views
2

URL에 저장되어있는 PowerShell 스크립트를 실행하고이 사용자 지정 인수를 전달하고이 PowerShell에 지정된 모든 인수를 전달하는 PowerShell 스크립트를 작성하고 싶습니다. 구체적으로, 나는 할 수있다 : 내가 이상적으로 임시 파일을 사용하지 않고, 그러나 powershell -content -이 인수를 전달도 허용하지 않는 것 그렇게하고 싶습니다임시 파일이없는 URL에서 Powershell 스크립트를 실행하십시오.

$VAR=Invoke-WebRequest http://example.com/powershell.ps1 
$TEMP=New-TemporaryFile 
$FILE=$TEMP.FullName + ".ps1" 
$VAR.Content | Out-File $FILE 
& $FILE somearguments $args 

. 임시 파일을 피할 수있는 방법이 있습니까?

+0

찾는 방법 [chocolatey을 수행 (https://chocolatey.org/install) – LotPings

답변

4

당신은 스크립트 블록에 콘텐츠를 변환 한 후 바로 chocolatey의 사이트에서 인수

$Script = Invoke-WebRequest 'http://example.com/powershell.ps1' 
$ScriptBlock = [Scriptblock]::Create($Script.Content) 
Invoke-Command -ScriptBlock $ScriptBlock -ArgumentList ($args + @('someargument')) 
+1

는 $ 인수 + @ ('someargument')가 될 것으로 보인다 또는 $ args를 평평하게하고 문자열로 변환합니다. –

+0

감사합니다. @NeilMitchell – Igor

3

도난와 명령으로 호출 할 수 있습니다. 나는보다 더 자주 이것을 사용할 내가해야

iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) 

source

+0

이것은 가장 쉽고 가장 직접적인 방법입니다. 'DownloadString()'메서드는 원시 내용을 가져온 다음'iex'를 가져옵니다. ('Invoke-Expression')은 뽑아 낸 문자열을 실행합니다 –

+1

원격 powershell 스크립트에 추가 명령 줄 인수를 허용하지 않는 것 같습니다. –

관련 문제