Windows 8.1 앱을 완전히 제거하기 위해 SCCM 2012를 통해 제공되는 Powershell 스크립트

Windows 8.1 앱을 완전히 제거하기 위해 SCCM 2012를 통해 제공되는 Powershell 스크립트

위 작업 수행에 관한 지침을 찾고 있습니다.

내 Powershell 스크립트는 아래와 같습니다. 스크립트는 현재 명명된 특정 앱 하나를 제거합니다.

$AppsToDelete="*Microsoft.WindowsReadingList*"
 Foreach ($AppName in $AppsToDelete)
 {
     get-appxprovisionedpackage -online | where packagename -like $AppName | remove-appxprovisionedpackage -Online
     Get-AppxPackage -name $AppName -allusers | Remove-AppxPackage
 }

스크립트를 실행하기 위해 SCCM2012에서 사용하는 프로그램은 다음과 같습니다.

PowerShell.exe -ExecutionPolicy UnRestricted -File .\delappsreadinglistonly.ps1

SCCM 2012에서 프로그램을 만들고 클라이언트에 배포했습니다.

프로그램이 시스템이 아닌 사용자로 실행되도록 설정되었습니다.

EXECMGR.log 파일은 스크립트가 클라이언트에 의해 수신되어 성공적으로 실행되었음을 알려줍니다. 종료 코드 = 0, 실행 상태는 성공입니다.

즉, 읽기 목록 타일은 여전히 ​​( Metro ?) 시작 화면에 있고, 읽기 목록 앱은 여전히 ​​앱 이름 알파벳순 목록에 나타나며 실행될 수 있으며 C:\program files\windowsapps\에 다양한 폴더가 여전히 존재합니다.

포인터를 주시면 감사하겠습니다.

답변1

귀하의 스크립트에 두 가지 잠재적인 문제가 있는 것으로 보입니다.

  1. 호출에는 권한 -AppxProvisionedPackage상승이 필요할 가능성이 높습니다. 사용자로 스크립트를 실행하면 예외가 발생할 수 있습니다.
  2. 호출하려면 Get-AppxPackage -allusers관리자 권한이 필요합니다. 문서읽기 의 경우 -allusers"이 매개변수를 사용하려면 관리자 권한을 사용하여 명령을 실행해야 합니다."

귀하의 목표가 정확히 무엇인지는 확실하지 않습니다. Windows 8.1 시작 화면에서 타일이 어지러워지는 경우를 처리하는 방법은 다음과 같습니다.

  • 다음 특성을 가진 SCCM 애플리케이션을 생성합니다.
    • 설치 프로그램 없음
    • Remove-AppxPackage일반적인 앱 목록을 요구하는 제거 프로그램
    • 해당 앱 목록에 대한 감지 스크립트
  • 영향을 받는 대상에 제거 작업을 사용하여 애플리케이션을 배포합니다.사용자.

제가 이 전략을 사용하는 이유는 필요한 것으로 판명될 경우 향후 특정 사용자가 해당 앱 중 어떤 앱을 사용할 수 있는지 보다 정밀하게 설정하기 때문입니다.

제거를 위해 이 애플리케이션이 배포된 사용자가 로그인하면 CcmExec결국 애플리케이션을 감지하고 제거 명령을 호출합니다. 제거 명령이 호출된 후에는 응용 프로그램이 더 이상 사용자에게 표시되거나 사용할 수 없어야 합니다.

제거-Application.ps1

다음은 제가 사용하는 제거 스크립트의 본문입니다. 설치(제거)를 위해 호출되는 PowerShell 스크립트를 설정하는 방법에 주의해야 합니다.종료 코드는 스크립트에서 안정적으로 가져오기가 약간 까다롭습니다..

$appList =  'Microsoft.BingSports',
            # ...longlist of other apps...
            'Microsoft.WindowsReadingList'
Get-AppxPackage | 
    ? { $_.Name -in $appList } | 
    % { Remove-AppxPackage $_.PackageFullName }

감지-Application.ps1

아래는 제가 사용하는 탐지 스크립트의 본문입니다. PowerShell 감지 스크립트를 사용하는 데는 몇 가지 함정이 있습니다.

모든 작업을 수행하면 PowerShell 감지 스크립트가 이와 같이 복잡하거나 외과적이거나 비전통적인 감지에 훌륭하게 작동합니다.

    $appList =  'Microsoft.BingSports',
            # ...longlist of other apps...
            'Microsoft.WindowsReadingList'
    Get-AppxPackage | 
    ? { $_.Name -in $appList }

관련 정보