윈도우즈 동시 접속 사용자 수 변경 및 유휴 세션 종료하기

윈도우즈/OS 일반|2024. 4. 22. 15:44
반응형

1. 동시 접속자 수 변경

 

윈도우즈 OS 설치시 기본 2개의 세션만 동시 원격 접속이 가능한데, '로컬 그룹 정책' 에서 값을 바꿔 줌으로써 더 많은 사용자의 동시 접근을 허용할 수 있습니다. 여기에서는 10개의 세션이 동시 접속 가능하도록 설정하는 방법을 안내합니다. 물론 사용한 만큼의 라이센스는 신고하여 비용을 납부하셔야 합니다.

 

시작 > 실행에서 'gpedit.msc' 명령 실행 후 아래 경로로 이동합니다.
컴퓨터 구성 > 관리 템플릿 > Windows 구성 요소 > 터미널 서비스 > 원격 데스크톱 세션 호스트 > 연결

 

'연결 개수 제한' 우클릭 후 '편집' 에서 아래와 같이 설정합니다.

- '사용' 상태

- TS 최대 허용 연결 : 10

 

 

2. 유휴 세션 자동 종료하기

 

시작 > 실행에서 'gpedit.msc' 명령 실행 후 아래 경로로 이동합니다.

컴퓨터 구성 > 관리 템플릿 > Windows 구성 요소 > 터미널 서비스 > 원격 데스크톱 세션 호스트 > 세션 시간 제한

 

'연결 끊어진 세션에 시간 제한 설정' 우클릭 후 '편집' 에서 아래와 같이 설정합니다.

- '사용' 상태

- 연결 끊어진 세션 종료 : 1시간


'활성 상태지만 유휴 터미널 서비스 세션에 시간 제한 설정' 우클릭 후 '편집' 에서 아래와 같이 설정합니다.

- '사용' 상태

- 유휴 세션 제한 : 1시간

 

반응형

댓글()

Windows 에서 Docker 사용하기 (Windows Container)

윈도우즈/OS 일반|2023. 10. 10. 14:50
반응형

윈도우즈에서 Docker 를 사용하는 방법입니다.

여기에서는 Docker 를 이용해 Windows Container 를 가동해 보겠습니다.

Windows Container 는 Windows 10, 11 또는 Windows Server 2016 이후의 버전을 기반으로 실행해야 합니다.

저는 Windows 2019 Server 기반에서 진행하였습니다.

 

 

1. Hyper-V 설치

 

윈도우즈 파워쉘을 열고 아래 명령을 실행하여 Hyper-V 구성요소를 설치합니다.

PS C:\Users\Administrator> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
지금 컴퓨터를 다시 시작하여 이 작업을 완료하시겠습니까?
[Y] Yes  [N] No  [?] 도움말 (기본값은 "Y"): Y

 

'Y' 를 입력하여 리부팅을 합니다.

 

 

2. Docker Desktop for Windows 설치

 

부팅이 되었다면 아래 URL 에 접속하여 윈도우즈용 Docker 를 다운로드 받아 설치합니다.

https://docs.docker.com/desktop/install/windows-install 으로 접속하여 [Docker Desktop for Windows] 버튼을 클릭해 설치파일을 다운로드하고, 실행하여 설치합니다.

현재 날짜 기준으로 Docker Desktop 4.24.1 버전이 설치되었습니다.

설치 완료 후, 재부팅을 해야 합니다.

부팅되어 윈도우즈에 다시 로그인을 하면 Docker Desktop 에서 아래와 같은 메세지가 출력됩니다.

 

-----

Windows 17763 is deprecated

You can still use Docker Desktop but you are on Windows 17763.

You will not be able to install further major updates (3.6.0 and above).

We recommend upgrading to the latest version of Windows.

-----

Windows 17763은 더 이상 사용되지 않습니다.
Docker Desktop을 계속 사용할 수 있지만 Windows 17763을 사용하고 있습니다.
추가 주요 업데이트(3.6.0 이상)를 설치할 수 없습니다.
최신 버전의 Windows로 업그레이드하는 것이 좋습니다.

