CMPivot 변경 내용

적용 대상: Configuration Manager(현재 분기)

다음 정보를 사용하여 Configuration Manager 버전 간의 CMPivot 변경 내용에 대해 알아봅니다.

버전 2107의 CMPivot 변경 내용

간소화된 CMPivot 권한 요구 사항

CMPivot 권한 요구 사항을 간소화했습니다. 새 권한은 온-프레미스 콘솔의 CMPivot 독립 실행형 및 CMPivot에 적용됩니다. 다음과 같은 변경 내용이 적용되었습니다.

  • CMPivot에는 더 이상 SMS 스크립트 읽기 권한이 필요하지 않습니다.

    • CMPivot.log에 표시된 것처럼 관리 서비스가 503(서비스를 사용할 수 없음) 오류로 인해 다시 반환되는 경우 SMS 공급자는 여전히 이 권한을 요구합니다.
  • 기본 scope 권한이 필요하지 않습니다.

CMPivot에 대한 일반적인 개선 사항

CMPivot을 다음과 같이 개선했습니다.

  • summarize 연산자와 함께 사용할 수 있는 maxifminif 집계가 추가되었습니다.
  • 쿼리 편집기에서 자동 완성 제안을 쿼리하는 향상된 기능
  • 레지스트리 엔터티에 키 값 추가
  • 지정된 식과 일치하는 모든 레지스트리 키를 반환하는 새 RegistryKey 엔터티를 추가했습니다.

Registry와 RegistryKey 엔터티 간의 차이점을 검토하려면 다음 샘플을 사용할 수 있습니다.

// Change the path to match your desired registry hive query

Registry('hklm:\SOFTWARE\Microsoft\EnterpriseCertificates\Root\Certificates\*')
RegistryKey('hklm:\SOFTWARE\Microsoft\EnterpriseCertificates\Root\Certificates\*')

RegistryKey('hklm:\SOFTWARE\Microsoft\SMS\*')
Registry('hklm:\SOFTWARE\Microsoft\SMS\*')

버전 2103의 CMPivot 변경 내용

버전 2103부터 CMPivot에 대해 다음과 같은 개선 사항이 제공되었습니다.

결과가 너무 크면 경고 메시지 및 CMPivot 데이터 내보내기 옵션

결과가 너무 크면 다음 경고 메시지가 표시됩니다.

쿼리는 많은 수의 결과를 반환했습니다. 쿼리를 수정하여 결과의 범위를 좁히거나 이 배너를 선택하여 결과를 내보냅니다.

이 메시지는 다음 시나리오에서 발생합니다.

  • 결과가 100,000개 셀보다 큰 경우

    • instance 경우 엔터티 데이터의 열이 10개인 10,000개의 디바이스(행)에 대한 경고 임계값에 도달합니다.
    • 이 경우 결과를 .csv 파일로 내보내는 옵션이 제공됩니다.
  • 지정된 디바이스에서 128KB 이상의 데이터를 반환하도록 요청된 경우

    • instance CcmLog('ciagent', 120d) 경우 로그 결과를 쿼리하며 128KB 제한을 초과할 수 있습니다.
    • 결과가 128KB를 초과하면 경고가 표시되지만 클라이언트에서 서버로 반환되지 않으므로 내보낼 수 없습니다.

CMPivot에서 커뮤니티 허브에서 공유되는 상위 쿼리에 액세스

버전 2103부터 온-프레미스 CMPivot에서 커뮤니티 허브에서 공유되는 상위 CMPivot 쿼리에 액세스할 수 있습니다. CMPivot 사용자는 광범위한 커뮤니티에서 공유하는 미리 만들어진 CMPivot 쿼리를 사용하여 다양한 쿼리에 액세스할 수 있습니다. 온-프레미스 CMPivot은 커뮤니티 허브에 액세스하고 다운로드한 최상위 CMPivot 쿼리 목록을 반환합니다. 사용자는 상위 쿼리를 검토하고 사용자 지정한 다음 주문형으로 실행할 수 있습니다. 이러한 향상된 기능을 통해 쿼리를 생성하지 않고도 즉시 사용할 수 있는 쿼리를 더 다양하게 선택할 수 있으며 향후 참조를 위해 쿼리를 빌드하는 방법에 대한 정보 공유도 가능합니다.

참고

이러한 쿼리는 Configuration Manager 콘솔에서 CMPivot을 실행할 때 사용할 수 있습니다. 독립 실행형 CMPivot에서 아직 사용할 수 없습니다.

필수 조건:

CMPivot을 사용하여 상위 커뮤니티 허브 쿼리에 액세스

  1. 자산 및 규정 준수 작업 영역으로 이동한 다음, 디바이스 컬렉션 노드를 선택합니다.

  2. 대상 컬렉션, 대상 디바이스 또는 디바이스 그룹을 선택한 다음 리본에서 CMPivot 시작을 선택하여 도구를 시작합니다.

  3. 메뉴에서 커뮤니티 허브 아이콘을 사용합니다.

    커뮤니티 허브 아이콘

  4. 상위 공유 CMPivot 쿼리 목록을 검토합니다.

    커뮤니티 허브의 주요 CMPivot 쿼리

  5. 상위 쿼리 중 하나를 선택하여 쿼리 창에 로드합니다.

  6. 필요한 경우 쿼리 를 편집한 다음 , 쿼리 실행을 선택합니다.

  7. 필요에 따라 폴더 아이콘을 선택하여 즐겨찾기 목록에 액세스합니다. 나중에 실행하려면 원래 쿼리 또는 편집한 버전을 즐겨찾기 목록에 추가합니다. 커뮤니티 허브 아이콘을 선택하여 다른 쿼리를 검색합니다.

  8. CMPivot 창을 열어 두면 클라이언트의 결과를 볼 수 있습니다. CMPivot 창을 닫으면 세션이 완료됩니다. 쿼리가 전송된 경우 클라이언트는 여전히 서버에 상태 메시지 응답을 보냅니다.

버전 2006의 CMPivot 변경 내용

버전 2006부터 CMPivot에 대해 다음과 같은 개선 사항이 수행되었습니다.

  • 관리 콘솔에서 시작된 CMPivot 독립 실행형 및 CMPivot이 수렴되었습니다. 관리 콘솔에서 CMPivot을 시작하면 CMPivot 독립 실행형과 동일한 기본 기술을 사용하여 시나리오 패리티를 제공합니다.

  • CMPivot의 키보드 탐색 기능이 향상되었습니다.

  • 디바이스 컬렉션을 선택하지 않고도 개별 디바이스 또는 디바이스 노드의 여러 디바이스에서 CMPivot을 실행할 수 있습니다. 이러한 개선을 통해 기술 지원팀 가상 사용자와 같은 사용자가 미리 만든 컬렉션 외부의 특정 디바이스에 대한 CMPivot 쿼리를 더 쉽게 만들 수 있습니다.

    • 디바이스 컬렉션에서 개별 디바이스 또는 다중 선택 디바이스를 선택하거나 CMPivot 시작을 선택합니다.
  • 쿼리 목록 보기 내에서 디바이스를 반환할 때 하나 이상의 디바이스에서 디바이스 피벗 을 선택한 다음 해당 디바이스에서만 피벗 및 쿼리하여 추가로 드릴인할 수 있습니다. 이렇게 변경하면 원래 컬렉션에서 더 큰 디바이스 집합을 쿼리하지 않고 드릴인할 수 있습니다. 디바이스 피벗피벗을 로 대체했습니다.

    • 기존 CMPivot 작업 내에서 출력에서 개별 디바이스 또는 다중 선택 디바이스를 선택합니다. 디바이스 피벗 옵션을 사용하여 마우스 오른쪽 단추로 클릭하고 피벗 합니다. 이 작업은 선택한 디바이스로 범위가 지정된 별도의 CMPivot instance 시작합니다. 이렇게 하면 컬렉션을 만들 필요 없이 원하는 디바이스에서 피벗하고 쿼리하는 것이 더 쉬워집니다.
  • 개별 디바이스에 대해 CMPivot을 실행하면 디바이스 이름이 창 맨 위에 나열됩니다. 여러 디바이스의 경우 선택한 디바이스 수가 창 맨 위에 나열됩니다.

  • CMPivot에서 컬렉션에 대해 쿼리할 필요가 없으므로 쿼리 요약 탭의 컬렉션 만들기 옵션이 제거되었습니다. 디바이스 피벗을 수행하여 쿼리하려는 디바이스로 범위가 지정된 CMPivot의 새 instance 엽니다. 컬렉션 만들기는 기본 메뉴에서 계속 사용할 수 있습니다.

CMPivot을 사용하는 여러 디바이스에 대한 디바이스 피벗

버전 2002의 CMPivot 변경 내용

CMPivot 엔터티를 보다 쉽게 탐색할 수 있도록 했습니다. Configuration Manager 버전 2002부터 CMPivot 엔터티를 검색할 수 있습니다. 엔터티 및 엔터티 개체 형식을 쉽게 구분하기 위해 새 아이콘도 추가되었습니다.

CMPivot 엔터티 검색

버전 1910의 CMPivot 변경 내용

1910 버전부터 CMPivot은 네트워크 트래픽을 줄이고 서버의 부하를 줄이기 위해 크게 최적화되었습니다. 또한 문제 해결 및 헌팅에 도움이 되도록 여러 엔터티 및 엔터티 개선 사항이 추가되었습니다. 1910 버전에서 CMPivot에 대해 다음과 같은 변경 내용이 도입되었습니다.

CMPivot 엔진에 대한 최적화

