'Installer'에 해당되는 글 6건

  1. 2014.05.13 NSIS로 64비트용 설치파일 만들때 팁
  2. 2014.05.13 [NSIS] 초기 설치 폴더를 유연하게 결정
  3. 2013.10.18 Windows 7 ActiveX Installer 서비스 관리 (1)
2014.05.13 18:46

NSIS로 64비트용 설치파일 만들때 팁

64비트용 프로그램을 만드셨습니까? NSIS 로 설치파일을 만드려고 하시나요?

이럴때 유용한 팁을 소개합니다.



1. UNICODE NSIS 설치 : http://www.scratchpaper.com/ 

WIN95/98 을 지원하지 않는다고 할때 UNICODE NSIS 를 사용하면 설치파일의 다국어 지원등에

매우 유리합니다. 물론 64비트 OS 는 전부 유니코드 지원 OS 죠. 


2. Program files 폴더

nsis 에서 program files 폴더 변수는 $PROGRAMFILES 입니다. 

그런데 64비트 os 에서는 $PROGRAMFILES 는 program files (x86) 이 되어 버리죠.

64비트용 프로그램을 program files 에 설치하고 싶으면 $PROGRAMFILES64 사용하면 됩니다.

$PROGRAMFILES64 변수는 32비트 os 에서도 program files 입니다.


3. 레지스트리 접근

64비트 os 는 32비트용 프로그램이 직접적으로 64비트 os 용 레지스트리에 접근하는걸 막습니다.

마찬가지로 nsis 스크립트의 설치파일도 그냥 쓰면 64비트용 레지스트리에 접근이 안되기 때문에

64비트용 레지스트리에 접근하기 위해서는 

Code:
SetRegView   64


를 써 줘야만 합니다.


4. 런타임에 64비트 os 여부 확인 

32비트 바이너리와 64비트 바이너리를 한 설치파일에 집어넣고자 할 경우가 있습니다.

이런 경우 런타임에 현재 os 가 64 비트인지 아닌지 확인하려면 다음과 같은 방식으로 코드를 사용하면 됩니다.

Code:
   ; 64비트 여부 체크하기   
   System::Call "kernel32::GetCurrentProcess() i .s"
   System::Call "kernel32::IsWow64Process(i s, *i .r0)"
   StrCmp $0 '0' Win32 Win64
   Win32:
      File /oname=name.exe  name32.exe
      Goto EndCheck
   Win64:
      File /oname=name.exe  name64.exe
   EndCheck:




출처 : 독립 개발자 네트워크


Trackback 0 Comment 0
2014.05.13 18:42

[NSIS] 초기 설치 폴더를 유연하게 결정

깁뿔님께서도 선호하시고 사용자도 원하는 UAC 권한 상승 불필요 설치(installer) 프로그램과 관련하여
최근 제가 사용하게 된 내용을 공유합니다.

낮은(Guest) 권한의 사용자는 기본적으로 다음 항목들에 기록할 수가 없죠.
C:\Program Files
C:\Windows
HKEY_CLASSES_ROOT
HKEY_LOCAL_MACHINE

이에 반해 각 계정 사용자 폴더와 HKEY_CURRENT_USER 레지스트리는 읽기/쓰기가 가능합니다.

NSIS 스크립트에서 RequestExecutionLevel 옵션을 별도로 주지 않으면
Windows(Vista/7)에서 NSIS installer를 인식하여
권한 상승이 필요하다고 간주합니다.

만약 낮은(Guest) 권한의 사용자가 Administrator 등 관리자의 암호를 모른다면
해당 NSIS installer를 실행할 수도 없습니다.

이에 다음과 같이 installer가 동작하게 하는 것이 유연하다고 생각하게 되었습니다.

Quote:
1. $LOCALAPPDATA(사용자 별 어플리케이션 폴더)의 사용이 가능하면 이 곳을 초기 설치 폴더로 결정
2. 1번이 불가능할 경우 $PROGRAMFILES를 초기 설치 폴더로 결정



.onInit callback 함수에서 $LOCALAPPDATA의 사용 가능함을 판단하게 하였고
결국 다음과 같이 구성하게 되었습니다.

Code:
...(기타 내용)...
!define APP_NAME "Imagine"
RequestExecutionLevel   user
InstallDir   "$PROGRAMFILES64\${APP_NAME}" ; 32비트의 경우 $PROGRAMFILES와 동일하게 동작함