-----

 

[OK] 버튼을 누르고 사용 동의를 묻는 질문에 동의합니다.

그 다음 저는 로그인을 스킵하고 진행하였습니다. (맨 아래 밑줄 클릭)

직업을 묻는 창이 뜨는데 마찬가지로 스킵하고 진행하였습니다.

이제 Docker Desktop 사용준비가 완료되었습니다.

 

 

3. Windows Container 이미지 다운로드

 

Windows Container 는 latest TAG 를 지원하지 않으므로 아래 페이지에서 TAG 를 확인 후 정확하게 입력해줘야 합니다.

- Server Core : https://hub.docker.com/_/microsoft-windows-servercore

- Nano Server : https://hub.docker.com/_/microsoft-windows-nanoserver

- Windows : https://hub.docker.com/_/microsoft-windows

- Windows Server : https://hub.docker.com/_/microsoft-windows-server

 

nanoserver:ltsc2022 버전을 다운로드 하기위해 파워쉘을 실행해 아래와 같이 명령어를 입력합니다.

PS C:\Users\Administrator> docker pull mcr.microsoft.com/windows/nanoserver:2022-amd64
[2023-10-10T06:40:43.321895600Z][docker-credential-desktop.system][W] Windows version might not be up-to-date: The system cannot find the file specified.
2022-amd64: Pulling from windows/nanoserver
no matching manifest for linux/amd64 in the manifest list entries

 

위와 같은 메세지가 출력된다면 Linux 컨테이너를 실행하도록 되어 있는 것입니다. Windows 컨테이너로 실행하려면 플랫폼 옵션을 추가해 줍니다.

PS C:\Users\Administrator> docker pull --platform windows/amd64 mcr.microsoft.com/windows/nanoserver:2022-amd64

[2023-10-10T06:51:52.322714700Z][docker-credential-desktop.system][W] Windows version might not be up-to-date: The system cannot find the file specified.
2022-amd64: Pulling from windows/nanoserver
no matching manifest for windows/amd64 10.0.17763 in the manifest list entries

 

플랫폼은 변경되었으나, 에러가 발생했습니다. 에러는 아래에서 잡도록 하고 우선 플랫폼 옵션이 번거로우므로 기본 설정으로 변경하여 옵션을 생략하도록 합니다.

윈도우 하단 우측의 트레이에서 Docker 아이콘을 우클릭하면 'Switch to Windows containers...' 옵션이 보입니다. 이를 클릭하고 다시 명령을 실행해 보겠습니다.

PS C:\Users\Administrator> docker pull mcr.microsoft.com/windows/nanoserver:2022-amd64
[2023-10-10T07:23:17.806412500Z][docker-credential-desktop.system][W] Windows version might not be up-to-date: The system cannot find the file specified.
2022-amd64: Pulling from windows/nanoserver
no matching manifest for windows/amd64 10.0.17763 in the manifest list entries

 

옵션을 제외하고 Windows 컨테이너로 다운로드 시도한것이 보입니다. 하지만 에러가 해결되지는 않았습니다.

OS 버전을 확인합니다.

PS C:\Users\Administrator> docker info |findstr 'Operating System'
 Operating System: Microsoft Windows Server Version 1809 (OS Build 17763.107)

 

현재 OS 버전은 1809 이므로 1809 이후의 버전은 구동하지 못합니다.

원래 다운로드 받으려고 했던 2022-amd64 버전을 1809-amd64 로 변경하여 다운로드 합니다.

PS C:\Users\Administrator> docker pull mcr.microsoft.com/windows/nanoserver:1809-amd64
[2023-10-10T07:40:06.050064200Z][docker-credential-desktop.system][W] Windows version might not be up-to-date: The system cannot find the file specified.
1809-amd64: Pulling from windows/nanoserver
f10ae9b68062: Pull complete
Digest: sha256:1b377c168fe2aeef3acd02d3a654c1280b45e6151d66d71ca1d50292e1cce106
Status: Downloaded newer image for mcr.microsoft.com/windows/nanoserver:1809-amd64
mcr.microsoft.com/windows/nanoserver:1809-amd64