CMPivot은 네트워크 트래픽과 서버의 부하를 줄이기 위해 1910년에 최적화되었습니다. 이제 많은 쿼리 작업이 서버가 아닌 클라이언트에서 직접 수행됩니다. 또한 이 변경은 일부 CMPivot 작업이 첫 번째 쿼리에서 최소 데이터를 반환한다는 것을 의미합니다. 자세한 내용을 확인하기 위해 데이터를 드릴인하기로 결정한 경우 새 쿼리가 실행되어 클라이언트에서 추가 데이터를 가져올 수 있습니다. instance 경우 이전에 "요약된 개수" 쿼리를 실행할 때 큰 데이터 집합이 서버로 반환되었습니다. 큰 데이터 집합을 반환하는 동안 즉각적인 드릴다운이 제공되었지만 요약된 개수만 필요한 경우가 많았습니다. 1910년 특정 클라이언트를 드릴인하도록 선택하면 요청한 추가 데이터를 반환하기 위해 다른 데이터 컬렉션이 발생합니다. 이 변경은 많은 수의 클라이언트에 대한 쿼리에 더 나은 성능과 확장성을 제공합니다.

예제

CMPivot 최적화는 CMPivot 쿼리를 실행하는 데 필요한 네트워크 및 서버 CPU 부하를 크게 줄입니다. 이러한 최적화를 통해 이제 기가바이트의 클라이언트 데이터를 실시간으로 검색할 수 있습니다. 다음 쿼리는 이러한 최적화를 보여 줍니다.

  • 인증 실패는 엔터프라이즈의 모든 클라이언트에서 모든 이벤트 로그를 검색합니다.

    EventLog('Security')
    | where  EventID == 4673
    | summarize count() by Device
    | order by count_ desc
    
  • 해시로 파일을 검색합니다.

    Device
    | join kind=leftouter ( File('%windir%\\system32\\*.exe')
    | where SHA256Hash == 'A92056D772260B39A876D01552496B2F8B4610A0B1E084952FE1176784E2CE77')
    | project Device, MalwareFound = iif( isnull(FileName), 'No', 'Yes')
    

WinEvent(<logname>,[<timespan>])

이 엔터티는 이벤트 로그 및 이벤트 추적 로그 파일에서 이벤트를 가져오는 데 사용됩니다. 엔터티는 Windows 이벤트 로그 기술로 생성된 이벤트 로그에서 데이터를 가져옵니다. 엔터티는 ETW(Windows용 이벤트 추적)에서 생성된 로그 파일의 이벤트도 가져옵니다. WinEvent는 기본적으로 지난 24시간 이내에 발생한 이벤트를 확인합니다. 그러나 시간 범위를 포함하여 24시간 기본값을 재정의할 수 있습니다.

WinEvent('Microsoft-Windows-HelloForBusiness/Operational', 1d)
| where LevelDisplayName =='Error'
| summarize count() by Device

FileContent(<filename>)

FileContent는 텍스트 파일의 내용을 가져오는 데 사용됩니다.

FileContent('c:\\windows\\SMSCFG.ini')
| where Content startswith  'SMS Unique Identifier='
| project Device, SMSId= substring(Content,22)

ProcessModule(<processname>)

이 엔터티는 지정된 프로세스에 의해 로드된 모듈(dll)을 열거하는 데 사용됩니다. ProcessModule은 합법적인 프로세스에서 숨기는 맬웨어를 헌팅할 때 유용합니다.

ProcessModule('powershell')
| summarize count() by ModuleName
| order by count_ desc

AadStatus

이 엔터티는 디바이스에서 현재 Microsoft Entra ID 정보를 가져오는 데 사용할 수 있습니다.

AadStatus
| project Device, IsAADJoined=iif( isnull(DeviceId),'No','Yes')
| summarize DeviceCount=count() by IsAADJoined
| render piechart

EPStatus

EPStatus는 컴퓨터에 설치된 맬웨어 방지 소프트웨어의 상태 가져오는 데 사용됩니다.

EPStatus
| project Device, QuickScanAge=datetime_diff('day',now(),QuickScanEndTime)
| summarize DeviceCount=count() by QuickScanAge
| order by QuickScanAge
| render barchart

CMPivot 독립 실행형을 사용하여 로컬 디바이스 쿼리 평가

Configuration Manager 콘솔 외부에서 CMPivot을 사용하는 경우 Configuration Manager 인프라 없이 로컬 디바이스만 쿼리할 수 있습니다. 이제 CMPivot Azure Log Analytics 쿼리를 활용하여 로컬 디바이스에서 WMI 정보를 빠르게 볼 수 있습니다. 이렇게 하면 CMPivot 쿼리를 더 큰 환경에서 실행하기 전에 유효성 검사 및 구체화할 수 있습니다. CMPivot 독립 실행형은 영어로만 사용할 수 있습니다. CMPivot 독립 실행형에 대한 자세한 내용은 CMPivot 독립 실행형을 참조하세요.

로컬 디바이스 쿼리 평가에 대한 알려진 문제

  • 잠긴 WMI 클래스와 같이 액세스할 수 없는 WMI 엔터티에 대해 이 PC 에서 쿼리하는 경우 CMPivot에서 충돌이 발생할 수 있습니다. 상승된 권한이 있는 계정을 사용하여 CMPivot을 실행하여 해당 엔터티를 쿼리합니다.
  • 이 PC에서 비 WMI 엔터티를 쿼리하는 경우 잘못된 네임스페이스 또는 모호한 예외가 표시됩니다.
  • 실행 파일의 경로에서 직접 실행하지 않고 시작 메뉴 바로 가기에서 CMPivot 독립 실행형을 실행합니다.