...(기타 내용)...

Function   .onInit
   StrCpy   $0   "$LOCALAPPDATA"
   StrLen   $1 $0
   IntCmp   $1 0 lbl_done

   StrCpy   $INSTDIR "$LOCALAPPDATA\${APP_NAME}"
lbl_done:
FunctionEnd
...(기타 내용)...


테스트 해본 결과 $LOCALAPPDATA의 사용이 가능하지 않은 OS(Windows 9x)에서는
$PROGRAMFILES(C:\Program Files)가 초기 설치 폴더로 나오고
가능한 OS(Windows 2000 이후의 모든 OS)에서는 $LOCALAPPDATA(C:\Users\[사용자명]\AppData\Local)이 초기 설치 폴더로 표시되는 것을 확인하였습니다.

제가 아직 NSIS 스크립트에 능숙하지 못해서 오류가 있을 수도 있습니다.
문제가 있다면 말씀해주시면 감사하겠습니다.



출처 : 독립 개발자 네트워크


Trackback 0 Comment 0
2013.10.18 18:09

Windows 7 ActiveX Installer 서비스 관리

적용 대상: Windows 7, Windows Server 2008 R2

AXIS(ActiveX Installer 서비스)는 IT 전문가가 그룹 정책을 사용하여 조직의 컴퓨터에 대한 ActiveX® 컨트롤 배포를 관리할 수 있도록 하는 서비스입니다. ActiveX 컨트롤은 자체 등록 COM 개체로, 이를 사용하면 한층 강화된 대화식 사용자 환경의 Internet Explorer를 경험할 수 있습니다. ActiveX 컨트롤은 주로 .cab 파일로 배포됩니다. 기본적으로 표준 사용자 계정에는 ActiveX 컨트롤을 설치할 수 있는 권한이 없습니다. 이 문서를 사용하여 Windows® 7에서 ActiveX Installer 서비스를 구현하고 관리하는 방법을 알아볼 수 있습니다.

note참고
ActiveX Installer 서비스는 Windows Server® 2008 R2에 포함되지 않습니다. Windows Server 2008 R2를 실행하는 컴퓨터의 웹 브라우저에서 ActiveX 컨트롤을 설치하려 하면 노란색 알림 표시줄과 게시자를 알 수 없다는 경고 메시지가 있는 사용자 계정 컨트롤 대화 상자가 나타납니다.

ActiveX Installer 서비스 시작

Windows 7을 실행하는 컴퓨터에서는 ActiveX 컨트롤러 서비스가 기본적으로 설정 및 구성되므로 ActiveX 컨트롤을 제공하는 웹 사이트에서 요청할 경우 해당 서비스가 시작됩니다.

ActiveX Installer 서비스 구성

ActiveX Installer 서비스에 사용되는 옵션과 사이트는 그룹 정책 설정을 통해 구성되며, 그룹 정책 설정은 GPMC(그룹 정책 관리 콘솔)나 로컬 그룹 정책 편집기를 사용하여 수정할 수 있습니다. ActiveX Installer 서비스에 대한 정책 설정은 ActiveX 컨트롤용 승인된 설치 사이트와 신뢰할 수 있는 영역의 사이트에 대한 ActiveX 설치 정책의 두 가지가 있습니다. ActiveX 컨트롤용 승인된 설치 사이트 정책 설정은 ActiveX Installer 서비스에서 ActiveX 컨트롤을 설치할 수 있는지 여부를 확인하는 데 사용하는 승인된 설치 사이트 목록으로 이루어져 있습니다. 신뢰할 수 있는 영역의 사이트에 대한 ActiveX 설치 정책 정책 설정은 신뢰할 수 있는 사이트 영역을 사용하여 ActiveX 컨트롤을 설치하는 방법을 나타냅니다. 웹 사이트가 ActiveX 컨트롤을 설치하려 하면 ActiveX Installer 서비스가 웹 사이트의 URL이 승인된 설치 사이트 목록이나 신뢰할 수 있는 사이트 영역에 포함되어 있는지 확인합니다. 사이트가 둘 중 하나에 포함되어 있는 경우 ActiveX Installer 서비스는 사이트가 정책에 정의된 요구 사항에 맞는지 확인합니다. 사이트와 ActiveX 컨트롤이 정책 설정의 요구 사항에 맞으면 컨트롤이 설치됩니다.