What's Next?
[2023-10-10T07:40:14.293630700Z][docker-credential-desktop.system][W] Windows version might not be up-to-date: The system cannot find the file specified.
[2023-10-10T07:40:14.369957100Z][docker-credential-desktop.system][W] Windows version might not be up-to-date: The system cannot find the file specified.
  View a summary of image vulnerabilities and recommendations → docker scout quickview mcr.microsoft.com/windows/nanoserver:1809-amd64

 

다운로드가 잘 되었습니다. 도커 이미지 목록에도 보이는지 확인합니다.

PS C:\Users\Administrator> docker images
REPOSITORY                             TAG          IMAGE ID       CREATED       SIZE
mcr.microsoft.com/windows/nanoserver   1809-amd64   bd7fe7d0dddd   5 weeks ago   252MB

 

참고로 배포되는 컨테이너 TAG 리스트는 아래에서 확인이 가능합니다.

- Server Core : https://mcr.microsoft.com/v2/windows/servercore/tags/list

- Nano Server : https://mcr.microsoft.com/v2/windows/nanoserver/tags/list

- Windows : https://mcr.microsoft.com/v2/windows/tags/list

- Windows Server : https://mcr.microsoft.com/v2/windows/server/tags/list

 

 

4. Windows Container 실행

 

아래와 같이 실행하면 컨테이너의 명령프롬프트 실행이 가능합니다.

PS C:\Users\Administrator> docker run -it mcr.microsoft.com/windows/nanoserver:1809-amd64 cmd.exe

 

cmd.exe 대신 ipconfig.exe 를 입력하면 명령 수행 후 컨테이너가 바로 종료됩니다.

그래서 추가작업이 필요한 경우 cmd.exe 를 실행하고 출력된 명령프롬프트에서 추가 명령을 진행하면 됩니다.

이제, 컨테이너 목적으로 사용하시려면 Dockerfile 을 작성해서 웹서버와 같은 서비스를 구동해 보시기 바랍니다.

 

 

* 참고 (Container 원격 접속)

 

아래 링크에서 확인된 바로는 윈도우즈 컨테이너에서는 RDP 나 GUI 를 제공하지 않는다고 나와 있습니다.

 

https://github.com/microsoft/Windows-Containers/issues/306#issuecomment-1376440627

"Windows 컨테이너 이미지에서 제거되었으므로 지원되지 않습니다. 조만간 RDP 나 GUI 를 사용할 계획이 없기 때문에 Windows 컨테이너 구현 방식을 대대적으로 재설계해야 합니다. 애플리케이션에 GUI 나 RDP 가 필요한 경우 VM 을 계속 사용하는 것이 좋습니다. Azure Virtual Desktop 이나 Azure VM 과 같은 서비스가 더 적합할 수 있습니다."

 

https://learn.microsoft.com/en-us/virtualization/windowscontainers/quick-start/lift-shift-to-containers#what-cant-be-moved-to-windows-containers

- 지원되지 않는 응용프로그램/기능 : 데스크톱이 필요한 애플리케이션

- 지원되지 않는 이유 : 컨테이너가 GUI (Graphic User Interface) 를 지원하지 않음

- 이 문제를 해결할 수 있습니까? : 애플리케이션에서 GUI 만 설치하면 되는 경우 자동 설치로 변경하는 것이 해결책이 될 수 있습니다.

- 지원되지 않는 응용프로그램/기능 : RDP(Remote Desktop Protocol)를 사용하는 응용프로그램

- 지원되지 않는 이유 : RDP는 대화형 세션을 위한 것이므로 위의 원칙이 여기서도 적용됩니다.

