2017-05-18 3 views
0

사용자가 로컬 컴퓨터에서 실행하여 msiexec을 실행하여 응용 프로그램을 설치하는 스크립트를 만드는 중입니다. 불행히도 사용자가 권한을 수정할 필요가 없으면 설치가 실패합니다.WIndows - 설치하기 전에 내 사용자 계정에 설치 권한이 있는지 확인하십시오.

msiexec는 로그에 쓰고 권한으로 인해 실패했음을 알려주지 만 매우 우아한 해결책은 아닙니다.

응용 프로그램을 설치할 수 있는지 여부를 Windows 명령 줄에서 어떻게 알 수 있습니까?

+1

당신은 행정 특권을 의미합니까? – GTAVLover

+0

어쩌면 관리자가 설치할 수 있음을 알고 있습니다. 다른 사람이 특정 권한을 가지고 있다면 내가 모르는 것입니다. – jdenny

답변

1

관리자가 아닌 사용자가 msi를 실행할 수있는 정책 설정이 있으므로 관리자가 설정 한 경우에 대비하여 관리자 확인으로 정책 설정을 통합해야 할 수도 있습니다.

@Echo Off 
"%__APPDIR__%net.exe" Session >Nul 2>&1 && GoTo Success 
Set "RKey=HKCU HKLM" 
Set "SKey=SOFTWARE\Policies\Microsoft\Windows\Installer" 
Set "KVal=AlwaysInstallElevated" 
Set "KDat=0" 
For %%A In (%RKey%) Do For /F "Tokens=3" %%B In (
    '"%__APPDIR__%reg.exe" Query "%%A\%SKey%" /V "%KVal%" 2^>Nul' 
) Do Set/A KDat+=%%B 
If %KDat% NEq 2 Exit/B 

:Success 
Echo(You can install! 
Timeout -1 

은 당신의 .msi 설치 프로그램을 실행 :Success 아래의 코드를 변경합니다.

+0

처음으로 일했습니다. 고마워요! – jdenny