태그 보관물: windows-server-2003

windows-server-2003

MSI 설치를 자동화하려면 어떻게합니까? 있습니다. 원격으로

특정 순서로 실행해야하는 약 20 개의 응용 프로그램이 있습니다. 원격으로 할 수 있도록 스크립트를 작성하고 싶습니다.

각 응용 프로그램에는 Setup.exe와 MSI가 있습니다.

응답 파일과 함께 MSI라고하는 간단한 스크립트를 원했지만 그 이후 몇 년이 걸렸습니다. 그러나 응답 파일을 만드는 방법을 기억하지 못합니다.

이것이 좋은 방법입니까? 아니면 더 간단한 방법이 있습니까?



답변

로드 된 질문에 대해 이야기하십시오 …

우선, setup.exe를 무시하십시오. 단지 MSI라고 부릅니다. 또는 때때로 그들은 MSI라고 부르는 많은 것들을 추출합니다. 설정을 실행할 때 temp 디렉토리를보고 일반적으로 수행중인 작업에 대한 아이디어를 얻을 수 있습니다.

필자는 항상 속임수를 쓰고 msiexec /i path/to-install.msi /l*v /qn로깅을 크롤링 한 상태에서 설치 ( )를 드라 이런 한 다음 로그를 통해 명령 줄을 통해 설정하고 설정하려는 속성을 선택했습니다. 응답 파일은 작동하지 않았거나 프로세스를 진행하는 데 어려움을 겪지 않았습니다.

그런 다음 InstEdit을 찾아 보트로드 로 사용했습니다. MSI의 속성을 편집하고 스크립트에서 인수로 전달할 수있는 변환을 생성 할 수 있습니다 msiexec /i path/to/installer.msi /t path/to/transform.mst .

또한 모든 스위치에 대해 여기 를 살펴볼 수도 있습니다 msiexec.


답변

Msiexec 는 필요한 도구입니다. “quiet”을 설치할 수있는 -q 매개 변수가 있습니다.

/ qn : 사용자 인터페이스가 표시되지 않습니다.

/ qb : 기본 사용자 인터페이스를 표시합니다.

/ qr : 설치가 끝나면 모달 대화 상자가 표시된 축소 된 사용자 인터페이스를 표시합니다.

/ qf : 끝에 모달 대화 상자가 표시된 전체 사용자 인터페이스를 표시합니다.

/ qn + : 끝에 표시되는 모달 대화 상자를 제외하고 사용자 인터페이스를 표시하지 않습니다.

/ qb + : 끝에 모달 대화 상자가 표시된 기본 사용자 인터페이스를 표시합니다.

/ qb- : 모달 대화 상자가없는 기본 사용자 인터페이스를 표시합니다.

명령 줄 끝에 이름이 지정된 옵션 (또는 “속성”)을 제공 할 수도 있습니다. 지원되는 속성은 패키지에 따라 다릅니다. 예를 들어 다음 명령은

msiexec /qb /l* perl-log.txt /i ActivePerl.msi PERL_PATH=Yes PERL_EXT=Yes

… ActiveState Perl을 설치하는 방법으로 MSI 패키지에 Perl.exe를 PATH에 추가하고 .pl 파일을 PATH에 연결하도록 지시합니다. ( 소스 )


답변

대부분의 응용 프로그램은 자동 설치되어 스크립팅 될 수 있습니다. 각 Setup.exe에는 여러 가지 잠재적 인 스위치가있을 수 있으므로 공급 업체에 전화하거나 웹 사이트를 검색해야합니다. 때로는 / ?, / h / help 스위치로 설정을 시작하여 정보를 얻을 수 있습니다. MSI 파일에는 여러 개의 스위치가있을 수 있지만이 기사 MSI 명령 줄 매개 변수 는 목록을 제공합니다.

프로세스를 스크립팅 할 때 setup.exe로 설치 한 다음 MSI와 같은 다른 파일을 실행하는 앱이 실행될 수 있습니다. 한 예로 MS Office XP가 있습니다. 이 문제가 발생하면 스크립트는 시작한 파일이 완료되었다고 생각하고 다음 설정을 시작하여 모든 것이 남쪽으로 이동하지 못하게합니다. 이 문제를 해결하려면 설정 파일을 무시하고 명령 줄 옵션을 사용하여 실제 설치 프로그램 (잠재적으로 MSI)으로 이동하십시오. 이것이 가능하지 않은 경우 일종의 타이머 일시 정지를 작성해야합니다. 인터넷에서 찾은 wait.exe라는 작은 유틸리티를 사용했지만이 작업을 수행하는 방법에는 백만 가지가 있습니다. 그러나 스크립팅의 핵심은 다음 설치를 시작할 수 있도록 응용 프로그램이 올바르게 설치되었음을 식별하는 것입니다.


답변