about_Telemetry
about_Telemetry
PowerShell이 수집하는 원격 분석(텔레메트리) 데이터가 어떤 것들이고, 이것을 어떻게 끌 수 있는지 알려주는 문서예요. pwsh를 실행할 때와 세션 중에 각각 무엇이 전송되는지, 그리고 완전히 꺼두는 두 가지 방법까지 함께 살펴볼게요.
본문
PowerShell은 마이크로소프트에 기본 원격 분석 데이터를 Application Insights를 통해 보내요. 이 데이터 덕분에 마이크로소프트는 어떤 환경에서 PowerShell이 쓰이고 있는지를 더 잘 파악하고, 어떤 신기능이나 수정을 먼저 손댈지 우선순위를 정할 수 있어요. 그리고 이 데이터는 보내기 전에 익명화(anonymize)돼요.
시작할 때 PowerShell이 보내는 정보는 이렇습니다.
- 운영체제의 제조사, 이름, 버전
- PowerShell의 버전
POWERSHELL_DISTRIBUTION_CHANNEL환경 변수의 값- PowerShell이 사용하는 Application Insights SDK의 버전
- IP 주소를 기반으로 한 호스트의 지리적 위치
- 값은 빼고
pwsh에 전달된 매개변수 이름들 - 현재 세션의 실행 정책(Execution Policy) 설정
- 인스턴스를 실행하는 사용자를 나타내는 무작위로 생성된 GUID
- 세션 인스턴스를 나타내는 무작위로 생성된 GUID
이런 시작 시 원격 분석 데이터는 pwsh 실행 파일을 시작할 때만 수집돼요. PowerShell 엔진이 다른 호스트 애플리케이션에 내장(embed)되어 있다면 이 정보는 전송되지 않아요.
참고 — Application Insights는 호스트의 IP 주소로 지리적 위치를 알아내요. 하지만 IP 주소 자체는 원격 분석 데이터에 포함되지도 않고 데이터베이스에 저장되지도 않아요. 자세한 내용은 Geolocation and IP address handling 문서를 참고하세요.
세션 중에 PowerShell이 보내는 정보는 이렇습니다.
PowerShell.Create()API 호출 횟수- 가져온(import) 마이크로소프트 소유 모듈의 이름과 버전
CrescendoBuilt태그가 붙은 가져온 모듈의 수- 활성화된 실험 기능(experimental features)의 이름
- 비활성화된 실험 기능의 이름
$PSNativeCommandUseErrorActionPreference기본 설정 변수의 값.true,false,unset중 하나예요.- 원격 세션 열기 작업의 횟수
- 등록된 하위 시스템의 이름:
Completion과general. 이 둘 중 하나가 아니면anonymous가 이름으로 제출돼요. - 제공된
CommandNotFound피드백 제안의 횟수 PowerShellUnsafeAssemblyLoad사용 횟수와 로드 성공 여부
참고로 $Env:POWERSHELL_DISTRIBUTION_CHANNEL 환경 변수는 설치 패키지가 PowerShell 설치 방법과 출처를 기록하기 위해 설정해 두는 값이에요. 이 값은 마이크로소프트로 보내지는 원격 분석 데이터에 포함되기 때문에, 사용자가 함부로 바꾸면 안 돼요.
이 세션 중 정보는 모든 플랫폼의 모든 호스트 애플리케이션에서, 세션이 살아있는 동안 주기적으로 전송돼요.
원격 분석 끄기 (Disable telemetry)
원격 분석 전송을 끄는 방법은 두 가지예요.
- 모든 플랫폼 공통 — 환경 변수
$Env:POWERSHELL_TELEMETRY_OPTOUT를true,yes,1중 하나로 설정하세요. 이 환경 변수가 효과를 가지려면 PowerShell 프로세스를 시작하기 전에 설정되어 있어야 해요. 자세한 내용은 about_Environment_Variables 문서를 확인하세요. - Windows에서 PowerShell 7.6.2부터 — PowerShell은 Windows의 진단 및 피드백(Diagnostics & feedback) 설정을 따르기 시작했어요. Windows에서 아래 단계로 원격 분석을 끌 수 있습니다.
- 설정(Settings) 앱을 열고 개인정보 및 보안(Privacy & security) > 진단 및 피드백(Diagnostics & feedback) 으로 이동하세요.
- 진단 데이터(Diagnostic data) 섹션을 펼치세요.
- 선택적 진단 데이터 보내기(Send optional diagnostic data) 아래의 토글을 끔(Off) 으로 설정하세요.
더 알아보기
- 이 환경 변수들에 대한 더 자세한 내용은 about_Environment_Variables 문서를 참고하세요.
- 마이크로소프트의 개인정보 처리 방침에 대한 내용은 Microsoft Privacy Statement를 확인하세요.