설치 컨텍스트
Windows Installer는 컴퓨터와 사용자별 두 가지 설치 컨텍스트로 컴퓨터에 패키지를 설치할 수 있습니다. 컴퓨터의 모든 사용자가 애플리케이션에 액세스하고 사용할 수 있도록 하려면 패키지의 컴퓨터별 설치가 필요합니다. 컴퓨터별 설치는 모든 사용자에게 영향을 주는 시스템을 변경하므로 권한이 제한된 표준 사용자는 먼저 권한을 얻지 않고도 컴퓨터별 컨텍스트에 패키지를 설치하지 못할 수 있습니다.
사용자별 또는 컴퓨터별 설치용 패키지를 작성하고 ALLUSERS 및 MSIINSTALLPERUSER속성을설치 컨텍스트를 지정할 수 있습니다. 이러한 속성에 따라 Windows Installer는 폴더 속성 및 등록 값을 사용자별 또는 컴퓨터별 컨텍스트의 위치로 자동으로 리디렉션합니다.
메모
windows Installer 5.0 및 Windows Server 2008 R2 및 Windows 7부터 사용할 수 있는 MSIINSTALLPERUSER 속성은 컴퓨터별 또는 사용자별 컨텍스트에서 설치할 수 있는 단일 패키지의 개발을 용이하게 할 수 있습니다. 설치 시 설치 컨텍스트를 선택할 수 있는 기능을 사용자에게 제공하는 이중 용도 패키지를 개발하는 방법에 대한 자세한 내용은 단일 패키지 작성참조하세요. ALLUSERS 값이 2가 아닌 경우 Windows Installer는 MSIINSTALLPERUSER 속성을 무시합니다. Windows Installer는 컴퓨터별 컨텍스트에 설치할 때 항상 ALLUSERS 값을 1로 재설정하고 사용자별 컨텍스트에 설치할 때 ALLUSERS 값을 빈 문자열("")로 다시 설정합니다.
바로 가기 리디렉션
다음 표에서는 컴퓨터별 및 사용자별 설치 컨텍스트에 대한 바로 가기의 위치를 비교합니다.
Per-Machine 설치 컨텍스트(ALLUSERS=1) | Per-User 설치 컨텍스트(ALLUSERS="") |
---|---|
응용 프로그램은 컴퓨터의 모든 사용자에 대한 제어판의 프로그램 추가/제거 아래에 표시됩니다. |
애플리케이션은 애플리케이션을 설치한 사용자에 대한 제어판의 프로그램 추가/제거 아래에만 표시됩니다. |
바로 가기는 모든 사용자 프로필에 설치됩니다. |
바로 가기는 해당 사용자의 프로필에만 설치됩니다. |
아이콘 및 변환은 %WINDOWS%\Installer\{ProductCode}에 저장됩니다. |
아이콘 및 변환은 %USERPROFILE%\Application Data\Microsoft\Installer\{ProductCode GUID}에 저장됩니다. |
레지스트리 리디렉션
다음 표에서는 컴퓨터별 및 사용자별 설치 컨텍스트에 대한 레지스트리 항목의 위치를 비교합니다.
Per-Machine 설치 컨텍스트(ALLUSERS=1) | Per-User 설치 컨텍스트(ALLUSERS="") |
---|---|
Windows Installer는 Registry 테이블에 입력한 레지스트리 값을 작성하거나 제거하고 HKEY_LOCAL_MACHINE 루트 열에 -1 값을 사용하여 RemoveRegistry 테이블을. |
Windows Installer는 레지스트리 테이블에 입력한 레지스트리 값을 작성하거나 제거하고 루트 열에 -1 값이 HKEY_CURRENT_USER 있는 RemoveRegistry 테이블을. |
Windows Installer는 Registry 테이블에 입력한 레지스트리 값을 작성하거나 제거하고 루트 열의 HKLM\Software\클래스아래에 있는 msidbRegistryRootClassesRoot(0) 값을 사용하여 RemoveRegistry 테이블을. |
Windows Installer는 레지스트리 테이블에 입력한 레지스트리 값을 작성하거나 제거하고 루트 열의 HKCU\Software\클래스아래에 있는 msidbRegistryRootClassesRoot(0) 값을 사용하여 RemoveRegistry 테이블에. |
COM 등록은 HKLM\Software\클래스기록됩니다. |
COM 등록은 HKCU\Software\클래스기록됩니다. |
폴더 리디렉션
Windows Installer는 설치 컨텍스트에 대해 폴더 속성의 값을 해당 폴더의 전체 경로로 설정합니다.
메모
폴더는 KNOWNFOLDERID 및 CSIDL 상수로 식별됩니다. Windows Vista부터 애플리케이션은 SHGetKnownFolderPath 함수와 KNOWNFOLDERID 사용하여 특수 폴더의 전체 경로를 결정해야 합니다. SHGetFolderPath 함수 및 상수 특수 항목 ID(CSIDL)를 사용하는 기존 애플리케이션은 계속 작동합니다.
다음 표에서는 Windows Installer가 컴퓨터별 또는 사용자별 설치 컨텍스트에서 패키지를 설치할 때 사용되는 폴더의 위치를 비교합니다.
Per-Machine 설치 컨텍스트(ALLUSERS=1) | Per-User 설치 컨텍스트(ALLUSERS="") |
---|---|
DesktopFolder모든 사용자에 대한 데스크톱 폴더의 전체 경로입니다. FOLDERID_PublicDesktop(CSIDL_COMMON_DESKTOPDIRECTORY) |
DesktopFolder현재 사용자의 데스크톱 폴더 전체 경로입니다. FOLDERID_Desktop(CSIDL_DESKTOP, CSIDL_DESKTOPDIRECTORY) |
ProgramMenuFolder모든 사용자에 대한 프로그램 메뉴 폴더의 전체 경로입니다. FOLDERID_CommonPrograms(CSIDL_COMMON_PROGRAMS) |
ProgramMenuFolder현재 사용자의 프로그램 메뉴 폴더 전체 경로입니다. FOLDERID_Programs(CSIDL_PROGRAMS) |
StartMenuFolder모든 사용자에 대한 시작 메뉴 폴더의 전체 경로입니다. FOLDERID_CommonStartMenu(CSIDL_COMMON_STARTMENU) |
StartMenuFolder현재 사용자의 시작 메뉴 폴더 전체 경로입니다. FOLDERID_StartMenu(CSIDL_STARTMENU) |
StartUpFolder모든 사용자에 대한 시작 폴더의 전체 경로입니다. FOLDERID_CommonStartup(CSIDL_COMMON_STARTUP) |
StartUpFolder현재 사용자의 시작 폴더 전체 경로입니다. FOLDERID_Startup(CSIDL_STARTUP) |
TemplateFolder모든 사용자에 대한 Templates 폴더의 전체 경로입니다. FOLDERID_CommonTemplates(CSIDL_COMMON_TEMPLATES) |
TemplateFolder현재 사용자의 Templates 폴더 전체 경로입니다. FOLDERID_Templates(CSIDL_TEMPLATES) |
AdminToolsFolder모든 사용자에 대한 Admin Tools 폴더의 전체 경로입니다. FOLDERID_CommonAdminTools(CSIDL_COMMON_ADMINTOOLS) |
AdminToolsFolder현재 사용자에 대한 관리 도구 폴더의 전체 경로입니다. FOLDERID_AdminTools(CSIDL_ADMINTOOLS) |
AppDataFolder프로그램 메뉴 폴더의 전체 경로입니다. Windows Vista 이상: 로밍 폴더의 전체 경로입니다. FOLDERID_RoamingAppData(CSIDL_APPDATA) |
AppDataFolder프로그램 메뉴 폴더의 전체 경로입니다. Windows Vista 이상: 로밍 폴더의 전체 경로입니다. FOLDERID_RoamingAppData(CSIDL_APPDATA) |
CommonAppDataFolder모든 사용자의 애플리케이션 데이터를 포함하는 폴더의 전체 경로입니다. FOLDERID_ProgramData(CSIDL_COMMON_APPDATA) |
CommonAppDataFolder모든 사용자의 애플리케이션 데이터를 포함하는 폴더의 전체 경로입니다. FOLDERID_ProgramData(CSIDL_COMMON_APPDATA) |
FavoritesFolder현재 사용자의 즐겨찾기 폴더 전체 경로입니다. FOLDERID_Favorites(CSIDL_FAVORITES) |
FavoritesFolder현재 사용자의 즐겨찾기 폴더 전체 경로입니다. FOLDERID_Favorites(CSIDL_FAVORITES) |
PersonalFolder현재 사용자의 내 문서 폴더 또는 개인 폴더의 전체 경로입니다. Windows Vista 이상: 현재 사용자에 대한 Documents 폴더의 전체 경로입니다. FOLDERID_Documents(CSIDL_PERSONAL) |
PersonalFolder현재 사용자의 내 문서 폴더 또는 개인 폴더의 전체 경로입니다. Windows Vista 이상: 현재 사용자에 대한 Documents 폴더의 전체 경로입니다. FOLDERID_Documents(CSIDL_PERSONAL) |
SendToFolderSendTo 폴더의 전체 경로입니다. FOLDERID_SendTo(CSIDL_SENDTO) |
SendToFolderSendTo 폴더의 전체 경로입니다. FOLDERID_SendTo(CSIDL_SENDTO) |
FontsFolder시스템 글꼴 폴더의 전체 경로입니다. FOLDERID_Fonts(CSIDL_FONTS) |
FontsFolder시스템 글꼴 폴더의 전체 경로입니다. FOLDERID_Fonts(CSIDL_FONTS) |
ProgramFilesFolder32비트 버전의 Windows: 속성 값은 모든 사용자에 대한 Program Files 폴더의 전체 경로입니다(예: %ProgramFiles%.) 이 폴더의 식별자는 FOLDERID_ProgramFiles(CSIDL_PROGRAM_FILES.) 식별자 FOLDERID_ProgramFilesFOLDERID_ProgramFilesX86 동일한 폴더를 나타냅니다. 이 폴더의 파일은 모든 사용자가 액세스할 수 있습니다. 64비트 버전의 Windows: 속성 값은 모든 사용자(예: %ProgramFiles(x86)%.) 프로그램 파일(x86) 폴더의 전체 경로입니다. 이 폴더의 식별자가 FOLDERID_ProgramFilesX86(CSIDL_PROGRAM_FILESX86.) 이 폴더의 파일은 모든 사용자가 액세스할 수 있습니다. |
ProgramFilesFolderWindows Server 2008 R2 및 Windows 7: 속성 값은 현재 사용자에 대한 Programs 폴더의 전체 경로입니다(예: %LocalAppData%\Programs). 이 폴더의 식별자는 32비트 및 64비트 시스템에서 FOLDERID_UserProgramFiles.
FOLDERID_UserProgramFiles해당하는 CSIDL 식별자가 없습니다. 이 폴더의 파일은 이 폴더를 설치한 사용자만 액세스할 수 있습니다. Windows Server 2008 이전 버전 및 Windows Vista 및 이전 버전: 사용자별 지원 폴더를 사용할 수 없습니다. 경로는 컴퓨터별 컨텍스트(예: %ProgramFiles% 또는 %ProgramFiles(x86)%)와 동일합니다. 이 폴더의 파일은 모든 사용자가 액세스할 수 있습니다. |
CommonFilesFolder32비트 버전의 Windows: 속성 값은 모든 사용자에 대한 Common Files 폴더의 전체 경로입니다(예: %ProgramFiles%\Common Files). 이 폴더의 식별자는 FOLDERID_ProgramFilesCommon(CSIDL_PROGRAM_FILES_COMMON.) 식별자 FOLDERID_ProgramFilesCommonFOLDERID_ProgramFilesCommonX86 동일한 폴더를 나타냅니다. 이 폴더의 파일은 모든 사용자가 액세스할 수 있습니다. 64비트 버전의 Windows: 속성 값은 모든 사용자에 대한 Common Files 폴더의 전체 경로입니다(예: %ProgramFiles(x86)%\Common Files). 이 폴더의 식별자는 FOLDERID_ProgramFilesCommonX86(CSIDL_PROGRAM_FILES_COMMONX86.) 이 폴더의 파일은 모든 사용자가 액세스할 수 있습니다. |
CommonFilesFolderWindows Server 2008 R2 및 Windows 7: 속성 값은 현재 사용자에 대한 Common 폴더의 전체 경로입니다(예: %LocalAppData%\Programs\Common). 이 폴더의 식별자는 32비트 및 64비트 시스템에서 FOLDERID_UserProgramFilesCommon.
FOLDERID_UserProgramFilesCommon해당하는 CSIDL 식별자가 없습니다. 이 폴더의 파일은 이 폴더를 설치한 사용자만 액세스할 수 있습니다. Windows Server 2008 이전 버전 및 Windows Vista 및 이전 버전: 사용자별 지원 폴더를 사용할 수 없습니다. 경로는 컴퓨터별 컨텍스트와 동일합니다(예: \Common Files 또는 %ProgramFiles(x86)%\Common Files %ProgramFiles%). 이 폴더의 파일은 모든 사용자가 액세스할 수 있습니다. |
ProgramFiles64Folder속성 값은 모든 사용자에 대한 Program Files 폴더의 전체 경로입니다(예: %ProgramFiles%.) 이 폴더의 식별자가 FOLDERID_ProgramFilesX64.
FOLDERID_ProgramFilesX64동일한 CSIDL 식별자가 없습니다. 64비트 구성 요소에 대해 미리 정의된 폴더이며 64비트 시스템에 적용됩니다. 이 폴더의 파일은 모든 사용자가 액세스할 수 있습니다. |
ProgramFiles64FolderWindows Server 2008 R2 및 Windows 7: 속성 값은 현재 사용자에 대한 Programs 폴더의 전체 경로입니다(예: %LocalAppData%\Programs). 이 폴더의 식별자가 FOLDERID_UserProgramFiles.
FOLDERID_UserProgramFiles해당하는 CSIDL 식별자가 없습니다. 이 폴더의 파일은 이 폴더를 설치한 사용자만 액세스할 수 있습니다. Windows Server 2008 이전 버전 및 Windows Vista 및 이전 버전: 사용자별 지원 폴더를 사용할 수 없습니다. 경로는 컴퓨터별 컨텍스트(예: %ProgramFiles%.)와 동일합니다. 이 폴더의 파일은 모든 사용자가 액세스할 수 있습니다. |
CommonFiles64Folder속성 값은 모든 사용자에 대한 Common Files 폴더의 전체 경로입니다(예: %ProgramFiles%\Common Files). 64비트 구성 요소에 대해 미리 정의된 폴더이며 64비트 시스템에 적용됩니다. 이 폴더의 식별자는 FOLDERID_ProgramFilesCommonX64.
FOLDERID_ProgramFilesCommonX64동일한 CSIDL 식별자가 없습니다. 이 폴더의 파일은 모든 사용자가 액세스할 수 있습니다. |
CommonFiles64FolderWindows Server 2008 R2 및 Windows 7: 속성 값은 현재 사용자에 대한 Common 폴더의 전체 경로입니다(예: %LocalAppData%\Programs\Common). 이 폴더의 식별자는 FOLDERID_UserProgramFilesCommon.
FOLDERID_UserProgramFilesCommon해당하는 CSIDL 식별자가 없습니다. 이 폴더의 파일은 이 폴더를 설치한 사용자만 액세스할 수 있습니다. Windows Server 2008 이전 버전 및 Windows Vista 및 이전 버전: 사용자별 지원 폴더를 사용할 수 없습니다. 경로는 컴퓨터별 컨텍스트(예: %ProgramFiles%\Common Files)와 동일합니다. 이 폴더의 파일은 모든 사용자가 액세스할 수 있습니다. |
WindowsFolderWindows 폴더의 전체 경로입니다. FOLDERID_Windows(CSIDL_WINDOWS) |
WindowsFolderWindows 폴더의 전체 경로입니다. FOLDERID_Windows(CSIDL_WINDOWS) |
SystemFolder시스템 폴더의 전체 경로입니다. FOLDERID_SystemX86(CSIDL_SYSTEMX86) |
SystemFolder시스템 폴더의 전체 경로입니다. FOLDERID_SystemX86(CSIDL_SYSTEMX86) |
LocalAppDataFolder로컬(비로밍) 애플리케이션이 포함된 폴더의 전체 경로입니다. FOLDERID_LocalAppData(CSIDL_LOCAL_APPDATA) |
LocalAppDataFolder로컬(비로밍) 애플리케이션이 포함된 폴더의 전체 경로입니다. FOLDERID_LocalAppData(CSIDL_LOCAL_APPDATA) |
MyPicturesFolder사진 또는 내 사진 폴더의 전체 경로입니다. FOLDERID_Pictures(CSIDL_MYPICTURES) |
MyPicturesFolder사진 또는 내 사진 폴더의 전체 경로입니다. FOLDERID_Pictures(CSIDL_MYPICTURES) |
PrintHoodFolderPrintHood 폴더의 전체 경로입니다. FOLDERID_PrintHood(CSIDL_PRINTHOOD) |
PrintHoodFolderPrintHood 폴더의 전체 경로입니다. FOLDERID_PrintHood(CSIDL_PRINTHOOD) |
NetHoodFolderNetHood 폴더의 전체 경로입니다. FOLDERID_NetHood(CSIDL_NETHOOD) |
NetHoodFolderNetHood 폴더의 전체 경로입니다. FOLDERID_NetHood(CSIDL_NETHOOD) |
RecentFolder최근 폴더의 전체 경로입니다. FOLDERID_Recent(CSIDL_RECENT) |
RecentFolder최근 폴더의 전체 경로입니다. FOLDERID_Recent(CSIDL_RECENT) |
메모
애플리케이션은 MsiEnumProducts 호출하거나 MsiEnumProductsEx함수를시스템에 설치된 모든 제품을 열거할 수 있습니다. 그런 다음 애플리케이션은 MsiGetProductInfoEx 호출하거나 MsiGetProductInfo함수를이러한 제품의 설치 컨텍스트에 대한 정보를 검색할 수 있습니다. 자세한 내용은 설치 컨텍스트 확인하는참조하세요.