다음을 통해 공유


설치 컨텍스트

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는 설치 컨텍스트에 대해 폴더 속성의 값을 해당 폴더의 전체 경로로 설정합니다.

메모

폴더는 KNOWNFOLDERIDCSIDL 상수로 식별됩니다. 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함수를이러한 제품의 설치 컨텍스트에 대한 정보를 검색할 수 있습니다. 자세한 내용은 설치 컨텍스트 확인하는참조하세요.