다음을 통해 공유


게이트웨이 플러그 인 개발

적용 대상: Windows 관리 Center, Windows 관리 Center 미리 보기

Windows 관리 Center 게이트웨이 플러그 인을 사용하면 도구 또는 솔루션의 UI에서 대상 노드로 API 통신을 수행할 수 있습니다. Windows 관리 Center는 대상 노드에서 실행할 게이트웨이 플러그 인의 명령 및 스크립트를 릴레이하는 게이트웨이 서비스를 호스트합니다. 게이트웨이 서비스를 확장하여 기본 프로토콜 이외의 프로토콜을 지원하는 사용자 지정 게이트웨이 플러그 인을 포함할 수 있습니다.

이러한 게이트웨이 플러그 인은 기본적으로 Windows 관리 Center에 포함되어 있습니다.

  • PowerShell 게이트웨이 플러그 인
  • WMI 게이트웨이 플러그 인

REST와 같이 PowerShell 또는 WMI 이외의 프로토콜과 통신하려는 경우 고유한 게이트웨이 플러그 인을 빌드할 수 있습니다. 게이트웨이 플러그 인은 기존 게이트웨이 프로세스에서 별도의 AppDo기본 로드되지만 권한에 대해 동일한 수준의 권한 상승을 사용합니다.

참고 항목

다른 확장 유형에 익숙하지 않나요? 확장성 아키텍처 및 확장 유형에 대해 자세히 알아봅니다.

Important

Windows 관리 Center SDK 및 개발자 도구는 Windows 관리 Center 현대화 게이트웨이와 호환되는 게이트웨이 플러그 인 개발을 지원하도록 아직 업데이트되지 않았습니다. 이 가이드를 따르면 확장이 현대화된 게이트웨이와 호환되지 않습니다.

현대화된 게이트웨이용 게이트웨이 플러그 인을 개발하거나 기존 게이트웨이 플러그 인을 업그레이드하려는 경우 전자 메일을 wacextensionrequest@microsoft.com보냅니다.

환경 준비

아직 준비하지 않은 경우 모든 프로젝트에 필요한 종속성 및 전역 필수 구성 요소를 설치하여 환경을 준비합니다.