- 이 문제를 해결할 수 있습니까? : WAC(Windows Admin Center) 또는 Remote PowerShell을 원격 관리 대신 사용할 수 있습니다.

 

특정 버전에서 RDP 를 사용할 수 있는 방법이 있다고 하는데 이마저도 완벽히 동작하지는 않는듯 합니다.

https://withinrafael.com/2018/03/09/using-remote-desktop-services-in-containers/

 

마이크로소프트에서 공식적으로 컨테이너에서 RDP 는 제공하지 않는다고 하였고, 향후 계획도 없다고 하였으므로 컨테이너에 RDP 접속은 할 수 없는것으로 판단됩니다. 컨테이너 목적이 다르므로, 그래도 원격접속을 하고 싶을 경우 VM 을 이용하면 됩니다.

반응형

댓글()

[배치파일] 실행중인 프로세스 경로를 변수에 저장하기

윈도우즈/OS 일반|2021. 12. 4. 07:00
반응형

배치파일의 %~dp0 는 동작을 하지만 exe 로 변환시 동작하지 않는 부분이 있어 아래 내용을 작성합니다.

예제에서는 explorer.exe 실행 경로를 찾아 변수에 저장하는 것으로 합니다.

아래와 같이 배치파일을 만들어 실행해 봅니다.

 

test.bat

@echo off

FOR /F "delims=" %%i IN ('wmic process where name^="explorer.exe" get ExecutablePath') DO (
echo %%i |find /i "explorer.exe" >nul
if errorlevel 1 (echo notfound) else (echo found && set item=%%i)
)

echo %item%

FOR %%i IN ("%item%") DO (
echo filedrive=%%~di
echo filepath=%%~pi
echo filename=%%~ni
echo fileextension=%%~xi
)

둘째줄에 IN 다음 괄호안에 들어오는것이 원래의 명령어인데 출력되는 라인이 많기도 하고 원하는

줄 (총 3줄에서 2번째줄) 이 변수에 넣기 힘든 부분이 있습니다.

(괄호 안에서는 name= 부분에 = 가 특수문자로 인식되어 앞에 ^ 를 추가함)

 

세번째줄에서 각 행을 출력할때마다 Explorer 가 있는지 살펴보고 있으면 set item=%%i 를 실행하여 item 변수에

디렉토리와 파일의 온전한 경로를 넣습니다.

 

마지막으로 획득한 파일 경로를 드라이브명, 디렉토리, 파일명, 확장자로 나누어 출력해 보았습니다.

아래 코드를 추가하면 원하는 부분만 조합이 가능합니다. (파일명 제외하고 디렉토리만 : C:\Windows\)

set a=%%~di
set b=%%~pi
echo %a%%b%

반응형

댓글()

명령어로 작업 스케쥴러에 시작 프로그램으로 등록하기

윈도우즈/OS 일반|2020. 6. 9. 13:55
반응형

작업 스케쥴러를 이용합니다.

시작 프로그램의 대안은 예약 된 작업입니다. 시작시 작업이 실행되도록 예약 할 수 있습니다.

GUI 모드로 실행한 경우 예약 된 모든 작업을 생성, 삭제, 활성화, 비활성화 및 관리가 가능합니다.

> GUI 모드 관리창 실행 명령 : taskschd.msc


명령 프롬프트에서 예약 된 작업을 관리하려면 아래와 같이 사용하세요.

이 프로그램을 사용하면 예약 된 작업을 생성, 삭제 및 실행 할 수 있습니다.

아래와 같이 마지막에 물음표 옵션을 사용하면 명령에 대한 도움말을 얻을 수도 있습니다.

> 작업 스케쥴러 CLI 명령어 :  schtasks.exe


schtasks

schtasks /?

schtasks /Run /?

schtasks /End /?

schtasks /Create /?

schtasks /Delete /?

schtasks /Query  /?

schtasks /Change /?

schtasks /ShowSid /?


이러한 명령에 대해 관리자 명령 프롬프트로 실행 해야 합니다.


