IIS관리 PowerShell Cmdlet

작성자: Baris Caglar

호환성

버전 참고
IIS 10.0 IISAdministration PowerShell Cmdlet은 IIS 10.0에서 도입되었습니다. 최신 버전의 IIS관리는 Powershell 갤러리를 통해 지원됩니다.
IIS 8.5 이하 IISAdministration PowerShell Cmdlet은 IIS 10.0 이전에는 지원되지 않았습니다. 그러나 사용자는 Powershell 갤러리를 통해 설치할 수 있습니다.

최신 버전의 IIS관리를 가져오는 방법에 대해 알아보려면 iis.net IISAdministration 소개를 참조하세요.

IIS관리 개요

IIS 팀은 Windows 10 및 Windows Server 2016 기존 WebAdministration Cmdlet과 함께 새롭고 간소화된 IISAdministration 모듈을 함께 릴리스합니다. 완전히 새로운 PowerShell Cmdlet 모듈을 릴리스하기로 결정한 데는 여러 가지 이유가 있으며, 그 중 몇 가지는 다음과 같습니다.

  • IISAdministration 는 로 실행하는 WebAdministration데 시간이 오래 걸리는 스크립트에서 더 잘 확장됩니다.
  • 이제 개체의 instance Microsoft.Web.Administration.ServerManager 직접 참조하고 스크립트와 함께 네임스페이스에서 수행할 수 있는 Microsoft.Web.Administration 모든 작업을 수행할 수 있습니다.
  • PowerShell 파이프라인 호환성은 많은 cmdlet 디자인의 원동력이었습니다. 따라서 는 IISAdministration PowerShell 파이프라인에서 훨씬 더 잘 작동합니다.

Windows 10 출시된 Cmdlet 버전은 개선의 여지가 있는 대략적인 버전이었습니다. 대상 릴리스는 완성되고 세련된 제품에 대해 Windows Server 2016. 이전 릴리스의 이유는 업계의 실제 PowerShell 사용자 및 IIS 관리자로부터 피드백을 받고, 질문에 답변하고, 기존 기능뿐만 아니라 PowerShell과 관련된 IIS 관리에서 사용자가 원하는 새로운 기능에 대한 제안을 받기 위해서였습니다.

다음은 새 공급자의 사용에 대한 몇 가지 예입니다.

파이프라이닝

PS:>Get-IISConfigSection -SectionPath "system.webServer/defaultDocument" | Get-IISConfigCollection -CollectionName "files" | New-IISConfigCollectionElement -ConfigAttribute @{"Value" = "MyDefDoc.htm"}

Get-IISConfigSection 는 대부분의 파이프라인의 시작 부분에 있으며 위의 특정 예제에서는 먼저 "system.webServer/defaultDocument" 섹션(대/소문자 구분!)을 받은 다음, 파일 컬렉션을 가져오고, 마지막으로 지정된 특성 값이 있는 컬렉션 요소를 가져옵니다.

PS:>$ConfigSection = Get-IISConfigSection -SectionPath "system.applicationHost/sites"

PS:>Get-IISConfigCollection $configSection | Get-IISConfigCollectionElement -ConfigAttribute @{"Name"="Default Web Site"} | Get-IISConfigAttributeValue -AttributeName "State"

이 예제는 섹션이 먼저 변수에 배치된 다음 파이프라인에서 사용되는 하이브리드 예제에 해당합니다.

간단한 명령

간단한 명령의 수는 몇 가지로 크게 줄어듭니다. 예제에는 Get-IISSite 및 Get-IISAppPool이 포함됩니다. 명령이 존재하지 않는 다른 간단한 작업은 파이프라인 작업을 통해 수행할 수 있습니다.

PS:> Get-IISAppPool

Name            Status   CLR Ver  Pipeline Mode  Start Mode
----            ------   -------  -------------  ----------
DefaultAppPool  Started  v4.0     Integrated     OnDemand

Get-IISServerManager

PS:>$sm = Get-IISServerManager

PS:>$sm.ApplicationPools["DefaultAppPool"].Recycle()

보듯이 서버 관리자에 대한 액세스 권한이 있으면 하늘이 제한됩니다.

Start-IISCommitDelay/Stop-IISCommitDelay

이러한 명령 간에 작업을 바깥쪽에 두면 변경 내용이 동시에 커밋되는지 확인할 수 있습니다.

이는 새 공급자를 사용하여 수행할 수 있는 작업의 몇 가지 예에 불과합니다. 전체 설명서 및 기타 예제는 Online 문서를 참조하세요.