Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

윈도우 스토어 앱(Microsoft Store App)을 명령행에서 직접 실행하는 방법

Store App을 설치하면, 일반적으로 시작 메뉴를 통해 실행하게 됩니다. 하지만, 가끔은 명령행에서 직접 실행하고 싶을 때도 있는데요. 바로 그런 방법을 다음의 글에서 설명하고 있습니다.

Method to open any Windows 10 Apps from command line 
; https://www.tenforums.com/software-apps/57000-method-open-any-windows-10-apps-command-line.html

한글로 간략하게 정리해 볼까요? ^^

예를 들기 위해, "Windbg Preview" 앱을,

WinDbg Preview
; https://www.microsoft.com/en-us/p/windbg-preview/9pgjgd53tn86

명령행에서 실행하려면 explorer.exe를 경유해야 하므로 다음과 같은 형식을 따르게 됩니다.

explorer.exe shell:appsFolder\[PackageFamilyName]![Application Id]

따라서, 우리가 알아내야 할 것은 "PackageFamilyName"과 "Application Id" 값입니다. 먼저, PackageFamilyName은 PowerShell을 이용해 구할 수 있는데 다음의 명령어로 시스템에 설치한 모든 스토어 앱 목록을 저장해,

PS C:\temp> get-appxpackage > applist.txt

applist.txt로부터 제품명으로 검색하면 다음과 같이 PackageFamilyName 문자열을 구할 수 있습니다.

...[생략]...

Name              : Microsoft.WinDbg
Publisher         : CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
Architecture      : Neutral
ResourceId        : 
Version           : 1.1902.7001.0
PackageFullName   : Microsoft.WinDbg_1.1902.7001.0_neutral__8wekyb3d8bbwe
InstallLocation   : C:\Program Files\WindowsApps\Microsoft.WinDbg_1.1902.7001.0_neutral__8wekyb3d8bbwe
IsFramework       : False
PackageFamilyName : Microsoft.WinDbg_8wekyb3d8bbwe
PublisherId       : 8wekyb3d8bbwe
IsResourcePackage : False
IsBundle          : False
IsDevelopmentMode : False
NonRemovable      : False
IsPartiallyStaged : False
SignatureKind     : Store
Status            : Ok

...[생략]...

나머지 "Application Id" 값은, 위의 출력 정보에 보이는 "InstallLocation" 경로를 탐색기로 열어 그 폴더의 AppxManifest.xml 파일 내용을 보면 됩니다. 가령 windbg의 경우 다음과 같이 나오는데,

