Program Tip

다른 사용자가 설치 한 앱을 제거하는 방법은 무엇입니까?

programtip 2020. 12. 11. 19:19
반응형

다른 사용자가 설치 한 앱을 제거하는 방법은 무엇입니까?


Windows 8 앱을 디버깅하려고 할 때 다른 사용자 계정에 이미 설치된 복사본이있을 때이 문제가 계속 발생합니다.

DEP0700 : 앱 등록에 실패했습니다. 다른 사용자가 이미이 앱의 패키지 버전을 설치했습니다. 패키지되지 않은 버전은 이것을 대체 할 수 없습니다. 충돌하는 패키지는 {{{PackageName}}}이며 CN = {{{Certificate Stuff}}}에서 게시했습니다. (0x80073cf9)

때로는 로그인 만하거나 다른 사람에게 컴퓨터에 로그인하여 앱을 제거하도록 요청할 수 있습니다. 또는 애플리케이션 이름 / ID를 변경할 수 있지만 하나는 항상 가능한 것은 아니며 다른 하나는 위험합니다 (변경된 애플리케이션 ID를 소스 제어에 체크인하고 싶지 않습니다).

제거 할 수있는 방법이 있어야합니다. 아마도 PowerShell 스크립트일까요?


위의 프로세스는 여전히 작동하지만 Windows Update (예, 이상하게도 충분히)가 "스테이징 된 패키지"를 지우는 역할을 담당하는 경합 상태 문제를 해결합니다.

Microsoft에 따르면 "다른 수정 사항"은 여전히이 문제를 버그로 간주합니다.

문제의 원인 :

Windows Update (WU)는 보유하고있는 최신 버전의 패키지를 다운로드하고이를 로컬 시스템으로 "스테이징"하므로 스토어로 이동하여 앱을 업데이트 할 때 업데이트 프로세스가 최대한 빨라집니다. WU는 결국 설치되지 않은 준비된 패키지를 정리합니다.

"스테이징 된"패키지를 사용하면 어떤 결과가 발생합니까?

  1. 준비된 패키지로 인해 개발 모드에서 특정 패키지를 설치할 수 없습니다.

  2. 준비된 패키지는 일부 디스크 공간을 차지하지만 하드 링크로 인해 이로 인한 영향이 완화됩니다. 패키지의 여러 버전간에 파일이 동일한 경우 appx 배포는 동일한 파일의 두 개의 개별 복사본을 유지하는 대신 파일을 하드 링크합니다.

"단계별"패키지는 어떻게 찾습니까?

  1. 관리자 powershell 프롬프트에서 명령 :

    get-appxpackage -all

컴퓨터의 모든 패키지를 표시합니다. 준비된 패키지의 경우 PackageUserInformation에 {S-1-5-18 [Unknown user] : Staged}가 표시됩니다. 2. powershell 필터링을 사용하여 준비된 모든 패키지 전체 이름의 목록을 가져 오려면 다음을 수행 할 수 있습니다.

get-appxpackage -all |% {if ($_.packageuserinformation.installstate -eq "Staged"){$_.packagefullname}}

"단계별"패키지를 제거하려면 어떻게합니까?

  1. psexecMark Russinovich가 작성한 sysinternals 도구에서 다운로드

  2. 모두 제거하려면 일반 관리자 / 승격 된 명령 프롬프트 (Powershell 아님)에서 실행하십시오.

psexec -s powershell -c "get-appxpackage | remove-appxpackage"


그래도 작동하지 않으면 다음을 시도해 볼 수도 있습니다. 이것은 일반 사용자의 컴퓨터가 아닌 내 dev 컴퓨터를위한 것이므로 개발자가 아닌 컴퓨터에 어떤 영향을 미칠지 모르겠습니다.

  1. c : \ Program Files \ WindowsApps 및 C : \ ProgramData \ Microsoft \ Windows \ AppRepository 폴더의 소유권을 가져와 관리자에게 모든 권한을 부여합니다. TrustedInstaller에도 수정 권한이 있는지 확인하십시오. 당신은 또한 소유권을 가지고 있습니다. 모르는 경우 해당 폴더의 속성을 통해 수행됩니다.

  2. 서비스로 이동하여 Windows Installer 서비스를 중지합니다.

  3. C : \ ProgramData \ Microsoft \ Windows \ AppRepository \를 열고 PackageRepository.edb 파일을 삭제합니다.

  4. Windows Installer 서비스를 다시 시작하십시오.

  5. Visual Studio를 관리자로 시작합니다.

  6. 앱 시작을 시도합니다. 작동합니다.

앱을 실행 한 후 사용자 모드에서 VS를 다시 실행할 수 있어야합니다.


해결 방법 :