로그인시 로컬 사용자로 시작할 스크립트를 작성하는 예제 :


schtasks /create /tn "MyCustomTask" /sc onlogon /tr "cmd.exe /c pause"


다음과 같이 시스템이 시작할 때 스크립트를 실행하도록 지시 할 수 있습니다.


schtasks /create /tn "MyCustomTask" /sc onstart /ru system /tr "cmd.exe /c pause"



[출처] https://www.devdungeon.com/content/windows-run-script-startup



반응형

댓글()

배치파일 실행시 인자값 전달 받기

윈도우즈/OS 일반|2020. 6. 9. 08:56
반응형

c:\run.bat 내용


set name=%1

echo %name% 

 

실행

c:\> run.bat CDH

 

결과

CDH


* 참고

인자값을 받아서 MySQL 쿼리를 실행하려 할 때는 인자값 뒤에 한 byte 가 더 붙는다. (공백인지 엔터인지 모르겠음)

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


set name=%1

c:\mysql\bin\mysql.exe -uUSER -p"12345678" test -e "select * from member where name='%name:~0,-1%'" 


%name% 는 name 변수 내용을 출력하는 것이고,

%name:~0,-1% 하면 뒤에 한자리 제외하고 출력하는 것이다.

반응형

댓글()

배치파일에서 문자열 자르기 (부분 추출)

윈도우즈/OS 일반|2020. 6. 9. 07:41
반응형

배치스크립트 내에서는 변수 사용이 가장 빈번한데요,
아래는 변수를 이용해 문자열을 변경하거나 원하는 부분만 추출하는 예시 입니다.

set var=0123456789      // var 변수 "0123456789" 로 초기화
echo %var%              // var 변수 출력
echo %var:123=abc%      // var 변수의 "123" 을 "abc" 로 바꿔 출력
echo %var:123=%         // var 변수의 "123" 을 지워서 출력
echo %var:~0%           // var 변수의 첫번째 부터 출력
echo %var:~-5%          // var 변수의 맨뒤에서 부터 5개 출력
echo %var:~0,2%         // var 변수의 0번째 부터 2개 출력
echo %var:~0,-2%        // var 변수의 0번째 부터 출력하는데 맨뒤 2개 빼고 출력
echo %var:~-2,3%        // var 변수의 맨뒤 2번째 부터 3개 출력
echo %var:~-2,-3%       // var 변수의 맨뒤 2번째 부터 3개 빼고 출력
set var=                // var 변수 지우기


[출처] http://egloos.zum.com/appleiii/v/5805857

반응형

댓글()

[배치파일][번역] 특수문자 처리 방법

윈도우즈/OS 일반|2020. 6. 8. 16:43
반응형


특수 문자 처리 방법
처리한 특수문자처리 방법

참고사항

%%%

큰따옴표 안의 문자열에서는 꼭 필요하지 않을 수 있습니다. 시도해 보세요.

^^^

큰따옴표 안의 문자열에서는 꼭 필요하지 않을 수 있습니다. 하지만 오류는 없습니다.

&^&
<^<
>^>
|^|
'^'

backq 이 사용되지 않는 경우 FOR /F "subject" (괄호 사이의 것) 인 경우에만 사용합니다

`^`backq 이 사용되는 경우 FOR /F "subject" (괄호 사이의 것) 인 경우에만 사용합니다
,^,

큰따옴표 처리된 문자열이라 해도  FOR /F "subject" (괄호 사이의 것) 인 경우에만 사용합니다

;^;
=^=
(^(
)^)
!^^!

delayed variable expansion 이 활성화 된 경우에만 사용합니다.

