IIS 웹 서버 앱 풀을 주시해야 할 필요가 있나요? PowerShell로 IIS에서 앱 풀을 만드는 방법에 대한 안내서입니다.
수십 개 또는 수백 개의 앱 풀이 있는 IIS 웹 서버 팜을 관리할 때 어디를 찾아야 할까요? 물론 PowerShell 스크립트를 사용하면 됩니다! IIS의 일부로 설치되는 WebAdministrationPowerShell 모듈과 약간의 PowerShell 원격 기능을 사용하면 원하는 대로 앱 풀을 쉽게 생성, 수정 및 제거할 수 있습니다.
이를 실현하는 방법에 대한 몇 가지 예시를 살펴보겠습니다.
PowerShell을 사용하여 IIS 서버를 관리한 적이 없다면 대부분의 cmdlet에서 ComputerName
을 찾으려고 할 것입니다. 불행히도, 그렇지 않습니다.
원격 IIS 서버를 관리하려면 Invoke-Command
cmdlet과 함께 PowerShell 원격 기능을 사용해야 합니다. 이는 큰 문제는 아니지만 코드를 조금 더 상세하게 만듭니다. PowerShell을 사용하여 원격 IIS 서버를 관리하는 것을 방해하는 것은 아니지만 그저 참고 사항입니다.
관련 정보: Invoke-Command: 원격 코드 실행의 최고 방법
I know I was pretty frustrated the first time I tried this and didn’t see that familiar ComputerName
parameter on many of the cmdlets.
참고: 앞으로 스크립트 블록에 입력할 코드를 작성할 것입니다. 그런 다음
Invoke-Command
을 사용하여 원격 IIS 서버에서 이 스크립트 블록을 실행할 것입니다.
PowerShell로 IIS 애플리케이션 풀 나열하기
웹 애플리케이션 풀을 관리하기 위해 먼저 WebAdministration 모듈을 가져와야 합니다.
이렇게 하면 모든 IIS cmdlet이 가져와지며 IIS 드라이브가 생성됩니다. 대부분의 앱 풀 구성은 여기에서 이루어집니다. 먼저 이미 앱 풀이 있는지 확인해 보겠습니다.
PowerShell을 사용하여 새로운 IIS 앱 풀 생성하기
이미 GHI라는 앱 풀이 있는 것 같습니다. 다른 앱 풀을 생성하고 싶을 수도 있습니다. IIS 드라이브를 사용하면 이 작업이 매우 간단합니다. New-Item
을 사용하고 경로를 지정하기만 하면 됩니다.
앱 풀 속성 검사와 수정
I’ve now created a new app pool. We can then check all of the properties on that app pool using Get-ItemProperty
and select all of the properties it returns with Select-Object
. This will return all of the property names and values so you can get figure out which ones you need to modify with Set-ItemProperty
.
이제 앱 풀이 있고 속성도 볼 수 있으므로 속성을 수정해 보겠습니다. 앱 풀과 특정 .NET 런타임 버전을 사용하고 싶을 수도 있습니다. 다시 한 번 IIS 드라이브를 사용하여 파일 시스템, 레지스트리, 인증서 및 기타 PowerShell 드라이브에서 관리하는 모든 항목과 마찬가지로 앱 풀을 관리할 수 있습니다. Set-ItemProperty
를 사용합니다.
Set-ItemProperty
를 사용하면 앱 풀의 거의 모든 속성을 수정할 수 있습니다.
PowerShell로 앱 풀 제거하기
마지막으로 앱 풀을 사용하고 더 이상 필요하지 않게 되었습니다. 이번에는 Remove-WebAppPool
이라는 내장 PowerShell cmdlet을 사용합니다. 이름을 지정하면 앱 풀이 제거됩니다!
우리가 사용한 모든 코드는 로컬에서 실행되었지만, 만약 원격 IIS 서버에서 실행해야 한다면 어떨까요? 이때 PowerShell 원격 접속이 필요합니다. 이를 위해 모든 코드를 스크립트 블록에 묶은 다음 Invoke-Command
를 사용하여 원격 서버에서 실행하면 됩니다.
아직 기능이 많이 부족하지만, 이 코드는 MyAppPool이라는 새로운 앱 풀을 생성하고 속성을 설정한 다음 제거합니다. 저는 $using
변수를 사용하고 있습니다. 스크립트 블록에 있는 코드가 원격 컴퓨터에서 실행될 것이기 때문에, 이 변수를 PowerShell이 확장하고 로컬 클라이언트 컴퓨터에서 선언된 $appPoolName
의 실제 값을 사용하기 위해서입니다.
만약 IIS 관리에 대해 더 알고 싶다면 Technet IIS 관리 페이지를 확인해보세요. 거기에는 WebAdministration 모듈에 포함된 모든 cmdlet과 그 사용법이 나와있습니다.