아무것도 작동하지 않는 경우 (나에게도 마찬가지 임) 앱 매니페스트에서 패키지 이름을 변경할 수 있습니다 (마지막 몇 문자를 다른 문자로 바꾸면됩니다 ). 이렇게하면 더 이상 충돌하는 패키지가 없습니다.

패키지 이름을 변경하는 것은 일부 시나리오에 적합하지 않을 수 있지만 문제가있는 장치에서 디버깅을 완료하면 언제든지 백업하고 다시 변경할 수 있습니다 ....


Windows 10 1709에서 remove-appxpackage cmdlet이 개선되어 -allusers를 옵션으로 추가했습니다.

따라서 모든 사용자의 앱을 제거하려면 다음 명령이 작동합니다.

Get-AppxPackage -AllUsers [PackageFamilyName] | Remove-AppxPackage -AllUsers

여기서 [PackageFamilyName]은 일반적으로 패키지의 GUID입니다.

주의 사항 /주의 :이 명령은 나중에 각 사용자가 앱을 개별적으로 제거한 것처럼 취급하기 때문에 나중에 다시 설치 (DISM을 사용하여 패키지를 다시 프로비저닝)하는 것을 매우 어렵게 만드는 것 같습니다. 여기에 들어가기 엔 너무 많이 ...


현재 사용자의 앱을 삭제하려면 다음을 시도하십시오.

Get-AppxPackage | where name -eq "APP.NAME" | Remove-AppxPackage

그것은 나를 도왔다. 그래서 Get-AppxPackage없이-all


Windows 10에서 :

먼저 SqliteBrowser3와 같은 SQL 데이터베이스 편집기가 필요합니다.

  1. 시스템 사용자로 조작 (psexec 또는 기타 사용)
  2. 사본 만들기 C:\ProgramData\Microsoft\Windows\AppRepository\StateRepository-Machine.srd
  3. SqliteBrowser3로 해당 복사본을 엽니 다.
  4. "package", "packageuser"및 "user"테이블을 편집해야합니다. 이렇게하려면 "user"테이블에서 고스트 사용자 ID를 기록한 다음 제거해야합니다. 그런 다음 user"packageuser"테이블 에서 열에 고스트 사용자 ID가있는 항목을 제거 하십시오.
  5. 죽임 tasklist /svc /fi "services eq StateRepository"
  6. replace original StateRepository-Machine.srd after backup.
  7. reboot and then you could remove your package normally

Note : you need to leave your own user entry assigned to the package


There is a set of PowerShell cmdlets for managing Windows Store apps. You can list the installed apps on the machine for all the users if you run the following command as an administrator:

Get-AppxPackage -AllUsers

I haven't found a way to uninstall an app for a different user, though. Remove-AppxPackage works only for the current user. This makes everything even more interesting if you delete a user having apps installed. At least in prerelease versions of Windows 8 this made it impossible to delete an app he had installed. I managed to successfully avoid such a situation since final release therefore I can't confirm the problem is still present, i.e. apps aren't uninstalled when a user account is deleted.


I had to do the following:

 get-appxpackage -all > log.txt
 notepad log.txt (search for the offending PackageFullName)
 remove-appxpackage -allusers -package "PackageFullName"

The key for me was to add the -allusers flag, since without it I received an "...because the current user does not have that package installed. Use Get-AppxPackage to see the list of packages installed." error.


Though this didn't work for me, it may just work for someone else...

Start powershell as Administrator and run:

Get-AppxPackage -all | Out-GridView -Passthru | Remove-AppXPackage

Then SELECT the right package and OK, hopefully it will remove.


What worked for me

 1. Close VS
 2. Open Services
 3. Stop Appx Deployment Service
 4. Open C:\ProgramData\Microsoft\Windows\AppRepository\ and delete the PackageRepository.edb file.
 5. Start Appx Deployment Service
 6. Start VS & Debug - worked like charm

This is similar to some other answers, especially @Pavel Nazarov's, but works for different users. And it's different from the accepted answer because you don't need to install any programs.

In Windows Powershell in admin mode, run:

get-appxpackage -all | where name -eq "{{ App Name }}" | remove-appxpackage


If all else fails and you are desperate, like was my case (because the user was deleted) This one is a little dangerous but it worked for me.

DO AT YOUR OWN RISK! I knew that my user was the last user created on the machine.

This answer is a combination of Auri Rahimzadeh's answer above on TAKEOWN and intika's answer where you modify the StateRepository-Machine.srd using 'DB Browser For SQLite' (downloaded here: DB Browser for SQLite 3), the only difference is I only edited one thing: In PackageUser I changed the value User 3 (Which was the ID of the previous deleted User) to 4 (Which is me, the last created User)

BE SURE TO CHECK THE User Table AND SEE WHAT VALUES WORK IN YOUR CASE!

참고URL : https://stackoverflow.com/questions/13865930/how-to-uninstall-an-app-that-another-user-installed

반응형