<?xml version="1.0" encoding="utf-8"?>
<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3" xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10" xmlns:desktop2="http://schemas.microsoft.com/appx/manifest/desktop/windows10/2" xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities" IgnorableNamespaces="uap3 desktop2" xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest">
  <Identity Name="Microsoft.WinDbg" ProcessorArchitecture="neutral" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" Version="1.1902.7001.0" />
  <Properties>
    <DisplayName>WinDbg Preview</DisplayName>
    <PublisherDisplayName>Microsoft Corporation</PublisherDisplayName>
    <Logo>Resources\WinDbg_150.png</Logo>
  </Properties>
  <Resources>
    <Resource Language="en-us" />
  </Resources>
  <Dependencies>
    <TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.14257.0" MaxVersionTested="10.0.14257.0" />
  </Dependencies>
  <Capabilities>
    <rescap:Capability Name="runFullTrust" />
    <rescap:Capability Name="packageQuery" />
  </Capabilities>
  <Applications>
    <Application Id="Microsoft.WinDbg.DbgSrv64" Executable="amd64\dbgsrv.exe" EntryPoint="Windows.FullTrustApplication">
      <uap:VisualElements AppListEntry="none" DisplayName="WinDbg Preview DbgSrv 64-bit" Description="WinDbg Preview DbgSrv 64-bit" BackgroundColor="#777777" Square150x150Logo="Resources\WinDbg_150.png" Square44x44Logo="Resources\WinDbg_44.png" />
      <Extensions>
        <uap3:Extension Category="windows.appExecutionAlias" Executable="amd64\dbgsrv.exe" EntryPoint="Windows.FullTrustApplication">
          <uap3:AppExecutionAlias>
            <desktop:ExecutionAlias Alias="dbgsrv64.exe" />
          </uap3:AppExecutionAlias>
        </uap3:Extension>
      </Extensions>
    </Application>
    <Application Id="Microsoft.WinDbg.DbgSrv32" Executable="x86\dbgsrv.exe" EntryPoint="Windows.FullTrustApplication">
      <uap:VisualElements AppListEntry="none" DisplayName="WinDbg Preview DbgSrv 32-bit" Description="WinDbg Preview DbgSrv 32-bit" BackgroundColor="#777777" Square150x150Logo="Resources\WinDbg_150.png" Square44x44Logo="Resources\WinDbg_44.png" />
      <Extensions>
        <uap3:Extension Category="windows.appExecutionAlias" Executable="x86\dbgsrv.exe" EntryPoint="Windows.FullTrustApplication">
          <uap3:AppExecutionAlias>
            <desktop:ExecutionAlias Alias="dbgsrv32.exe" />
          </uap3:AppExecutionAlias>
        </uap3:Extension>
      </Extensions>
    </Application>
    <Application Id="Microsoft.WinDbg" Executable="DbgX.Shell.exe" EntryPoint="Windows.FullTrustApplication">
      <uap:VisualElements DisplayName="WinDbg Preview" Description="WinDbg Preview" BackgroundColor="#777777" Square150x150Logo="Resources\WinDbg_150.png" Square44x44Logo="Resources\WinDbg_44.png" />
      <Extensions>
        <uap:Extension Category="windows.fileTypeAssociation">
          <uap3:FileTypeAssociation Name="newtypes" Parameters="-z &quot;%1&quot;" desktop2:UseUrl="true">
            <uap:SupportedFileTypes>
              <uap:FileType>.run</uap:FileType>
              <uap:FileType>.dmp</uap:FileType>
              <uap:FileType>.mdmp</uap:FileType>
              <uap:FileType>.hdmp</uap:FileType>
              <uap:FileType>.kdmp</uap:FileType>
              <uap:FileType>.ndmp</uap:FileType>
            </uap:SupportedFileTypes>
          </uap3:FileTypeAssociation>
        </uap:Extension>
        <uap3:Extension Category="windows.appExecutionAlias" Executable="DbgX.Shell.exe" EntryPoint="Windows.FullTrustApplication">
          <uap3:AppExecutionAlias>
            <desktop:ExecutionAlias Alias="WinDbgX.exe" />
          </uap3:AppExecutionAlias>
        </uap3:Extension>
      </Extensions>
    </Application>
  </Applications>
  <mp:PhoneIdentity PhoneProductId="cc80b52c-c459-4524-aeab-79ffc8f0d8f0" PhonePublisherId="95d94207-0c7c-47ed-82db-d75c81153c35" />
</Package>

이 중에서 Executable 속성 값을 가진 Application 노드는 다음과 같이 3개가 있습니다.

<Application Id="Microsoft.WinDbg.DbgSrv64" Executable="amd64\dbgsrv.exe" EntryPoint="Windows.FullTrustApplication">
<Application Id="Microsoft.WinDbg.DbgSrv32" Executable="x86\dbgsrv.exe" EntryPoint="Windows.FullTrustApplication">
<Application Id="Microsoft.WinDbg" Executable="DbgX.Shell.exe" EntryPoint="Windows.FullTrustApplication">

windbg를 실행해 보면, 실행 파일이 "DbgX.Shell.exe"이므로 위에서 우리가 원하는 Id 값은 "Microsoft.WinDbg"가 됩니다. 따라서 이를 조합해 다음과 같이 명령행에서 실행하면,

c:\temp> explorer.exe shell:appsFolder\Microsoft.WinDbg_8wekyb3d8bbwe!Microsoft.WinDbg

