개발자의뇌

윈도우10 관리자 권한으로 wifi 고정 ip 설정 배치파일 실행 본문

개발

윈도우10 관리자 권한으로 wifi 고정 ip 설정 배치파일 실행

devbrain 2020. 7. 23. 14:07

무선공유기 dhcp를 off 시키면 wifi 를 고정IP로 설정해서 사용해야 한다.

 

무선공유기가 1개만 있으면 한번 고정ip 셋팅 후 계속 사용하면 되는데

 

무선공유기를 여러개 사용하고 있으면 매번 공유기 대역에 맞는 IP로 바꿔주어야 한다.

 

그래서 윈도우10 cmd 에서 wifi 고정IP를 변경하는 명령을 찾아보았다.

 

AP_TEST_1 은 무선 공유기의 ssid 이름이고

Wi-Fi 는 무선어댑터 이름이다. 

 

netsh wlan connect name="AP_TEST_1"
netsh -c int ip set address "Wi-Fi" static 192.168.111.251 255.255.255.0 192.168.111.1

 

위 코드를 실행시키려면 관리자 권한으로 cmd를 실행한 이후에 입력해야 한다.

 

그래서 배치파일에 위 명령을 넣고 실행시키면 권한이 없다는 메시지가 나온다.

 

그래서 윈도우10에서 배치파일 실행시 자동으로 관리자 권한을 얻는 방법을 찾아보았더니

 

아래와 같이 사용하면 된다.

 

@echo off

>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"

if '%errorlevel%' NEQ '0' (

    echo 관리 권한을 요청 ...

    goto UACPrompt

) else ( goto gotAdmin )

:UACPrompt

    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"

    set params = %*:"=""

    echo UAC.ShellExecute "cmd.exe", "/c %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs"



    "%temp%\getadmin.vbs"

    rem del "%temp%\getadmin.vbs"

    exit /B



:gotAdmin

pushd "%CD%"

    CD /D "%~dp0"

 

 

그러면 관리자 권한으로 wifi 고정ip를 변경하려면 아래와 같이 bat 파일을 만들어 실행 하면 된다.

 

@echo off

>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"

if '%errorlevel%' NEQ '0' (

    echo 관리 권한을 요청 ...

    goto UACPrompt

) else ( goto gotAdmin )

:UACPrompt

    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"

    set params = %*:"=""

    echo UAC.ShellExecute "cmd.exe", "/c %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs"



    "%temp%\getadmin.vbs"

    rem del "%temp%\getadmin.vbs"

    exit /B



:gotAdmin

pushd "%CD%"

    CD /D "%~dp0"

netsh wlan connect name="AP_TEST_1"
netsh -c int ip set address "Wi-Fi" static 192.168.111.251 255.255.255.0 192.168.111.1
PAUSE

 

윈도우10은 bat 파일 사용시 관리자 권한을 사용하는 경우가 많은데 

 

위 스크립트를 이용하여 만들면 많은 도움이 될 것으로 보인다.

Comments