-1
아래의 일괄 처리 하이브리드 스크립트는 상승 된 권한이 필요한 일부 작업을 실행하기 전에 관리자 권한을 자동으로 호출하는 것을 목표로합니다. UAC 프롬프트는 팝업되지만 사용자 선택에 상관없이 관리자 권한은 부여되지 않습니다.Window의 ShellExecute 함수가 WSF 스크립트 인수를 허용 할 수 있습니까?
Window의 ShellExecute 함수가 WSF 인수 나 다른 확장 가능한 매개 변수를 받아 들일 수 있는지 궁금합니다. 이 경우 배치 파일 이름. 가능한 경우 다른 방법을 사용하여 구조 조정없이 스크립트를 변경해야합니다.
<!-- : Begin batch script
@echo off
setlocal EnableExtensions EnableDelayedExpansion
CD /D "%~dp0" & echo "%*"
set "dir=%temp%\Unzip"
set "file=%USERPROFILE%\Downloads\archive.zip"
if not "%1"=="ADR" (call :GetAdminRights
if defined adm cscript //nologo "%~f0?.wsf" //job:ADM "%~nx0")
>nul 2>&1 net file && (echo/ & echo "!errorlevel!") ||^
(echo/ & echo "!errorlevel!" & goto :end)
:: add your code here
echo Performing admin tasks
echo Hello >C:\test.txt
:end
timeout 5
exit /b
:GetAdminRights
REM Check for permissions
>nul 2>&1 net file
REM If error flag set, user don't have admin permissions
if '!errorlevel!' NEQ '0' (echo Requesting administrative privileges...
set "adm=0"
echo/ & echo "!errorlevel!" "%~nx0" "%~dp0" & echo/)
exit /b
----- Begin wsf script --->
<package>
<job id="ADM"><script language="VBScript">
Set UAC = CreateObject("Shell.Application")
WScript.Echo wscript.Arguments(0)
UAC.ShellExecute "cmd.exe", "/c ""wscript.Arguments(0)"" ADR", "", "runas", 1
</script></job>
</package>
:: Error in UAC Prompt (shown in details. Can't expand batch name correctly.)
Program location: "C:\Windows\System32\cmd.exe /c "wscript.Arguments(0)" ADR
왜 스크립트에 관리자 권한이 필요합니까? –
@Bill_Stewart 필자는 질문을 편집하여 그러한 요구 사항의 예를 제시했습니다. 그러나 필자는 작업을 수행 할 수있는 "가능한"방법을 찾기보다는 ShellExecute 제한 사항을 익히는 데 더 관심이 있습니다. :) – sambul35
관리자 권한이 필요한 이유가 어디 있는지 알 수 없습니다. "사용자 작업을 실행하기 전에"라고 말하면됩니다. 어떤 작업을합니까? (사용자 작업에는 관리자 권한이 필요하지 않습니다.) –