게이트웨이 플러그 인 만들기(C# 라이브러리)

사용자 지정 게이트웨이 플러그 인을 만들려면 네임스페이스에서 인터페이스를 IPlugIn 구현하는 새 C# 클래스를 Microsoft.ManagementExperience.FeatureInterfaces 만듭니다.

참고 항목

IFeature 이전 버전의 SDK에서 사용할 수 있는 인터페이스는 이제 사용되지 않는 것으로 플래그가 지정됩니다. 모든 게이트웨이 플러그 인 개발은 IPlugIn(또는 선택적으로 HttpPlugIn 추상 클래스)을 사용해야 합니다.

GitHub에서 샘플 다운로드

사용자 지정 게이트웨이 플러그 인을 빠르게 시작하려면 Windows 관리 Center SDK GitHub 사이트에서 샘플 C# 플러그 인 프로젝트의 복사본을 복제하거나 다운로드할 수 있습니다.

콘텐츠 추가

사용자 지정 API를 포함하도록 샘플 C# 플러그 인 프로젝트 프로젝트(또는 사용자 고유의 프로젝트)의 복제된 복사본에 새 콘텐츠를 추가한 다음, 다음 단계에서 사용할 사용자 지정 게이트웨이 플러그 인 DLL 파일을 빌드합니다.

테스트를 위한 플러그 인 배포

Windows 관리 Center 게이트웨이 프로세스에 로드하여 사용자 지정 게이트웨이 플러그 인 DLL을 테스트합니다.

Windows 관리 Center는 현재 컴퓨터의 애플리케이션 데이터 폴더에 있는 plugins 폴더의 모든 플러그 인을 찾습니다(Environment.SpecialFolder 열거형의 CommonApplicationData 값 사용). Windows 10에서 이 위치는 C:\ProgramData\Server Management Experience. 폴더가 plugins 아직 없는 경우 폴더를 직접 만들 수 있습니다.

참고 항목

"StaticsFolder" 구성 값을 업데이트하여 디버그 빌드의 플러그 인 위치를 재정의할 수 있습니다. 로컬로 디버깅하는 경우 이 설정은 데스크톱 솔루션의 App.Config에 있습니다.

플러그 인 폴더 내부(이 예제에서는 C:\ProgramData\Server Management Experience\plugins)

  • 사용자 지정 게이트웨이 플러그 인 DLL의 Feature 속성 값과 동일한 이름으로 Name 새 폴더를 만듭니다(샘플 프로젝트에서 Name 는 "샘플 Uno").
  • 사용자 지정 게이트웨이 플러그 인 DLL 파일을 이 새 폴더에 복사
  • Windows 관리 Center 프로세스 다시 시작

Windows 관리 프로세스가 다시 시작되면 GET, PUT, PATCH, DELETE 또는 POST를 실행하여 사용자 지정 게이트웨이 플러그 인 DLL에서 API를 실행할 수 있습니다.http(s)://{domain|localhost}/api/nodes/{node}/features/{feature name}/{identifier}

선택 사항: 디버깅을 위해 플러그 인에 연결

Visual Studio 2017의 디버그 메뉴에서 "프로세스에 연결"을 선택합니다. 다음 창에서 사용 가능한 프로세스 목록을 스크롤하고 SMEDesktop.exe를 선택한 후 "연결"을 클릭합니다. 디버거가 시작되면 기능 코드에 중단점을 배치한 다음 위의 URL 형식을 연습할 수 있습니다. 샘플 프로젝트(기능 이름: "샘플 Uno")의 경우 URL은 다음과 같습니다. "<http://localhost:6516/api/nodes/fake-server.my.domain.com/features/Sample%20Uno>"

Windows 관리 Center SDK를 사용하여 도구 확장 만들기

이제 사용자 지정 게이트웨이 플러그 인을 호출할 수 있는 도구 확장을 만들어야 합니다. 프로젝트 파일을 저장할 폴더를 만들거나 찾아 명령 프롬프트를 열고 해당 폴더를 작업 디렉터리로 설정합니다. 이전에 설치된 Windows 관리 Center SDK를 사용하여 다음 구문을 사용하여 새 확장을 만듭니다.

wac create --company "{!Company Name}" --tool "{!Tool Name}"
설명 예시
{!Company Name} 회사 이름(공백 포함) Contoso Inc
{!Tool Name} 도구 이름(공백 포함) Manage Foo Works

다음은 사용 예입니다.

wac create --company "Contoso Inc" --tool "Manage Foo Works"

이렇게 하면 도구에 대해 지정한 이름을 사용하여 현재 작업 디렉터리 내에 새 폴더를 만들고, 필요한 모든 템플릿 파일을 프로젝트에 복사하고, 회사 및 도구 이름으로 파일을 구성합니다.

다음으로 방금 만든 폴더로 디렉터리를 변경한 다음, 다음 명령을 실행하여 필요한 로컬 종속성을 설치합니다.

npm install

이 작업이 완료되면 Windows 관리 Center에 새 확장을 로드하는 데 필요한 모든 것을 설정했습니다.

사용자 지정 게이트웨이 플러그 인에 도구 확장 커넥트

이제 Windows 관리 Center SDK를 사용하여 확장을 만들었으므로 다음 단계에 따라 도구 확장을 사용자 지정 게이트웨이 플러그 인에 연결할 준비가 되었습니다.

확장 빌드 및 테스트용 로드

다음으로, Windows 관리 Center에 확장을 빌드하고 테스트용으로 로드합니다. 명령 창을 열고 디렉터리를 원본 디렉터리로 변경한 다음 빌드할 준비가 된 것입니다.

  • gulp를 사용하여 빌드 및 제공:

    gulp build
    gulp serve -p 4201
    

현재 사용 가능한 포트를 선택해야 합니다. Windows 관리 Center가 실행 중인 포트를 사용하지 않도록 합니다.

로컬로 제공되는 프로젝트를 Windows 관리 Center에 연결하여 테스트용으로 프로젝트를 Windows 관리 Center의 로컬 인스턴스에 로드할 수 있습니다.

  • 웹 브라우저에서 Windows 관리 센터 시작

  • 디버거 열기(F12)

  • 콘솔을 열고 다음 명령을 입력합니다.

    MsftSme.sideLoad("http://localhost:4201")
    
  • 웹 브라우저 새로 고침

이제 프로젝트 이름이 옆에 있는(측면 로드) 도구 목록에 프로젝트가 표시됩니다.

다른 버전의 Windows 관리 Center SDK를 대상으로 지정

SDK 변경 및 플랫폼 변경으로 확장을 최신 상태로 유지하는 것은 쉽습니다. 다른 버전의 Windows 관리 Center SDK를 대상으로 지정하는 방법을 알아봅니다.