기타 향상된 기능

  • like 연산자를 사용하여 정규식 형식 쿼리를 수행할 수 있습니다. 예를 들면

    //Find BIOS manufacture that contains any word like Micro, such as Microsoft
    Bios
    | where Manufacturer like '%Micro%'
    
  • 기본적으로 지난 24시간 동안의 메시지만 살펴보도록 CcmLog()EventLog() 엔터티를 업데이트했습니다. 이 동작은 선택적 시간 범위를 전달하여 재정의할 수 있습니다. 예를 들어 다음 쿼리는 지난 1시간 동안의 이벤트를 확인합니다.

    CcmLog('Scripts',1h)
    
  • 숨겨진 파일 및 시스템 파일에 대한 정보를 수집하고 MD5 해시를 포함하도록 File() 엔터티가 업데이트되었습니다. MD5 해시는 SHA256 해시만큼 정확하지는 않지만 대부분의 맬웨어 게시판에서 일반적으로 보고된 해시인 경향이 있습니다.

  • 쿼리에 주석을 추가할 수 있습니다. 이 동작은 쿼리를 공유할 때 유용합니다. 예를 들면

    //Get the top ten devices sorted by user
    Device
    | top 10 by UserName
    
  • CMPivot은 마지막 사이트에 자동으로 연결됩니다. CMPivot을 시작한 후 필요한 경우 새 사이트에 연결할 수 있습니다.

  • 내보내기 메뉴에서 클립보드에 대한 쿼리 링크에 대한 새 옵션을 선택합니다. 이 작업은 다른 사용자와 공유할 수 있는 클립보드에 대한 링크를 복사합니다. 예를 들면

    cmpivot:Ly8gU2FtcGxlIHF1ZXJ5DQpPcGVyYXRpbmdTeXN0ZW0NCnwgc3VtbWFyaXplIGNvdW50KCkgYnkgQ2FwdGlvbg0KfCBvcmRlciBieSBjb3VudF8gYXNjDQp8IHJlbmRlciBiYXJjaGFydA==

    이 링크는 다음 쿼리를 사용하여 CMPivot 독립 실행형을 엽니다.

    // Sample query
    OperatingSystem
    | summarize count() by Caption
    | order by count_ asc
    | render barchart
    

    이 링크가 작동하려면 CMPivot 독립 실행형을 설치합니다.

  • 쿼리 결과에서 디바이스가 엔드포인트용 Microsoft Defender 등록된 경우 디바이스를 마우스 오른쪽 단추로 클릭하여 Microsoft Defender 보안 센터 온라인 포털을 시작합니다.

버전 1910의 CMPivot에 대한 알려진 문제

  • 제한에 도달하면 최대 결과 배너가 표시되지 않을 수 있습니다.
    • 각 클라이언트는 쿼리당 128KB의 데이터로 제한됩니다.
    • 쿼리 결과가 128KB를 초과하는 경우 결과가 잘립니다.

버전 1906의 CMPivot 변경 내용

버전 1906부터 CMPivot에 다음 항목이 추가되었습니다.

CMPivot에서 조인, 추가 연산자 및 집계 추가

이제 추가 산술 연산자, 집계 및 레지스트리 및 파일을 함께 사용하는 것과 같은 쿼리 조인을 추가하는 기능이 있습니다. 다음 항목이 추가되었습니다.

테이블 연산자

테이블 연산자 설명
가입 두 테이블의 행을 병합하여 동일한 디바이스에 대한 행을 일치시켜 새 테이블을 형성합니다.
렌더링 결과를 그래픽 출력으로 렌더링합니다.

렌더링 연산자가 CMPivot에 이미 있습니다. 여러 계열 및 with 문에 대한 지원이 추가되었습니다. 자세한 내용은 예제 섹션 및 Kusto의 조인 연산자 문서를 참조하세요.

조인에 대한 제한 사항

  1. 조인 열은 항상 디바이스 필드에서 암시적으로 수행됩니다.
  2. 쿼리당 최대 5개의 조인을 사용할 수 있습니다.
  3. 최대 64개의 결합된 열을 사용할 수 있습니다.

스칼라 연산자

연산자 설명 예제
+ 추가 2 + 1, now() + 1d
- 빼기 2 - 1, now() - 1d
* 곱하면 2 * 2
/ 분할 2 / 1
% 모듈로 2 % 1

집계 함수

함수 설명
percentile() Expr에서 정의한 모집단의 지정된 가장 가까운 순위 백분위수에 대한 예상값을 반환합니다.
sumif() 조건자가 true로 평가되는 Expr의 합계를 반환합니다.

스칼라 함수

함수 설명
case() 조건자 목록을 평가하고 조건자가 충족되는 첫 번째 결과 식을 반환합니다.
iff() 첫 번째 인수를 평가하고 조건자가 true(두 번째) 또는 false(세 번째)로 평가되었는지 여부에 따라 두 번째 또는 세 번째 인수의 값을 반환합니다.
indexof() 함수는 입력 문자열 내에서 지정된 문자열이 처음 나타나는 인덱스(0부터 시작)를 보고합니다.
strcat() 1~64개 인수 간 연결
strlen() 입력 문자열의 길이(문자)를 반환합니다.
substring() 일부 인덱스에서 문자열의 끝으로 시작하는 원본 문자열에서 부분 문자열을 추출합니다.
tostring() 입력을 문자열 작업으로 변환합니다.