"""

FIND  서치패턴의 안에서만 사용합니다

\\\

FINDSTR의 regex 패턴인 경우에만 사용합니다.

[\[
]\]
"\"
.\.
*\*
?\?



[출처] https://contain.tistory.com/entry/%EB%B0%B0%EC%B9%98%ED%8C%8C%EC%9D%BC%EB%B2%88%EC%97%AD%ED%8A%B9%EC%88%98%EB%AC%B8%EC%9E%90-%EC%B2%98%EB%A6%AC-%EB%B0%A9%EB%B2%95



반응형

댓글()

cmd 에서 웹서버로 데이터 전송시 한글깨짐 (cp949 > utf-8)

윈도우즈/OS 일반|2020. 6. 7. 19:51
반응형

[상황]

윈도우에서 MySQL (UTF-8) 을 이용하는데 아래와 같은 증상이 발견 되었다.

 

(명령프롬프트에서)

MySQL 명령으로 쿼리시 한글 잘 보임, INSERT, SELECT 등의 작업이 잘 됨.

하지만, 쿼리 결과를 파일로 저장하거나 ( > result.txt) 변수에 결과를 담으면 한글이 깨져보인다.

 

chcp 명령으로 확인하니 euc-kr 의 확장판인 cp 949 이며, chcp 65001 명령으로 명령프롬프트를 UTF-8 로 바꾸니 결과는 잘 저장되지만, 또 다른 한글이 쓰여진 파일은 반대로 깨져보인다.

 

그때는 chcp 명령을 통해 적절히 언어셋 환경을 바꿔가면서 작업하면 된다.

그리고 웹서버로의 데이터 전송은 curl 을 사용한다면, get 방식 보다는 post 방식으로 전송해야 깨지지 않을 것이다.

 

# send.bat

@echo off
 
:: 먼저 DB 에서 한글 데이터 가져올때는 utf-8 로 가져오고
chcp 65001
FOR /F "tokens=* USEBACKQ" %%F IN (`c:\mysql\bin\mysql.exe -usysdocu -p"12345678" testdb -N -e "select name from members where id='12'"`) DO ( SET var=%%F )
 
:: 파일에서 한글 데이터 가져올때는 949 로 가져온다.
chcp 949
set /p area=<C:\area.txt
 
:: 그러면 둘다 한글이 잘 표기된다.
curl -d "name=%var%" -d "area=%area%"  http://sysdocu.tistory.com/test.php

 

반응형

댓글()

배치파일 실행시 명령 프롬프트 창 보이지 않게 하기

윈도우즈/OS 일반|2020. 6. 7. 09:11
반응형

vbs 파일을 하나 만들고, 그 안에서 실행할 명령과 속성을 입력합니다.

그리고 생성한 run.vbs 를 대신해서 실행하면 됩니다.

 

run.vbs

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "c:\another.bat" & Chr(34),0
Set WshShell = Nothing

 

* 명령프롬프트에서 vbs 로 인자값 넘기고, 다시 인자값을 배치파일로 넘길때

c:\> run.vbs sys docu

Dim Arg, var1, var2
Set Arg = WScript.arguments
var1 = Arg(0)
var2 = Arg(1)


Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & ["C:\another.bat var1 var2"] & Chr(34), 0
Set WshShell = Nothing



 

 

반응형

댓글()

명령 프롬프트에서 alert 메세지 띄우기

윈도우즈/OS 일반|2020. 5. 29. 16:08
반응형

명령 프롬프트를 통해 팝업과 같은 간단한 메세지 출력이 가능합니다.

아래 예제를 사용해 봅니다.


c:\> msg %username% 메세지를 띄우는 예제 입니다.




반응형

댓글()

batch 배치 파일을 exe 실행 파일로 변환하기 (윈도우즈 기본 기능 : iexpress.exe) - gui, cli 둘다 지원

윈도우즈/OS 일반|2020. 5. 29. 15:30
반응형

윈도우즈의 iexpress.exe 파일을 이용하면 배치 파일을 exe 실행 파일로 변환 시킬 수 있습니다.

파일을 찾아 더블클릭하여 GUI 환경에서 셋팅도 가능하며,

아래와 같이 convert.bat 파일을 만들어 cmd 화면에서 cli 명령으로 변환도 가능합니다.


본래는 패키지 만드는 도구이지만 이렇게 하나의 배치파일도 exe 파일로 변환이 가능합니다.

여기에서는 command line 에서 변환하는 방법을 안내 드립니다.


변환 도구를 아래와 같이 작성합니다.


1. 명령 프롬프트에서 사용시


convert.bat


;@echo off

; rem https://github.com/npocmaka/batch.scripts/edit/master/hybrids/iexpress/bat2exeIEXP.bat

;if "%~2" equ "" (

; echo usage: %~nx0 batFile.bat target.Exe

;)

;set "target.exe=%__cd__%%~2"

;set "batch_file=%~f1"

;set "bat_name=%~nx1"

;set "bat_dir=%~dp1"


;copy /y "%~f0" "%temp%\2exe.sed" >nul


;(echo()>>"%temp%\2exe.sed"

;(echo(AppLaunched=cmd.exe /c "%bat_name%")>>"%temp%\2exe.sed"

;(echo(TargetName=%target.exe%)>>"%temp%\2exe.sed"

;(echo(FILE0="%bat_name%")>>"%temp%\2exe.sed"

;(echo([SourceFiles])>>"%temp%\2exe.sed"

;(echo(SourceFiles0=%bat_dir%)>>"%temp%\2exe.sed"

;(echo([SourceFiles0])>>"%temp%\2exe.sed"

;(echo(%%FILE0%%=)>>"%temp%\2exe.sed"



;iexpress /n /q /m %temp%\2exe.sed


;del /q /f "%temp%\2exe.sed"

;exit /b 0


[Version]

Class=IEXPRESS

SEDVersion=3

[Options]

PackagePurpose=InstallApp

ShowInstallProgramWindow=0

HideExtractAnimation=1

UseLongFileName=1

InsideCompressed=0

CAB_FixedSize=0

CAB_ResvCodeSigning=0

RebootMode=N

InstallPrompt=%InstallPrompt%

DisplayLicense=%DisplayLicense%

FinishMessage=%FinishMessage%

TargetName=%TargetName%

FriendlyName=%FriendlyName%

AppLaunched=%AppLaunched%

PostInstallCmd=%PostInstallCmd%

AdminQuietInstCmd=%AdminQuietInstCmd%

UserQuietInstCmd=%UserQuietInstCmd%

SourceFiles=SourceFiles


[Strings]

InstallPrompt=

DisplayLicense=

FinishMessage=

FriendlyName=-

PostInstallCmd=<None>

AdminQuietInstCmd=

UserQuietInstCmd= 


그리고 변환이 필요한 bat 파일이 있다면 (예: run.bat) 아래 예시와 같이 명령을 수행하면 됩니다.


c:\> convert.bat run.bat run.exe



[출처] https://stackoverflow.com/questions/28174386/how-can-a-bat-file-be-converted-to-exe-without-third-party-tools



2. GUI 환경에서 사용시


순차적으로 실행 합니다.


시작 > 실행 > iexpress 입력 후 엔터


Create new Self Extraction Directive file.


Extract files and run an installation command


타이틀 이름 적기


No prompt


Do not display a license


Package file

> 압축할 파일을 찾기 (bat 파일)


Install Program to Launch

> exe 실행시 압축 해제 후 사용할 기본 명령어

> setup.bat 파일을 변환한다면 아래와 같이 입력

> cmd.exe /c "setup.bat"


Default (recommended)


No message


Package name and Options

> (exe 변환 파일 저장 위치) 찾아보기 누른 뒤 경로와 생성할 exe 파일명 지정


No restart


Save Self Extraction Directive (SED) file  (중요치않다)


Create package


끝.


* 참고로 파일명은 setup.bat > setup.exe 으로 했을때 잘 실행되지만

   이상하게 다른 이름을 사용하면 실행이 되지 않는다.

   (예: applypatch.bat > applypatch.exe)


* exe 로 실행시 %~dp0 이나 %~s0 의 기본 변수는 사용되지 못함에 주의

반응형

댓글()