시작 메뉴의 아이콘을 이용해 실행했던 것과 동일하게 스토어 앱이 실행됩니다.




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 2/17/2019]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 46  47  48  49  50  51  52  [53]  54  55  56  57  58  59  60  ...
NoWriterDateCnt.TitleFile(s)
12318정성태9/9/20209319오류 유형: 646. OpenVPN - "TAP-Windows Adapter V9" 어댑터의 "Network cable unplugged" 현상
12317정성태9/9/202011657개발 환경 구성: 511. Beats용 Kibana 기본 대시 보드 구성 방법
12316정성태9/8/202010086디버깅 기술: 170. WinDbg Preview 버전부터 닷넷 코어 3.0 이후의 메모리 덤프에 대해 sos.dll 자동 로드
12315정성태9/7/202012382개발 환경 구성: 510. Logstash - FileBeat을 이용한 IIS 로그 처리 [2]
12314정성태9/7/202010897오류 유형: 645. IIS HTTPERR - Timer_MinBytesPerSecond, Timer_ConnectionIdle 로그
12313정성태9/6/202012107개발 환경 구성: 509. Logstash - 사용자 정의 grok 패턴 추가를 이용한 IIS 로그 처리
12312정성태9/5/202015994개발 환경 구성: 508. Logstash 기본 사용법 [2]
12311정성태9/4/202011239.NET Framework: 937. C# - 간단하게 만들어 보는 리눅스의 nc(netcat), json_pp 프로그램 [1]
12310정성태9/3/202010507오류 유형: 644. Windows could not start the Elasticsearch 7.9.0 (elasticsearch-service-x64) service on Local Computer.
12309정성태9/3/202010250개발 환경 구성: 507. Elasticsearch 6.6부터 기본 추가된 한글 형태소 분석기 노리(nori) 사용법
12308정성태9/2/202011524개발 환경 구성: 506. Windows - 단일 머신에서 단일 바이너리로 여러 개의 ElasticSearch 노드를 실행하는 방법
12307정성태9/2/202012266오류 유형: 643. curl - json_parse_exception / Invalid UTF-8 start byte
12306정성태9/1/202010444오류 유형: 642. SQL Server 시작 오류 - error code 10013
12305정성태9/1/202011340Windows: 172. "Administered port exclusions"이 아닌 포트 범위 항목을 삭제하는 방법
12304정성태8/31/202010289개발 환경 구성: 505. 윈도우 - (네트워크 어댑터의 우선순위로 인한) 열거되는 IP 주소 순서를 조정하는 방법
12303정성태8/30/202010458개발 환경 구성: 504. ETW - 닷넷 프레임워크 기반의 응용 프로그램을 위한 명령행 도구 etrace 소개
12302정성태8/30/202010341.NET Framework: 936. C# - ETW 관련 Win32 API 사용 예제 코드 (5) - Private Logger파일 다운로드1
12301정성태8/30/202010665오류 유형: 641. error MSB4044: The "Fody.WeavingTask" task was not given a value for the required parameter "IntermediateDir".
12300정성태8/29/202010044.NET Framework: 935. C# - ETW 관련 Win32 API 사용 예제 코드 (4) CLR ETW Consumer파일 다운로드1
12299정성태8/27/202010987.NET Framework: 934. C# - ETW 관련 Win32 API 사용 예제 코드 (3) ETW Consumer 구현파일 다운로드1
12298정성태8/27/202010715오류 유형: 640. livekd - Could not resolve symbols for ntoskrnl.exe: MmPfnDatabase
12297정성태8/25/20209962개발 환경 구성: 503. SHA256 테스트 인증서 생성 방법
12296정성태8/24/202010321.NET Framework: 933. C# - ETW 관련 Win32 API 사용 예제 코드 (2) NT Kernel Logger파일 다운로드1
12295정성태8/24/20209765오류 유형: 639. Bitvise - Address is already in use; bind() in ListeningSocket::StartListening() failed: Windows error 10013: An attempt was made to access a socket ,,,
12293정성태8/24/202011084Windows: 171. "Administered port exclusions" 설명
12292정성태8/20/202012405.NET Framework: 932. C# - ETW 관련 Win32 API 사용 예제 코드 (1)파일 다운로드2
... 46  47  48  49  50  51  52  [53]  54  55  56  57  58  59  60  ...