예제

  • 디바이스, 제조업체, 모델 및 OSVersion 표시:

    ComputerSystem
    | project Device, Manufacturer, Model
    | join (OperatingSystem | project Device, OSVersion=Caption)
    
  • 디바이스의 부팅 시간 그래프 표시:

    SystemBootData
    | where Device == 'MyDevice'
    | project SystemStartTime, BootDuration, OSStart=EventLogStart, GPDuration, UpdateDuration
    | order by SystemStartTime desc
    | render barchart with (kind=stacked, title='Boot times for MyDevice', ytitle='Time (ms)')
    

    ms의 디바이스에 대한 부팅 시간을 보여 주는 누적 가로 막대형 차트

보안 관리자 역할에 CMPivot 권한 추가

버전 1906부터 Configuration Manager 기본 제공 보안 관리자 역할에 다음 권한이 추가되었습니다.

  • SMS 스크립트 읽기
  • 컬렉션에서 CMPivot 실행
  • 인벤토리 보고서 읽기

참고

스크립트 실행CMPivot 실행 권한의 슈퍼 집합입니다.

CMPivot 독립 실행형

CMPivot을 독립 실행형 앱으로 사용할 수 있습니다. CMPivot 독립 실행형은 영어로만 사용할 수 있습니다. Configuration Manager 콘솔 외부에서 CMPivot을 실행하여 사용자 환경에서 디바이스의 실시간 상태를 확인합니다. 이 변경으로 콘솔을 먼저 설치하지 않고도 디바이스에서 CMPivot을 사용할 수 있습니다.

컴퓨터에 콘솔이 설치되어 있지 않은 기술 지원팀 또는 보안 관리자와 같은 다른 가상 사용자와 CMPivot의 기능을 공유할 수 있습니다. 이러한 다른 가상 사용자는 CMPivot을 사용하여 기존에 사용하는 다른 도구와 함께 Configuration Manager 쿼리할 수 있습니다. 이 풍부한 관리 데이터를 공유하면 역할을 교차하는 비즈니스 문제를 사전에 해결하기 위해 함께 작업할 수 있습니다.

CMPivot 독립 실행형 설치

  1. CMPivot을 실행하는 데 필요한 권한을 설정합니다. 자세한 내용은 필수 조건을 참조하세요. 권한이 사용자에게 적합한 경우 보안 관리자 역할을 사용할 수도 있습니다.

  2. 다음 경로 <site install path>\tools\CMPivot\CMPivot.msi에서 CMPivot 앱 설치 관리자를 찾습니다. 해당 경로에서 실행하거나 다른 위치에 복사할 수 있습니다.

  3. CMPivot 독립 실행형 앱을 실행하면 사이트에 연결하라는 메시지가 표시됩니다. 중앙 관리 또는 기본 사이트 서버의 정규화된 도메인 이름 또는 컴퓨터 이름을 지정합니다.

    • CMPivot 독립 실행형을 열 때마다 사이트 서버에 연결하라는 메시지가 표시됩니다.
  4. CMPivot을 실행할 컬렉션으로 이동한 다음 쿼리를 실행합니다.

    쿼리를 실행할 컬렉션으로 이동합니다.

참고

  • 스크립트 실행, 리소스 Explorer 및 웹 검색과 같은 마우스 오른쪽 단추 클릭 작업은 CMPivot 독립 실행형에서 사용할 수 없습니다. CMPivot 독립 실행형의 기본 용도는 Configuration Manager 인프라와 독립적으로 쿼리하는 것입니다. 보안 관리자를 돕기 위해 CMPivot 독립 실행형에는 Microsoft Defender 보안 센터 연결하는 기능이 포함되어 있습니다.
  • CMPivot 독립 실행형을 사용하여 로컬 디바이스 쿼리 평가를 수행할 수 있습니다.

버전 1902의 CMPivot 변경 내용

Configuration Manager 버전 1902부터 계층 구조의 CAS(중앙 관리 사이트)에서 CMPivot을 실행할 수 있습니다. 기본 사이트는 여전히 클라이언트에 대한 통신을 처리합니다. 중앙 관리 사이트에서 CMPivot을 실행하는 경우 고속 메시지 구독 채널을 통해 기본 사이트와 통신합니다. 이 통신은 사이트 간 표준 SQL Server 복제에 의존하지 않습니다.

CAS에서 CMPivot을 실행하려면 SQL Server 또는 SMS 공급자가 동일한 컴퓨터에 있지 않거나 가용성 그룹 구성이 SQL Server Always On 경우 추가 권한이 필요합니다. 이러한 원격 구성을 사용하면 CMPivot에 대한 "이중 홉 시나리오"가 있습니다.

