Invoke-WebRequest
인터넷의 웹 페이지에서 콘텐츠를 가져옵니다.
구문
Default (기본값)
Invoke-WebRequest
[-UseBasicParsing]
[-Uri] <Uri>
[-WebSession <WebRequestSession>]
[-SessionVariable <String>]
[-Credential <PSCredential>]
[-UseDefaultCredentials]
[-CertificateThumbprint <String>]
[-Certificate <X509Certificate>]
[-UserAgent <String>]
[-DisableKeepAlive]
[-TimeoutSec <Int32>]
[-Headers <IDictionary>]
[-MaximumRedirection <Int32>]
[-Method <WebRequestMethod>]
[-Proxy <Uri>]
[-ProxyCredential <PSCredential>]
[-ProxyUseDefaultCredentials]
[-Body <Object>]
[-ContentType <String>]
[-TransferEncoding <String>]
[-InFile <String>]
[-OutFile <String>]
[-PassThru]
[<CommonParameters>]
Description
Invoke-WebRequest cmdlet은 HTTP, HTTPS, FTP 및 FILE 요청을 웹 페이지 또는 웹 서비스로 보냅니다. 응답을 구문 분석하고 양식, 링크, 이미지 및 기타 중요한 HTML 요소의 컬렉션을 반환합니다.
이 cmdlet은 Windows PowerShell 3.0에서 도입되었습니다.
경고
기본적으로 Invoke-WebRequest 웹 페이지의 콘텐츠를 구문 분석합니다. 웹 페이지의 스크립트 코드는 페이지를 구문 분석할 때 실행될 수 있습니다.
-UseBasicParsing 스크립트 코드 실행을 방지하려면 스위치를 사용합니다.
이 명령은 , curl또는 wget 별칭을 iwr사용하여 실행할 수 있습니다.
예제
예제 1: 웹 요청 보내기
이 예제에서는 Invoke-WebRequest cmdlet을 사용하여 웹 요청을 Bing.com 사이트로 보냅니다.
$Response = Invoke-WebRequest -UseBasicParsing -Uri https://www.bing.com?q=how+many+feet+in+a+mile
$Response.InputFields |
Where-Object Name -Like "* Value" |
Select-Object Name, Value
Name Value
---- -----
From Value 1
To Value 5280
반환된 Invoke-WebRequest 데이터는 변수에 $Response 저장됩니다.
응답의 InputFields 속성에는 양식 필드가 포함됩니다.
Where-Object 양식 필드를 Name 속성이 "* 값"처럼 필터링하는 데 사용됩니다. 필터링된 결과는 Select-Object 파이프되어 이름 및 값 속성을 선택합니다.
예제 2: 상태 저장 웹 서비스 사용
이 예제에서는 상태 저장 웹 서비스(예: Facebook)와 함께 Invoke-WebRequest cmdlet을 사용하는 방법을 보여줍니다.
$R = Invoke-WebRequest https://www.facebook.com/login.php -SessionVariable fb
# This command stores the first form in the Forms property of the $R variable in the $Form variable.
$Form = $R.Forms[0]
# This command shows the fields available in the form.
$Form.Fields
Key Value
--- -----
...
email
pass
...
# These commands populate the username and password of the respective form fields.
$Form.Fields["email"]="User01@Fabrikam.com"
$Form.Fields["pass"]="P@ssw0rd"
# This command creates the Uri that will be used to log in to facebook.
# The value of the Uri parameter is the value of the Action property of the form.
$Uri = "https://www.facebook.com" + $Form.Action
# Now the Invoke-WebRequest cmdlet is used to sign into the Facebook web service.
# The WebRequestSession object in the $FB variable is passed as the value of the WebSession parameter.
# The value of the Body parameter is the hash table in the Fields property of the form.
# The value of the *Method* parameter is POST. The command saves the output in the $R variable.
$R = Invoke-WebRequest -Uri $Uri -WebSession $FB -Method Post -Body $Form.Fields
$R.StatusDescription
첫 번째 명령은 Invoke-WebRequest cmdlet을 사용하여 로그인 요청을 보냅니다. 이 명령은 SessionVariable 매개 변수 값에 대해 "FB" 값을 지정하고 결과를 $R 변수에 저장합니다. 명령이 완료되면 $R 변수에는 HtmlWebResponseObject 포함되고 $FB 변수에는 WebRequestSession 개체가 포함됩니다.
Invoke-WebRequest cmdlet이 facebook에 로그인한 후 변수에 있는 웹 응답 개체의 $R 속성은 사용자가 성공적으로 로그인되었음을 나타냅니다.
예제 3: 웹 페이지에서 링크 가져오기
이 명령은 웹 페이지의 링크를 가져옵니다.
(Invoke-WebRequest -Uri "https://devblogs.microsoft.com/powershell/").Links.Href
Invoke-WebRequest cmdlet은 웹 페이지 콘텐츠를 가져옵니다. 그런 다음 반환된 HtmlWebResponseObjectLinks 속성을 사용하여 각 링크의 Href 속성을 표시합니다.
예제 4: Invoke-WebRequest 성공하지 않은 메시지 catch
Invoke-WebRequest 성공하지 못한 HTTP 메시지(404, 500 등)가 발생하면 출력을 반환하지 않고 종료 오류를 throw합니다. 오류를 catch하고 StatusCode 보려면 try/catch 블록에 실행을 묶을 수 있습니다.
try
{
$Response = Invoke-WebRequest -Uri "www.microsoft.com/unkownhost"
# This will only execute if the Invoke-WebRequest is successful.
$StatusCode = $Response.StatusCode
}
catch
{
$StatusCode = $_.Exception.Response.StatusCode.value__
}
$StatusCode
404
종료 오류는 catch 개체에서 StatusCode 검색하는 블록에 의해 catch됩니다.
예제 5: 동시에 여러 파일 다운로드
Invoke-WebRequest cmdlet은 한 번에 하나의 파일만 다운로드할 수 있습니다. 다음 예제에서는 Start-ThreadJob 사용하여 여러 스레드 작업을 만들어 동시에 여러 파일을 다운로드합니다.
$baseUri = 'https://github.com/PowerShell/PowerShell/releases/download'
$files = @(
@{
Uri = "$baseUri/v7.3.0-preview.5/PowerShell-7.3.0-preview.5-win-x64.msi"
OutFile = 'PowerShell-7.3.0-preview.5-win-x64.msi'
},
@{
Uri = "$baseUri/v7.3.0-preview.5/PowerShell-7.3.0-preview.5-win-x64.zip"
OutFile = 'PowerShell-7.3.0-preview.5-win-x64.zip'
},
@{
Uri = "$baseUri/v7.2.5/PowerShell-7.2.5-win-x64.msi"
OutFile = 'PowerShell-7.2.5-win-x64.msi'
},
@{
Uri = "$baseUri/v7.2.5/PowerShell-7.2.5-win-x64.zip"
OutFile = 'PowerShell-7.2.5-win-x64.zip'
}
)
$jobs = @()
foreach ($file in $files) {
$jobs += Start-ThreadJob -Name $file.OutFile -ScriptBlock {
$params = $Using:file
Invoke-WebRequest @params
}
}
Write-Host "Downloads started..."
Wait-Job -Job $jobs
foreach ($job in $jobs) {
Receive-Job -Job $job
}
비고
cmdlet을 Start-ThreadJob 사용하려면 PowerShell 갤러리 ThreadJob 모듈을 설치해야 합니다.
매개 변수
-Body
요청 본문을 지정합니다. 본문은 헤더 뒤에 있는 요청의 내용입니다.
본문 값을 Invoke-WebRequest으로 전달할 수도 있습니다.
Body 매개 변수를 사용하여 쿼리 매개 변수 목록을 지정하거나 응답 내용을 지정할 수 있습니다.
입력이 GET 요청이고 본문이 IDictionary(일반적으로 해시 테이블)인 경우 본문은 쿼리 매개 변수로 URI에 추가됩니다. 다른 요청 형식(예: POST)의 경우 본문은 표준 name=value 형식의 요청 본문 값으로 설정됩니다.
본문이 폼이거나 Invoke-WebRequest 호출의 출력인 경우 PowerShell은 요청 콘텐츠를 양식 필드로 설정합니다.
다음은 그 예입니다.
$r = Invoke-WebRequest https://website.com/login.aspx
$r.Forms[0].Name = "MyName"
$r.Forms[0].Password = "MyPassword"
Invoke-RestMethod https://website.com/service.aspx -Body $r
- 또는-
Invoke-RestMethod https://website.com/service.aspx -Body $r.Forms[0]
매개 변수 속성
| 형식: | Object |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | True |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-Certificate
보안 웹 요청에 사용되는 클라이언트 인증서를 지정합니다. 인증서 또는 인증서를 가져오는 명령 또는 식이 포함된 변수를 입력합니다.
인증서를 찾으려면 Get-PfxCertificate 사용하거나 인증서(Get-ChildItem) 드라이브에서 Cert: cmdlet을 사용합니다. 인증서가 유효하지 않거나 권한이 충분하지 않으면 명령이 실패합니다.
매개 변수 속성
| 형식: | X509Certificate |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-CertificateThumbprint
요청을 보낼 수 있는 권한이 있는 사용자 계정의 디지털 공개 키 인증서(X509)를 지정합니다. 인증서의 인증서 지문을 입력합니다.
인증서는 클라이언트 인증서 기반 인증에 사용됩니다. 인증서는 도메인 계정이 아닌 로컬 사용자 계정에만 매핑할 수 있습니다.
인증서 지문을 보려면 Get-Item 또는 Get-ChildItem 명령을 사용하여 Cert:\CurrentUser\My인증서를 찾습니다.
매개 변수 속성
| 형식: | String |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-ContentType
웹 요청의 콘텐츠 형식을 지정합니다.
ContentType 값에 인코딩 형식(charset)이 포함된 경우 cmdlet은 해당 형식을 사용하여 웹 요청의 본문을 인코딩합니다.
ContentType 인코딩 형식을 지정하지 않으면 기본 인코딩 형식이 대신 사용됩니다. 인코딩 형식이 있는 ContentType의 예로는 text/plain; charset=iso-8859-5가 있으며, 이는 라틴어/키릴 자모 알파벳을 지정합니다.
매개 변수를 생략하면 사용하는 HTTP 메서드에 따라 콘텐츠 형식이 다를 수 있습니다.
- POST 메서드의 경우 콘텐츠 형식이
application/x-www-form-urlencoded - PUT 메서드의 경우 콘텐츠 형식이
application/json - 다른 메서드의 경우 콘텐츠 형식이 요청에 지정되지 않습니다.
InFile 매개 변수를 사용하여 파일을 업로드하는 경우 콘텐츠 형식을 설정해야 합니다.
일반적으로 형식은 application/octet-stream합니다. 그러나 엔드포인트의 요구 사항에 따라 콘텐츠 형식을 설정해야 합니다.
매개 변수 속성
| 형식: | String |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-Credential
요청을 보낼 수 있는 권한이 있는 사용자 계정을 지정합니다. 기본값은 현재 사용자입니다.
User01 또는 Domain01\User01같은 사용자 이름을 입력하거나 cmdlet에서 생성된 Get-Credential 개체를 입력합니다.
자격 증명은 PSCredential 개체에 저장되고 암호는 SecureString저장됩니다.
비고
SecureString 데이터 보호에 대한 자세한 내용은 SecureString이 얼마나 안전한가요?.
매개 변수 속성
| 형식: | PSCredential |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-DisableKeepAlive
cmdlet이 HTTP 헤더의
매개 변수 속성
| 형식: | SwitchParameter |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-Headers
웹 요청의 헤더를 지정합니다. 해시 테이블 또는 사전을 입력합니다.
UserAgent 헤더를 설정하려면 UserAgent 매개 변수를 사용합니다. 이 매개 변수를 사용하여 UserAgent 또는 쿠키 헤더를 지정할 수 없습니다.
매개 변수 속성
| 형식: | IDictionary |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-InFile
파일에서 웹 요청 본문의 콘텐츠를 가져옵니다. 경로 및 파일 이름을 입력합니다. 경로를 생략하면 기본값은 현재 위치입니다.
요청의 콘텐츠 형식도 설정해야 합니다. 예를 들어 파일을 업로드하려면 콘텐츠 형식을 설정해야 합니다. 일반적으로 형식은 application/octet-stream합니다. 그러나 엔드포인트의 요구 사항에 따라 콘텐츠 형식을 설정해야 합니다.
매개 변수 속성
| 형식: | String |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-MaximumRedirection
연결이 실패하기 전에 PowerShell이 대체 URI(Uniform Resource Identifier)로 연결을 리디렉션하는 횟수를 지정합니다. 기본값은 5입니다. 값이 0이면 모든 리디렉션이 방지됩니다.
매개 변수 속성
| 형식: | Int32 |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-Method
웹 요청에 사용되는 메서드를 지정합니다. 이 매개 변수에 허용되는 값은 다음과 같습니다.
DefaultDeleteGetHeadMergeOptionsPatchPostPutTrace
매개 변수 속성
| 형식: | WebRequestMethod |
| Default value: | None |
| 허용되는 값: | Default, Get, Head, Post, Put, Delete, Trace, Options, Merge, Patch |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-OutFile
이 cmdlet이 응답 본문을 저장하는 출력 파일을 지정합니다. 경로 및 파일 이름을 입력합니다. 경로를 생략하면 기본값은 현재 위치입니다.
기본적으로 Invoke-WebRequest 파이프라인에 결과를 반환합니다. 결과를 파일 및 파이프라인으로 보내려면 PassThru 매개 변수를 사용합니다.
매개 변수 속성
| 형식: | String |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-PassThru
cmdlet이 결과를 파일에 쓰는 것 외에 결과를 반환한다는 것을 나타냅니다. 이 매개 변수는 OutFile 매개 변수도 명령에 사용되는 경우에만 유효합니다.
비고
PassThru 매개 변수를 사용하면 출력이 파이프라인에 기록되지만 파일은 비어 있습니다. 자세한 내용은 PowerShell 문제 #15409참조하세요.
매개 변수 속성
| 형식: | SwitchParameter |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-Proxy
인터넷 리소스에 직접 연결하는 대신 요청에 대한 프록시 서버를 지정합니다. 네트워크 프록시 서버의 URI를 입력합니다.
매개 변수 속성
| 형식: | Uri |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-ProxyCredential
Proxy 매개 변수로 지정된 프록시 서버를 사용할 수 있는 권한이 있는 사용자 계정을 지정합니다. 기본값은 현재 사용자입니다.
User01 또는 Domain01\User01같은 사용자 이름을 입력하거나 cmdlet에서 생성된 것과 같은 Get-Credential 개체를 입력합니다.
이 매개 변수는 Proxy 매개 변수도 명령에 사용되는 경우에만 유효합니다. 동일한 명령에서 ProxyCredential 및 ProxyUseDefaultCredentials 매개 변수를 사용할 수 없습니다.
매개 변수 속성
| 형식: | PSCredential |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-ProxyUseDefaultCredentials
cmdlet이 현재 사용자의 자격 증명을 사용하여 Proxy 매개 변수로 지정된 프록시 서버에 액세스하도록 나타냅니다.
이 매개 변수는 Proxy 매개 변수도 명령에 사용되는 경우에만 유효합니다. 동일한 명령에서 ProxyCredential 및 ProxyUseDefaultCredentials 매개 변수를 사용할 수 없습니다.
매개 변수 속성
| 형식: | SwitchParameter |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-SessionVariable
이 cmdlet이 웹 요청 세션을 만들고 값에 저장하는 변수를 지정합니다.
달러 기호($) 기호 없이 변수 이름을 입력합니다.
세션 변수를 지정하면 Invoke-WebRequest 웹 요청 세션 개체를 만들고 PowerShell 세션에서 지정된 이름을 가진 변수에 할당합니다. 명령이 완료되는 즉시 세션에서 변수를 사용할 수 있습니다.
원격 세션과 달리 웹 요청 세션은 영구 연결이 아닙니다. 쿠키, 자격 증명, 최대 리디렉션 값 및 사용자 에이전트 문자열을 포함하여 연결 및 요청에 대한 정보를 포함하는 개체입니다. 웹 요청 간에 상태 및 데이터를 공유하는 데 사용할 수 있습니다.
후속 웹 요청에서 웹 요청 세션을 사용하려면 WebSession 매개 변수 값에 세션 변수를 지정합니다. PowerShell은 새 연결을 설정할 때 웹 요청 세션 개체의 데이터를 사용합니다. 웹 요청 세션의 값을 재정의하려면 UserAgent 또는 자격 증명같은 cmdlet 매개 변수를 사용합니다. 매개 변수 값이 웹 요청 세션의 값보다 우선합니다.
동일한 명령에서 SessionVariable 및 WebSession 매개 변수를 사용할 수 없습니다.
매개 변수 속성
| 형식: | String |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
| 별칭: | SV |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-TimeoutSec
요청이 시간 초과되기 전에 보류할 수 있는 기간을 지정합니다. 값을 초 단위로 입력합니다. 기본값 0은 무기한 제한 시간을 지정합니다.
DNS(도메인 이름 시스템) 쿼리는 반환 또는 시간 초과에 최대 15초가 걸릴 수 있습니다. 요청에 확인이 필요한 호스트 이름이 포함되어 있고 TimeoutSec 0보다 큰 값으로 설정하지만 15초 미만인 경우 WebException throw되기까지 15초 이상 걸릴 수 있으며 요청 시간이 초과됩니다.
매개 변수 속성
| 형식: | Int32 |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-TransferEncoding
전송 인코딩 HTTP 응답 헤더의 값을 지정합니다. 이 매개 변수에 허용되는 값은 다음과 같습니다.
ChunkedCompressDeflateGZipIdentity
매개 변수 속성
| 형식: | String |
| Default value: | None |
| 허용되는 값: | chunked, compress, deflate, gzip, identity |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-Uri
웹 요청을 보낼 인터넷 리소스의 URI(Uniform Resource Identifier)를 지정합니다. URI를 입력합니다. 이 매개 변수는 HTTP, HTTPS, FTP 및 FILE 값을 지원합니다.
이 매개 변수는 필수입니다. 매개 변수 이름 Uri 선택 사항입니다.
매개 변수 속성
| 형식: | Uri |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | 0 |
| 필수: | True |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-UseBasicParsing
cmdlet이 DOM(문서 개체 모델) 구문 분석 없이 HTML 콘텐츠에 응답 개체를 사용한다는 것을 나타냅니다. 이 매개 변수는 Windows Server 운영 체제의 Server Core 설치와 같이 컴퓨터에 Internet Explorer가 설치되어 있지 않은 경우에 필요합니다.
매개 변수 속성
| 형식: | SwitchParameter |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-UseDefaultCredentials
cmdlet이 현재 사용자의 자격 증명을 사용하여 웹 요청을 보내도록 나타냅니다.
매개 변수 속성
| 형식: | SwitchParameter |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-UserAgent
웹 요청에 대한 사용자 에이전트 문자열을 지정합니다. 기본 사용자 에이전트는 각 운영 체제 및 플랫폼에 대해 약간 변형된 Mozilla/5.0 (Windows NT; Windows NT 6.1; en-US) WindowsPowerShell/3.0 유사합니다.
대부분의 인터넷 브라우저에서 사용되는 표준 사용자 에이전트 문자열을 사용하여 웹 사이트를 테스트하려면 Chrome, Firefox, InternetExplorer, Opera 및 Safari와 같은 PSUserAgent 클래스의 속성을 사용합니다. 예를 들어 다음 명령은 Internet Explorer에 대한 사용자 에이전트 문자열을 사용합니다. Invoke-WebRequest -Uri https://website.com/ -UserAgent ([Microsoft.PowerShell.Commands.PSUserAgent]::InternetExplorer)
매개 변수 속성
| 형식: | String |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-WebSession
웹 요청 세션을 지정합니다. 달러 기호($)를 포함하여 변수 이름을 입력합니다.
웹 요청 세션의 값을 재정의하려면 UserAgent 또는 자격 증명같은 cmdlet 매개 변수를 사용합니다. 매개 변수 값이 웹 요청 세션의 값보다 우선합니다.
원격 세션과 달리 웹 요청 세션은 영구 연결이 아닙니다. 쿠키, 자격 증명, 최대 리디렉션 값 및 사용자 에이전트 문자열을 포함하여 연결 및 요청에 대한 정보를 포함하는 개체입니다. 웹 요청 간에 상태 및 데이터를 공유하는 데 사용할 수 있습니다.
웹 요청 세션을 만들려면 명령의 Invoke-WebRequest 매개 변수 값에 달러 기호 없이 변수 이름을 입력합니다.
Invoke-WebRequest 세션을 만들고 변수에 저장합니다. 후속 명령에서 변수를 WebSession 매개 변수의 값으로 사용합니다.
동일한 명령에서 SessionVariable 및 WebSession 매개 변수를 사용할 수 없습니다.
매개 변수 속성
| 형식: | WebRequestSession |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
CommonParameters
이 cmdlet은 일반적인 매개 변수인 -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction 및 -WarningVariable 매개 변수를 지원합니다. 자세한 내용은 about_CommonParameters를 참조하세요.
입력
Object
웹 요청의 본문을 이 cmdlet으로 파이프할 수 있습니다.
출력
HtmlWebResponseObject
이 cmdlet은 웹 요청의 결과를 나타내는 응답 개체를 반환합니다.
참고
Windows PowerShell에는 다음과 같은 Invoke-WebRequest의 별칭이 포함되어 있습니다.
iwrcurlwget