Important중요
그룹 정책 설정을 수정하려면 원격 컴퓨터에서 Administrators 그룹 구성원인 계정으로 로그온해야 합니다.

ActiveX Installer 서비스에 대해 승인된 설치 정책 설정을 구성하려면

  1. 시작을 클릭하고 프로그램 및 파일 검색 상자에 gpedit.msc를 입력한 다음 Enter 키를 눌러 로컬 그룹 정책 편집기를 엽니다.

  2. 사용자 계정 컨트롤 대화 상자가 나타나면 원하는 작업이 표시되었는지 확인한 다음 를 클릭합니다.

  3. 로컬 컴퓨터 정책\컴퓨터 구성\관리 템플릿\Windows 구성 요소 아래 콘솔 트리에서 ActiveX Installer 서비스를 클릭합니다.

  4. 세부 정보 창에서 ActiveX 컨트롤용 승인된 설치 사이트를 마우스 오른쪽 단추로 클릭하고 편집을 클릭하여 정책 설정을 엽니다.

  5. ActiveX 컨트롤용 승인된 설치 사이트 대화 상자에서 사용을 클릭하고 옵션에서 표시를 클릭합니다.

  6. 내용 표시 대화 상자의 값 이름 텍스트 상자에 ActiveX 컨트롤 설치를 허용할 URL의 이름을 입력하고 ActiveX Installer 서비스 호스트 URL 설정의 값을 입력합니다. URL을 추가할 때, ActiveX Installer 서비스의 설정을 자세히 설명하는 값을 쉼표로 구분하여 지정할 수 있습니다. 다음 4개의 값을 구성할 수 있습니다.

    • 신뢰할 수 있는 서명이 있는 ActiveX 컨트롤 설치. 값에 대한 자세한 내용은 이 문서에서 표 1: 신뢰할 수 있는 서명이 있는 ActiveX 컨트롤 설치에 대한 값을 참조하십시오.

    • 서명된 ActiveX 컨트롤 설치. 값에 대한 자세한 내용은 이 문서에서 표 2: 서명된 ActiveX 컨트롤 설치에 대한 값을 참조하십시오.

    • 서명되지 않은 ActiveX 컨트롤 설치. 값에 대한 자세한 내용은 이 문서에서 표 3: 서명되지 않은 ActiveX 컨트롤 설치에 대한 값을 참조하십시오.

    • HTTPS 오류 예외. 값에 대한 자세한 내용은 이 문서에서 표 2: 서명된 ActiveX 컨트롤 설치에 대한 값을 참조하십시오.

    note참고
    사용할 값을 결정할 때는 샘플 구성 섹션을 참조하십시오.

  7. URL 추가를 마쳤으면 확인을 두 번 클릭하여 변경 내용을 적용합니다.

신뢰할 수 있는 사이트 영역에 대한 ActiveX 설치 정책 구성

조직에서 신뢰하는 웹 사이트를 신뢰할 수 있는 사이트 영역에 추가하여 관리자의 승인 없이 ActiveX 컨트롤 설치가 가능하도록 할 수 있습니다. 신뢰할 수 있는 사이트 영역의 사이트는 와일드카드 문자와 하위 도메인을 조합하여 지정할 수 있습니다. 예를 들어https://*.contoso.com이라는 웹 사이트를 신뢰할 수 있는 사이트 영역에 추가하고 신뢰할 수 있는 영역의 사이트에 대한 ActiveX 설치 정책 정책 설정을 구성하면 contoso.com 도메인의 모든 웹 사이트가 조직의 컴퓨터에 ActiveX 컨트롤을 설치할 수 있게 됩니다. 이러한 기능은 조직에서 신뢰하는 포리스트가 여러 개 있는 경우에 유용할 수 있습니다.

이 정책 설정을 사용하려면 컴퓨터 구성\관리 템플릿\Win dows 구성 요소\Internet Explorer 에서 보안 영역: 시스템 설정만 사용 정책 설정을 사용하도록 설정하고, 컴퓨터 구성\관리 템플릿\Internet Explorer\인터넷 제어판\보안 페이지의 영역에 대한 사이트 할당 목록 정책 설정에서 그룹 정책을 사용해 배포할 신뢰할 수 있는 사이트의 목록을 구성해야 합니다.