이러한 "이중 홉 시나리오"에서 CAS에서 CMPivot이 작동하도록 하려면 제한된 위임을 정의할 수 있습니다. 이 구성의 보안 영향을 이해하려면 Kerberos 제한 위임 문서를 참조하세요. Kerberos는 컴퓨터 간의 모든 홉을 통해 작동해야 합니다.CAS와 공동 배치되는 SQL Server 또는 SMS 공급자와 같은 둘 이상의 원격 구성 또는 여러 개의 신뢰할 수 있는 포리스트가 있는 경우 사용 권한 설정의 조합이 필요할 수 있습니다. 수행해야 할 수 있는 단계는 다음과 같습니다.

CAS에는 원격 SQL Server 있습니다.

  1. 각 기본 사이트의 SQL Server 이동합니다.

    1. CAS 원격 SQL Server 및 CAS 사이트 서버를 Configmgr_DviewAccess 그룹에 추가합니다. 기본 사이트의 SQL Server 그룹 Configmgr_DviewAccess
  2. Active Directory 사용자 및 컴퓨터 이동합니다.

    1. 각 기본 사이트 서버에 대해 마우스 오른쪽 단추를 클릭하고 속성을 선택합니다.
      1. 위임 탭에서 세 번째 옵션인 지정된 서비스에만 위임할 수 있도록 이 컴퓨터를 신뢰합니다.
      2. Kerberos만 사용을 선택합니다.
      3. 포트 및 instance CAS의 SQL Server 서비스를 추가합니다.
      4. 이러한 변경 내용이 회사 보안 정책과 일치하는지 확인합니다.
    2. CAS 사이트의 경우 마우스 오른쪽 단추를 클릭하고 속성을 선택합니다.
      1. 위임 탭에서 세 번째 옵션인 지정된 서비스에만 위임할 수 있도록 이 컴퓨터를 신뢰합니다.
      2. Kerberos만 사용을 선택합니다.
      3. 포트 및 instance 사용하여 각 기본 사이트의 SQL Server 서비스를 추가합니다.
      4. 이러한 변경 내용이 회사 보안 정책과 일치하는지 확인합니다.

    이중 홉에 대한 CMPivot AD 위임 예제

CAS에는 원격 공급자가 있습니다.

  1. 각 기본 사이트의 SQL Server 이동합니다.
    1. CAS 공급자 컴퓨터 계정 및 CAS 사이트 서버를 Configmgr_DviewAccess 그룹에 추가합니다.
  2. Active Directory 사용자 및 컴퓨터 이동합니다.
    1. CAS 공급자 컴퓨터를 선택하고 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.
      1. 위임 탭에서 세 번째 옵션인 지정된 서비스에만 위임할 수 있도록 이 컴퓨터를 신뢰합니다.
      2. Kerberos만 사용을 선택합니다.
      3. 포트 및 instance 사용하여 각 기본 사이트의 SQL Server 서비스를 추가합니다.
      4. 이러한 변경 내용이 회사 보안 정책과 일치하는지 확인합니다.
    2. CAS 사이트 서버를 선택하고 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.
      1. 위임 탭에서 세 번째 옵션인 지정된 서비스에만 위임할 수 있도록 이 컴퓨터를 신뢰합니다.
      2. Kerberos만 사용을 선택합니다.
      3. 포트 및 instance 사용하여 각 기본 사이트의 SQL Server 서비스를 추가합니다.
      4. 이러한 변경 내용이 회사 보안 정책과 일치하는지 확인합니다.
  3. CAS 원격 공급자 컴퓨터를 다시 시작합니다.

SQL Server Always On 가용성 그룹

  1. 각 기본 사이트의 SQL Server 이동합니다.
    1. CAS 사이트 서버를 Configmgr_DviewAccess 그룹에 추가합니다.
  2. Active Directory 사용자 및 컴퓨터 이동합니다.
    1. 각 기본 사이트 서버에 대해 마우스 오른쪽 단추를 클릭하고 속성을 선택합니다.
      1. 위임 탭에서 세 번째 옵션인 지정된 서비스에만 위임할 수 있도록 이 컴퓨터를 신뢰합니다.
      2. Kerberos만 사용을 선택합니다.
      3. 포트 및 instance 사용하여 SQL Server 노드에 대한 CAS의 SQL Server 서비스 계정을 추가합니다.
      4. 이러한 변경 내용이 회사 보안 정책과 일치하는지 확인합니다.
    2. CAS 사이트 서버를 선택하고 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.
      1. 위임 탭에서 세 번째 옵션인 지정된 서비스에만 위임할 수 있도록 이 컴퓨터를 신뢰합니다.
      2. Kerberos만 사용을 선택합니다.
      3. 포트 및 instance 사용하여 각 기본 사이트의 SQL Server 서비스를 추가합니다.
      4. 이러한 변경 내용이 회사 보안 정책과 일치하는지 확인합니다.
  3. CAS 수신기 이름 및 각 기본 수신기 이름에 대해 SPN이 게시 되었는지 확인합니다.
  4. 기본 SQL Server 노드를 다시 시작합니다.
  5. CAS 사이트 서버 및 CAS SQL Server 노드를 다시 시작합니다.

