PowerShell을 사용하여 원치 않는 Windows 10 앱 제거

Windows 10에는 계산기 및 날씨와 같은 기본 앱부터 메일 및 사진과 같은 작업 중심 앱까지 다양한 내장 앱이 포함되어 있습니다. 대부분의 상황에서 이러한 내장 앱은 적합하지만 비즈니스 환경에서는 부적절하거나 중복되거나 지원되지 않을 수 있습니다. 이러한 앱은 많은 경우 보안 위험을 야기할 수 있습니다. 따라서이 게시물에서는 PowerShell을 사용하여 Windows 10 앱을 제거하는 방법을 배우게 됩니다.

문제는 마이크로소프트가 일부 앱을 제거하기 어렵게 만든다는 것입니다. 일반적인 방법으로 제거 할 때 제거 버튼이 없습니다. 내장 앱은 PowerShell을 통해 제거해야합니다.

면책 조항: Windows 10 앱을 모두 제거하지 마십시오. 그 중 많은 앱은 Windows 10 “체험”에 필요하며 .NET 프레임 워크와 같은 다른 프로그램에 필요합니다. 제거할 애플리케이션을 신중하게 선택하십시오. 그러나 모든 애플리케이션을 다시 설치 할 수 있으며 이 문서의 끝에서 PowerShell 명령을 확인할 수 있습니다

PowerShell을 사용하여 Windows 10 앱 찾기

사실은 두 가지 다른 종류의 애플리케이션을 작업할 것입니다.

  • AppX 패키지 – 운영 체제와 함께 설치된 애플리케이션
  • AppX 프로비전 패키지 – 사용자 프로필 최초 설정으로 설치된 애플리케이션.

첫 번째 단계는 설치된 앱 목록을 얻는 것입니다. 그러기 위해 PowerShell을 관리 권한으로 시작하고 명령 Get-AppxPackage를 실행하십시오. 이것은 Windows 10에 설치된 모든 AppX 패키지를 반환합니다.

PS C:\> Get-AppxPackage

Name              : Microsoft.NET.Native.Framework.1.6
Publisher         : CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
Architecture      : X64
ResourceId        :
Version           : 1.6.24903.0
PackageFullName   : Microsoft.NET.Native.Framework.1.6_1.6.24903.0_x64__8wekyb3d8bbwe
InstallLocation   : C:\Program Files\WindowsApps\Microsoft.NET.Native.Framework.1.6_1.6.24903.0_x64__8wekyb3d8bbwe
IsFramework       : True
PackageFamilyName : Microsoft.NET.Native.Framework.1.6_8wekyb3d8bbwe
PublisherId       : 8wekyb3d8bbwe
IsResourcePackage : False
IsBundle          : False
IsDevelopmentMode : False
IsPartiallyStaged : False
SignatureKind     : Store
Status            : Ok
--snip--

제공된 패키지는 약간 다른 명령어를 사용하며 Online 매개변수도 필요합니다. Online 매개변수는 현재 온라인 운영 체제에서 패키지를 가져오며 로컬 디렉터리에 있는 이미지 파일이 아닙니다. 이는 각 패키지에 대한 모든 세부 정보 목록을 제공할 것입니다.

PS C:\> Get-AppxProvisionedPackage -Online


DisplayName  : Microsoft.3DBuilder
Version      : 16.1.1431.0
Architecture : neutral
ResourceId   : ~
PackageName  : Microsoft.3DBuilder_16.1.1431.0_neutral_~_8wekyb3d8bbwe
Regions      :

DisplayName  : Microsoft.BingWeather
Version      : 4.31.11905.0
Architecture : neutral
ResourceId   : ~
PackageName  : Microsoft.BingWeather_4.31.11905.0_neutral_~_8wekyb3d8bbwe
Regions      :
--snip--

앱 목록 줄이기

이 두 가지 명령은 모두 다소 장황한 목록을 생성하며 관심 있는 것은 Appx 패키지의 Name 및 Provisioned 패키지의 DisplayName입니다. 다음과 같이 표시됩니다.

Details of Get-AppxPackage listing
Listing for get-appxprovisionedpackage

작업을 조금 더 쉽게 하려면 결과를 Select-Object를 통해 파이프하여 NameDisplayName 속성을 선택하십시오. 이렇게 하면 아래와 같은 목록이 제공됩니다. 이 목록은 작업하기에 더 쉽습니다.

Get-AppxPackage | Select-Object Name
Output of get-appxpackage | select object name

이제 제거하려는 Windows 10 앱을 볼 수 있습니다. 이 시점에서 제거하려는 모든 패키지의 이름 목록을 나열해야 합니다. 그 방법 중 하나는 제거하려는 Windows 10 앱을 복사하여 붙여넣고 그 방식으로 목록을 작성하는 것입니다. 제가 사용하는 한 가지 꿀팁은 결과를 텍스트 파일에 저장한 다음 Visual Studio Code에서 해당 파일을 열어서 작업하는 것입니다. 예를 들어:

Get-AppxPackage | Select-object name | Out-File apps.txt | code apps.txt

외부 편집기에서 제거할 앱의 배열을 시작하세요.

$ProvisionedAppPackageNames = @()

이제 목록이 있으므로 PowerShell 스크립트를 작성할 수 있습니다.

PowerShell 스크립트로 Windows 10 앱 제거

이제 편집기에 AppX 패키지 이름이 포함된 배열이 정의되어 있어야 합니다. 아래에 예제를 제시했습니다.

$ProvisionedAppPackageNames = @(
    "Microsoft.BingFinance"
    "Microsoft.BingNews"
    "Microsoft.BingSports"
    "Microsoft.BingWeather"
    "Microsoft.MicrosoftOfficeHub"
    "Microsoft.Getstarted"
    "microsoft.windowscommunicationsapps" # Mail,Calendar
    "Microsoft.Office.OneNote"
    "Microsoft.People"
    "Microsoft.SkypeApp"
    "Microsoft.XboxApp"
    "Microsoft.ZuneMusic"
    "Microsoft.ZuneVideo"
)

특정 애플리케이션을 제거하기 위해 배열에 애플리케이션을 추가한 후, Remove-AppXProvisionedPackage cmdlet과 Remove-AppXPackage cmdlet을 사용하여 각 패키지를 제거하는 foreach 루프를 설정할 수 있습니다.

foreach ($ProvisionedAppName in $ProvisionedAppPackageNames) {
    Get-AppxPackage -Name $ProvisionedAppName -AllUsers | Remove-AppxPackage
    Get-AppXProvisionedPackage -Online | Where-Object DisplayName -EQ $ProvisionedAppName | Remove-AppxProvisionedPackage -Online
}

모든 애플리케이션을 다시 설치하고 싶은 경우에는 add-AppXPackage cmdlet을 사용하여 Windows 10 앱을 다시 등록할 수 있습니다. 아래에 해당하는 애플리케이션 매니페스트 XML 파일을 지정하면 됩니다.

Get-AppxPackage -AllUsers | Foreach {
    Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"
}

요약

Microsoft가 Windows 10 앱을 제거하기 쉽지 않게 만들었지만, 항상 PowerShell을 이용할 수 있다는 것을 알 수 있습니다!

Source:
https://adamtheautomator.com/remove-windows-10-apps/