security보안 참고
이 기능을 사용하여 신뢰할 수 있는 사이트의 ActiveX 컨트롤 설치를 허용하는 경우 표준 사용자가 임의의 ActiveX 컨트롤을 설치하지 않도록 하려면 영역에 대한 사이트 할당 목록 그룹 정책 설정의 신뢰할 수 있는 사이트 목록에 항목을 하나 이상 추가해야 합니다.

와일드카드 문자와 하위 도메인의 조합을 사용하면 표준 사용자가 와일드카드 문자를 사용한 하위 도메인에 있는 모든 서버로부터 프로그램과 응용 프로그램을 설치할 수 있습니다. 여기에는 맬웨어나 잠재적으로 사용자 동의 없이 설치되는 소프트웨어가 포함될 수 있습니다. 따라서 이 기능을 설정하기 전에 하위 도메인의 모든 서버가 완전히 트러스트되었는지 확인해야 합니다.

신뢰할 수 있는 영역의 사이트에 대한 ActiveX 설치 정책을 구성하려면

  1. 시작을 클릭하고 프로그램 및 파일 검색 상자에 gpedit.msc를 입력한 다음 Enter 키를 눌러 로컬 그룹 정책 편집기를 엽니다.

  2. 로컬 컴퓨터 정책\컴퓨터 구성\관리 템플릿\Windows 구성 요소 아래 콘솔 트리에서 ActiveX Installer 서비스를 클릭합니다.

  3. 세부 정보 창에서 신뢰할 수 있는 영역의 사이트에 대한 ActiveX 설치 정책을 마우스 오른쪽 단추로 클릭하고 편집을 클릭하여 정책 설정을 엽니다.

  4. 신뢰할 수 있는 영역의 사이트에 대한 ActiveX 설치 정책 대화 상자에서 사용을 클릭합니다.

  5. 옵션에서 설치를 시도하는 ActiveX 컨트롤의 유형에 따라 신뢰할 수 있는 사이트 영역의 사이트에 적용할 정책 설정을 선택합니다.

    • 사용자의 설치 승인 없이 컨트롤을 자동으로 설치하려면 자동으로 설치를 선택합니다.

    • 사용자가 컨트롤 설치 여부를 결정하도록 하려면 사용자에게 확인을 선택합니다.

    • 조건에 일치하는 컨트롤이 설치되지 않도록 하려면 설치 안 함을 선택합니다.

    다음과 컨트롤 유형에 대해 정책을 구성할 수 있습니다.

    • 신뢰할 수 있는 게시자가 서명한 ActiveX 컨트롤

    • 서명된 ActiveX 컨트롤

    • 서명 안 된 ActiveX 컨트롤

  6. 신뢰할 수 있는 사이트 영역의 사이트가 서버 유효성 검사(HTTPS)를 지원하는 경우 인증서 오류가 발생할 때 신뢰할 수 있는 사이트에 대한 연결을 제어하는 정책을 구성할 수도 있습니다. 기본적으로 모든 HTTPS 연결은 모든 유효성 검사 조건을 통과하는 서버 인증서를 제공해야 합니다. 신뢰할 수 있는 사이트의 유효성을 완전히 신뢰하고 오류 발생 이유가 확실한 경우에만 예외를 지정해야 합니다.

  7. 확인을 클릭하여 변경 내용을 적용합니다.

게시자를 신뢰할 수 있는 ActiveX 컨트롤 설치

이 설정은 컴퓨터 또는 엔터프라이즈의 신뢰할 수 있는 게시자 저장소에 있는 인증서로 서명된 ActiveX를 설치할 때의 서비스 동작을 설명합니다. 표 1에서는 이 설정의 가능한 값을 보여 줍니다.

표 1: 신뢰할 수 있는 서명이 있는 ActiveX 컨트롤 설치에 대한 값

설명

0

사용자가 신뢰할 수 있는 서명이 있는 ActiveX 컨트롤을 설치할 수 없게 합니다.

1

신뢰할 수 있는 서명이 있는 ActiveX 컨트롤을 설치하기 전에 사용자에게 확인 메시지를 표시합니다.

2