버전 1810의 CMPivot 변경 내용

CMPivot에는 Configuration Manager 버전 1810부터 다음과 같은 개선 사항이 포함되어 있습니다.

CMPivot 유틸리티 및 성능

  • CMPivot은 20,000개 행이 아닌 최대 100,000개의 셀을 반환합니다.

    • 엔터티에 5개의 속성(5개 열)이 있는 경우 최대 20,000개의 행이 표시됩니다.
    • 속성이 10개인 엔터티의 경우 최대 10,000개의 행이 표시됩니다.
    • 표시된 총 데이터는 100,000개 셀보다 작거나 같습니다.
  • 쿼리 요약 탭에서 실패 또는 오프라인 디바이스 수를 선택한 다음 컬렉션 만들기 옵션을 선택합니다. 이 옵션을 사용하면 수정 배포를 사용하여 해당 디바이스를 쉽게 대상으로 지정할 수 있습니다.

    • CMPivot에서 컬렉션에 대해 쿼리할 필요가 없으므로 이 옵션은 버전 2006에서 제거되었습니다.
  • 폴더 아이콘을 클릭하여 즐겨찾 는 쿼리를 저장합니다. CMPivot에서 즐겨찾는 쿼리를 저장하는 예제

  • 클라이언트는 빠른 통신 채널을 통해 사이트에 80KB 미만의 출력을 반환하는 1810 버전으로 업데이트되었습니다.

    • 이렇게 변경하면 스크립트 또는 쿼리 출력을 보는 성능이 향상됩니다.
    • 스크립트 또는 쿼리 출력이 80KB보다 큰 경우 클라이언트는 상태 메시지를 통해 데이터를 보냅니다.
    • 클라이언트가 1810 클라이언트 버전으로 업데이트되지 않은 경우 상태 메시지를 계속 사용합니다.
  • CMPivot을 시작할 때 다음 오류가 표시 될 수 있습니다. 호환되지 않는 스크립트 버전으로 인해 지금 CMPivot을 사용할 수 없습니다. 이 문제는 계층 구조가 사이트를 업그레이드하는 중이기 때문일 수 있습니다. 업그레이드가 완료될 때까지 기다렸다가 다시 시도하세요.

    • 이 메시지가 표시되면 다음을 의미할 수 있습니다.
      • 보안 scope 제대로 설정되지 않았습니다.
      • 프로세스에서 업그레이드에 문제가 있습니다.
      • 기본 CMPivot 스크립트는 호환되지 않습니다.

스칼라 함수

CMPivot은 다음 스칼라 함수를 지원합니다.

  • ago(): 현재 UTC 클록 시간에서 지정된 시간 범위를 뺍니다.
  • datetime_diff(): 두 datetime 값 간의 달력 차이를 계산합니다.
  • now(): 현재 UTC 클록 시간을 반환합니다.
  • bin(): 지정된 bin 크기의 정수 배수로 값을 반올림합니다.

참고

datetime 데이터 형식은 일반적으로 날짜 및 시간으로 표현되는 인스턴트 시간을 나타냅니다. 시간 값은 1초 단위로 측정됩니다. datetime 값은 항상 UTC 표준 시간대에 있습니다. 항상 날짜 시간 리터럴을 ISO 8601 형식으로 표현합니다(예: ). yyyy-mm-dd HH:MM:ss

예제

  • datetime(2015-12-31 23:59:59.9): 특정 날짜 시간 리터럴
  • now(): 현재 시간
  • ago(1d): 현재 시간 -1일

시각화 렌더링

CMPivot에는 이제 KQL 렌더링 연산자에 대한 기본 지원이 포함됩니다. 이 지원에는 다음 유형이 포함됩니다.

  • barchart: 첫 번째 열은 x축이며 텍스트, 날짜/시간 또는 숫자일 수 있습니다. 두 번째 열은 숫자여야 하며 가로 줄무늬로 표시됩니다.
  • columnchart: 가로 줄무늬 대신 세로 줄무늬가 있는 바차트와 같습니다.
  • 원형 차트: 첫 번째 열은 색 축, 두 번째 열은 숫자입니다.
  • timechart: 꺾은선형 그래프입니다. 첫 번째 열은 x축이며 datetime이어야 합니다. 두 번째 열은 y축입니다.

예: 가로 막대형 차트

다음 쿼리는 가장 최근에 사용한 애플리케이션을 가로 막대형 차트로 렌더링합니다.

CCMRecentlyUsedApplications
| summarize dcount( Device ) by ProductName
| top 10 by dcount_
| render barchart

CMPivot 가로 막대형 차트 시각화의 예

예: 시간 차트

시간 차트를 렌더링하려면 새 bin() 연산자를 사용하여 이벤트를 시간별로 그룹화합니다. 다음 쿼리는 지난 7일 동안 디바이스가 시작된 시기를 보여 줍니다.

OperatingSystem
| where LastBootUpTime <= ago(7d)
| summarize count() by bin(LastBootUpTime,1d)
| render timechart

CMPivot 시간 차트 시각화의 예

예: 원형 차트

다음 쿼리는 원형 차트의 모든 OS 버전을 표시합니다.