사용자에게 알리지 않고 신뢰할 수 있는 서명이 있는 ActiveX 컨트롤을 설치합니다. 이 값은 기본값입니다.

서명된 ActiveX 컨트롤 설치

이 설정은 컴퓨터 또는 엔터프라이즈의 신뢰할 수 있는 게시자 저장소에 없는 인증서로 서명된 ActiveX를 설치할 때의 서비스 동작을 결정합니다.

표 2: 서명된 ActiveX 컨트롤 설치에 대한 값

설명

0

사용자가 서명된 ActiveX 컨트롤을 설치할 수 없게 합니다.

1

서명된 ActiveX 컨트롤을 설치하기 전에 사용자에게 확인 메시지를 표시합니다. 이 값은 기본값입니다.

2

사용자에게 알리지 않고 서명된 ActiveX 컨트롤을 설치합니다.

서명되지 않은 ActiveX 컨트롤 설치

이 설정은 서명되지 않은 ActiveX 컨트롤을 설치할 때의 서비스 동작을 결정합니다. 표 3에서는 이 설정의 가능한 값을 보여 줍니다.

표 3: 서명되지 않은 ActiveX 컨트롤 설치에 대한 값

설명

0

사용자가 서명 안 된 ActiveX 컨트롤을 설치할 수 없게 합니다. 이 값은 기본값입니다.

1

사용자에게 알리지 않고 서명되지 않은 ActiveX 컨트롤을 설치합니다.

HTTPS 오류 예외

이 값은 ActiveX Installer 서비스가 HTTPS 연결에서 감지된 오류를 처리하는 방법을 제어합니다. 기본적으로 ActiveX Installer 서비스는 오류가 발견된 경우에 ActiveX 컨트롤 설치를 차단합니다.

표 4: HTTPS 오류 예외에 대한 값

설명

0

연결이 모든 확인 검사를 통과해야 하도록 지정합니다.

0x00000100

ActiveX Installer 서비스에서 알 수 없는 CA(인증 기관)로 인한 오류를 무시하도록 지정합니다.

0x00001000

ActiveX Installer 서비스에서 잘못된 CN(일반 이름)으로 인한 오류를 무시하도록 지정합니다. CN은 개체 DN(고유 이름)을 만들 때 사용하는 명명 특성입니다.

0x00002000

ActiveX Installer 서비스에서 인증서의 날짜로 인한 오류를 무시하도록 지정합니다.

0x00000200

ActiveX Installer 서비스에서 부적절한 인증서 사용으로 인한 오류를 무시하도록 지정합니다.

note참고
OR (|) 문자를 사용하여 ActiveX Installer 서비스에 대한 여러 개의 오류 예외를 지정할 수 있습니다.

샘플 구성

다음 샘플 구성은 ActiveX Installer 서비스 구성 방법을 보여 줍니다. 그러나 이러한 샘플 구성은 권장하지 않습니다.

기본 설정

값을 지정하지 않으면 ActiveX Installer 서비스에서 기본값을 적용합니다. 기본값은 2,1,0,0입니다. 이 설정이 적용되는 경우 ActiveX Installer 서비스는 다음 작업을 수행합니다.

  • 서명되지 않은 ActiveX 컨트롤 설치 차단

  • 서명된 ActiveX 컨트롤 설치를 승인하라는 메시지를 사용자에게 표시

  • 사용자에게 메시지를 표시하지 않고 신뢰할 수 있는 게시자 저장소에 있는 인증서로 서명된 ActiveX 컨트롤을 자동으로 설치

높은 보안 설정

ActiveX Installer 서비스의 가장 안전한 구성은 관리자가 다음과 같이 서비스를 구성하는 경우입니다.

  • HTTPS 사이트를 호스트 URL로 사용

  • 신뢰할 수 있는 게시자 저장소에 있는 인증서로 서명된 ActiveX 컨트롤만 설치 허용

이 설정을 구성하는 값은 2,0,0,0입니다.




출처 : technet.microsoft.com


Trackback 0 Comment 1
  1. Favicon of https://blog.pages.kr 날으는물고기 2013.10.29 07:38 신고 address edit & del reply

    고급 사용자가 새 버전의 Windows Update 오프라인 검색 파일 Wsusscn2.cab를 사용할 수 있다
    http://support.microsoft.com/kb/926464/ko