OperatingSystem
| summarize count() by Caption
| render piechart

CMPivot 원형 차트 시각화의 예

하드웨어 인벤토리

CMPivot을 사용하여 하드웨어 인벤토리 클래스를 쿼리합니다. 이러한 클래스에는 하드웨어 인벤토리에 대한 사용자 지정 확장이 포함됩니다. CMPivot은 사이트 데이터베이스에 저장된 마지막 하드웨어 인벤토리 검사에서 캐시된 결과를 즉시 반환합니다. 동시에 필요한 경우 온라인 클라이언트의 라이브 데이터로 결과를 업데이트합니다.

결과 테이블 또는 차트에 있는 데이터의 색 채도는 데이터가 라이브인지 캐시되었는지 여부를 나타냅니다. 예를 들어 진한 파란색은 온라인 클라이언트의 실시간 데이터입니다. 연한 파란색은 캐시된 데이터입니다.

예제

LogicalDisk
| summarize sum( FreeSpace ) by Device
| order by sum_ desc
| render columnchart

세로 막대형 차트 시각화를 사용하여 CMPivot 인벤토리 쿼리의 예

제한 사항

  • 다음 하드웨어 인벤토리 엔터티는 지원되지 않습니다.
    • 배열 속성(예: IP 주소)
    • Real32/Real64
    • 포함된 개체 속성
  • 인벤토리 엔터티 이름은 문자로 시작해야 합니다.
  • 동일한 이름의 인벤토리 엔터티를 만들어 기본 제공 엔터티를 덮어쓸 수 없습니다.

스칼라 연산자

CMPivot에는 다음 스칼라 연산자가 포함됩니다.

참고

  • LHS: 연산자의 왼쪽에 있는 문자열
  • RHS: 연산자의 오른쪽에 있는 문자열
연산자 설명 예제(yields true)
== 같음 "aBc" == "aBc"
!= 같지 않음 "abc" != "ABC"
좋아요 LHS에는 RHS에 대한 일치 항목이 포함되어 있습니다. "FabriKam" like "%Brik%"
!처럼 LHS에는 RHS에 대한 일치 항목이 포함되어 있지 않습니다. "Fabrikam" !like "%xyz%"
포함 RHS는 LHS의 하위 시퀀스로 발생합니다. "FabriKam" contains "BRik"
!포함 RHS는 LHS에서 발생하지 않습니다. "Fabrikam" !contains "xyz"
startswith RHS는 LHS의 초기 하위 시퀀스입니다. "Fabrikam" startswith "fab"
!startswith RHS는 LHS의 초기 하위 시퀀스가 아닙니다. "Fabrikam" !startswith "kam"
Endswith RHS는 LHS의 종결 하위 시퀀스입니다. "Fabrikam" endswith "Kam"
!Endswith RHS는 LHS의 종결 하위 시퀀스가 아닙니다. "Fabrikam" !endswith "brik"

쿼리 요약

CMPivot 창 아래쪽에서 쿼리 요약 탭을 선택합니다. 이 상태 오프라인 클라이언트를 식별하거나 발생할 수 있는 오류를 해결하는 데 도움이 됩니다. Count 열에서 값을 선택하여 해당 상태 있는 특정 디바이스 목록을 엽니다.

예를 들어 실패 상태 있는 디바이스 수를 선택합니다. 특정 오류 메시지를 확인하고 이러한 디바이스 목록을 내보냅니다. 특정 cmdlet이 인식되지 않는 경우 내보낸 디바이스 목록에서 컬렉션을 만들어 Windows PowerShell 업데이트를 배포합니다.

CMPivot 감사 상태 메시지

버전 1810부터 CMPivot을 실행하면 MessageID 40805를 사용하여 감사 상태 메시지가 만들어집니다. 시스템 상태모니터링> 상태 > 메시지 쿼리로 이동하여 상태 메시지를 볼 수있습니다. 특정 사용자에 대한 모든 감사 상태 메시지, 특정 사이트에 대한 모든 감사 상태 메시지를 실행하거나 고유한 상태 메시지 쿼리를 만들 수 있습니다.

메시지에는 다음 형식이 사용됩니다.

MessageId 40805: User UserName>은 컬렉션 <컬렉션 ID에서 해시 <Script-Hash>를 사용하여 Script-Guid> 스크립트<를 실행했습니다>.<

  • 7DC6B6F1-E7F6-43C1-96E0-E1D16BC25C14 CMPivot의 Script-Guid.
  • Script-Hash 클라이언트의 scripts.log 파일에서 볼 수 있습니다.
  • 클라이언트의 스크립트 저장소에 저장된 해시를 볼 수도 있습니다. 클라이언트의 파일 이름은 Script-Guid>_<Script-Hash>입니다<.
    • 예제 파일 이름: C:\Windows\CCM\ScriptStore\7DC6B6F1-E7F6-43C1-96E0-E1D16BC25C14_abc1d23e45678901fabc123d456ce789fa1b2cd3e456789123fab4c56789d0123.ps

CMPivot 감사 상태 메시지 샘플

다음 단계

CMPivot 문제 해결