맨위로가기

윈도우 스크립트 호스트

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

윈도우 스크립트 호스트(WSH)는 윈도우 운영체제에서 배치 파일의 한계를 보완하기 위해 개발된 스크립트 실행 환경이다. VBScript와 JScript를 기본적으로 지원하며, Active Scripting 기술을 통해 다양한 스크립트 언어를 사용할 수 있도록 확장되었다. WSH는 윈도우 응용 프로그램 및 프로세스 자동화에 활용되었지만, 보안 문제와 문서 부족으로 인해 점차 사용이 줄어들었으며, 마이크로소프트는 이를 대체하기 위해 Windows PowerShell을 출시했다. 현재 WSH는 새로운 기능 추가 없이 유지보수 단계에 있다.

더 읽어볼만한 페이지

  • 인터넷 익스플로러 - 인터넷 익스플로러 10
    인터넷 익스플로러 10은 마이크로소프트에서 개발한 웹 브라우저로, 웹 표준 지원 강화, 터치스크린 환경에 최적화된 메트로 스타일 버전 도입, 플립 어헤드 기능과 Adobe Flash Player 통합 등의 새로운 기능을 제공했지만 현재는 지원이 종료되었다.
  • 인터넷 익스플로러 - VB스크립트
    VB스크립트는 마이크로소프트에서 개발한 스크립트 언어로, 인터넷 익스플로러의 클라이언트 스크립트 언어 및 액티브 서버 페이지의 표준 언어로 사용되었으나, 윈도우 클라이언트 지원 중단 발표로 향후 윈도우 릴리스에서 제거될 예정이다.
  • 윈도우 관리 - 블루스크린
    블루스크린은 윈도우 운영체제에서 발생하는 치명적인 오류로, 컴퓨터 작동을 멈추고 파란색 화면에 오류 메시지를 표시하며, 하드웨어 또는 소프트웨어 문제로 인해 발생하고, 시스템 복원, 안전 모드 부팅 등의 방법으로 대처한다.
  • 윈도우 관리 - 파워셸
    파워셸은 마이크로소프트에서 개발한 작업 자동화 솔루션으로, 명령줄 셸과 스크립트 언어의 기능을 결합하여 윈도우 시스템 관리를 위해 설계되었으며, .NET 프레임워크 기반의 객체 지향적 특징을 갖고 다양한 플랫폼에서 자동화 스크립트 작성 및 실행, 시스템 구성 관리 등에 활용된다.
  • 윈도우 구성 요소 - 인터넷 익스플로러
    마이크로소프트가 개발한 웹 브라우저인 인터넷 익스플로러는 윈도우 운영 체제와의 통합으로 높은 시장 점유율을 유지했으나, 웹 표준 문제와 보안 취약점으로 비판받으며 2015년 엣지에 자리를 내주고 2022년 지원이 종료되었지만, 엣지의 IE 모드로 레거시 호환성을 유지하고 있다.
  • 윈도우 구성 요소 - 원격 데스크톱 서비스
    원격 데스크톱 서비스(RDS)는 네트워크를 통해 원격으로 컴퓨터의 데스크톱 환경에 접근할 수 있게 해주는 기술이며, 클라이언트 소프트웨어, 서버 구성 요소, 다양한 역할을 수행하는 구성 요소로 구성된다.
윈도우 스크립트 호스트 - [IT 관련 정보]에 관한 문서
기본 정보
다른 이름윈도우 스크립팅 호스트 (Windows Scripting Host)
개발자마이크로소프트
최신 버전5.812
운영 체제마이크로소프트 윈도우
장르자동화 기술
웹사이트Windows Script Host overview

2. 역사적 배경

원래 컴퓨터는 복잡하지만 기계적인 처리가 가능한 작업을 인간 대신 수행하는 존재였다. Windows에서는 MS-DOS 시대부터 배치 파일이 구현되어 일괄 처리를 실행할 수 있었다. 그러나 배치 파일 시스템은 단순한 작업만을 상정하고 설계되었기 때문에 복잡한 기능을 추가하는 데 어려움이 있었다. 그 때문에, 보다 쉽게 복잡한 스크립트를 기술할 수 있는 시스템이 요구되었다.

2. 1. 개발 과정

MS-DOS 시대부터 Windows에서는 일괄 처리를 위해 배치 파일을 사용해왔다. 그러나 배치 파일은 단순 작업용으로 설계되어 복잡한 기능을 추가하기 어려웠고, 초보자가 사용하기 힘들다는 단점이 있었다. 또한, 기능의 한계로 복잡한 처리를 위해서는 여러 배치 파일을 만들어 연동해야 했다.

이러한 문제를 해결하고자 더 쉽고 유연한 스크립트 작성이 가능한 시스템이 요구되었고, 그 결과 윈도우 스크립트 호스트(WSH)가 개발되었다. WSH는 VBScript와 JScript 같은 스크립트 언어를 지원하여 배치 파일보다 유연한 구문을 제공하며, 초보자도 쉽게 스크립트를 작성하고 이해할 수 있게 되었다.[1]

2. 2. 현재와 미래

WSH는 어느 정도 보급에 성공했지만, 스크립트를 이용한 바이러스나 취약점 공격 등이 증가하면서 보안 문제가 제기되기도 했다.[24] 마이크로소프트는 이러한 상황을 타개하기 위해 Windows PowerShell을 출시했으며, WSH는 Windows PowerShell의 등장으로 그 역할을 다했다고 할 수 있다.

3. 기능 및 활용

윈도우 스크립트 호스트(WSH)는 로그온 스크립트, 관리, 일반 자동화 등 다양한 목적으로 사용될 수 있으며, 마이크로소프트는 WSH를 "관리 도구"로 묘사한다.[5] WSH는 스크립트 실행 환경을 제공하고, 적절한 스크립트 엔진을 호출하며, 스크립트 작동에 필요한 서비스와 객체를 제공한다.[5]

WSH는 COM 인터페이스를 통해 COM 및 기타 노출된 객체를 가진 모든 윈도우 애플리케이션을 자동화하고 통신할 수 있다.[7] 예를 들어, PerlScript를 사용하여 마이크로소프트 액세스(Microsoft Access)를 쿼리하거나, ooRexxScript를 사용하여 마이크로소프트 엑셀(Microsoft Excel), 마이크로소프트 워드(Microsoft Word) 등에서 Rexx 매크로를 생성할 수 있다.

WSH 스크립트는 GUI 모드(''WScript''.exe) 또는 명령줄 모드(''CScript''.exe)에서 실행될 수 있으며, 윈도우 관리 계측(Windows Management Instrumentation) 또한 이러한 방식으로 스크립트를 사용할 수 있다.[6]

WSH는 Active Scripting 기술을 통해 사용자가 원하는 언어를 설치하여 사용할 수 있도록 다양한 스크립트 언어를 지원한다. 기본적으로 VBScript와 JScript를 사용할 수 있으며, Perl 등 다른 스크립트 언어용 실행 환경(엔진)을 설치하여 처리할 수 있다.

또한, COM을 통해 레지스트리 조작이나 WMI에 접근할 수 있는 등 강력한 기능을 가지고 있어, 복잡한 처리를 기술할 수 있다.

3. 1. 지원 스크립트 언어

윈도우 스크립트 호스트(WSH)는 기본적으로 VBScript와 JScript를 지원한다.[5] Active Scripting을 통해 Perl, Python, Rexx 등 다양한 스크립트 언어를 추가로 설치하여 사용할 수 있다.[9][10][11] 텍스트 편집기로 편집할 수 없는 인코딩된 스크립트(.vbe, .jse 등)를 생성하고 실행할 수도 있다.

다음은 WSH에서 지원하는 스크립트 언어 엔진의 일부이다.

엔진 이름구현된 스크립팅 언어파일 확장자제작자비고
VBScriptVBScript.vbs, .vbe마이크로소프트기본 설치
JScriptJScript.js, .jse마이크로소프트기본 설치
PerlScriptPerl.plsActiveState
PythonScriptPython.pysThe Pywin32 project
RexxScriptRexx.rxs, .rx, .rex여러 회사
ooRexxScriptOpen Object REXX.rxsOpen Object Rexx 팀
RubyScriptRuby.rbsRuby 팀
XLNTScriptXLNT.xcsAdvanced Systems Concepts, Inc.DCL 기반
LuaScriptLua.luaLua 조직



이 외에도 다양한 스크립트 언어 엔진이 존재하며, WSH를 통해 사용할 수 있다.

3. 2. 응용 분야

WSH는 다양한 윈도우 서버 소프트웨어 패키지와 함께 CGI 스크립팅을 제공하는 데 사용될 수 있다.[5] 예를 들어, PerlScript를 사용하여 다양한 ODBC 엔진 및 SQL을 포함한 다양한 방법으로 마이크로소프트 액세스(Microsoft Access)를 쿼리할 수 있다.[7]

마이크로소프트 오피스(Microsoft Office)의 VBA 기능, 오픈 오피스(파이썬 및 기타 설치 가능한 매크로 언어 포함) 및 코렐 워드퍼펙트 오피스(Corel WordPerfect Office)는 WSH 엔진과 별개이지만, WSH를 통해 자동화 및 통신이 가능하다.[8] 아웃룩 97은 VBA 대신 VBScript를 매크로 언어로 사용한다.[8]

ActiveState PythonScript 형태의 파이썬은 SecureCRT의 데이터를 자동화하고 쿼리하는 데 사용될 수 있으며, PerlScript, ooRexxScript, PHPScript, RubyScript, LuaScript, XLNT 등 설치된 엔진이 있는 다른 언어와 마찬가지로 사용할 수 있다.[9][10] SecureCRT 터미널 에뮬레이터, SecureFX FTP 클라이언트 및 Van Dyke의 관련 클라이언트 및 서버 프로그램은 현재 버전에서 WSH를 통해 자동화되므로 설치된 엔진이 있는 모든 언어를 사용할 수 있다.

4NT / 테이크 커맨드의 프로그래밍 기능은 WSH 엔진을 사용한다.[12] ZOC 터미널 에뮬레이터는 프로그램과 함께 제공되는 외부 인터프리터와 사용자가 지정한 대체 Rexx 인터프리터를 통해 Rexx로 프로그래밍할 수 있는 기능을 얻는다.[13][14]

VBScript는 마이크로소프트 아웃룩 97의 매크로 언어이다. 오픈 오피스는 Visual Basic, Python 및 여러 다른 언어를 매크로 언어로 사용하며 다른 언어를 추가할 수 있다. 로터스 스크립트(LotusScript)는 로터스 노트(Lotus Notes) 및 로터스 스마트스위트(Lotus SmartSuite)에 사용된다.

윈도우에서 설치된 모든 스크립팅 언어는 PerlScript, PythonScript, VBScript 및 사용 가능한 다른 엔진을 통해 외부에서 접근할 수 있으며, 데이터베이스 및 스프레드시트, 워드 프로세서, 터미널 에뮬레이터, 명령 셸 등과 같은 다른 도구에 접근하는 데 사용할 수 있다. 이는 WSH를 통해 수행할 수 있으므로 설치된 엔진이 있으면 모든 언어를 사용할 수 있다.

4. 보안 문제

윈도우 스크립트 호스트(WSH)를 사용하여 윈도우 응용 프로그램과 프로세스를 자동화할 수 있는 기능은 바이러스 및 악성 코드에 악용될 수 있다. 따라서 일부에서는 보안상의 이유로 이 기능을 비활성화할 것을 제안하기도 한다.[20] 또는, 백신 프로그램은 WSH 환경에서 실행되는 .vbs 및 기타 스크립트를 제어하는 기능을 제공할 수 있다.

WSH 버전 5.6부터는 스크립트 자체 내에서 ''Scripting.Signer'' 객체를 사용하여 프로그래밍 방식으로 스크립트를 디지털 서명할 수 있다. 단, 시스템에 유효한 공개 키 인증서가 있어야 한다.[21]

윈도우 XP에 도입된 ''소프트웨어 제한 정책''을 사용하면 신뢰할 수 있는 위치에 저장되거나, 알려진 MD5 해시를 갖거나, 신뢰할 수 있는 게시자가 디지털 서명한 스크립트만 실행하도록 시스템을 구성할 수 있으며, 이를 통해 신뢰할 수 없는 스크립트의 실행을 방지할 수 있다.[22]

5. 버전 역사

윈도우 버전에 따라 포함된 WSH 버전이 다르다. 예를 들어 윈도우 98에는 WSH 1.0 버전이, 윈도우 10에는 5.812 버전이 포함되었다. WSH 5.6은 윈도우 95, 윈도우 98, 윈도우 Me, 윈도우 NT 4.0, 윈도우 2000 등에 설치할 수 있으며, WSH 5.7은 윈도우 2000, 윈도우 XP, 윈도우 서버 2003에서 다운로드할 수 있다. 그러나 2015년 3월부터 구형 운영 체제(윈도우 9x, 윈도우 NT 4.0)용 재배포 버전은 마이크로소프트 다운로드 센터에서 더 이상 제공되지 않는다.

윈도우 XP SP3 이후에는 릴리스 5.7이 마이크로소프트에서 제공하는 유일한 버전이며, 이후 업데이트는 새로운 윈도우 버전에 포함되었다.

5. 1. 상세 버전 정보

윈도우 버전WSH 버전에 포함마지막 배포 버전
윈도우 95없음 (별도 배포)5.6
윈도우 NT 4.0없음 (별도 배포)5.6
윈도우 981.05.6
윈도우 20002.0 (WSH 5.1)5.7
윈도우 Me2.0 (WSH 5.1)5.6
윈도우 XP / 윈도우 서버 20035.65.7
윈도우 비스타 / 윈도우 서버 2008 / 윈도우 XP SP35.7해당 없음
윈도우 7 / 윈도우 서버 2008 R25.8해당 없음
윈도우 8 / 윈도우 서버 20125.8해당 없음
윈도우 10, 윈도우 서버 20165.812해당 없음



윈도우 버전WSH 버전과 함께 제공됨마지막 재배포 가능 버전
윈도우 95없음 (별도 재배포 가능)5.6
윈도우 NT 4.0없음 (별도 재배포 가능)5.6
윈도우 CE 3.01.0 (설치 디스크에서 선택적 설치)2.0
윈도우 981.05.6
윈도우 98 세컨드 에디션1.05.6
윈도우 20002.0 (WSH 5.1이라고도 함)5.7
윈도우 2000 SP3, SP4 및 SP55.65.7
윈도우 Me2.0 (WSH 5.1이라고도 함)5.6
윈도우 XP5.65.7
윈도우 XP SP35.7해당 없음
윈도우 서버 20035.65.7
윈도우 비스타5.7해당 없음
윈도우 서버 20085.7해당 없음
윈도우 75.8해당 없음
윈도우 서버 2008 R25.8해당 없음
윈도우 85.8해당 없음
윈도우 서버 20125.8해당 없음
윈도우 105.812해당 없음
윈도우 서버 20165.812해당 없음



WSH 버전 5.6의 재배포 가능 버전은 윈도우 95, 98, Me 및 윈도우 NT 4.0, 2000에 설치할 수 있다. WSH 5.7은 윈도우 2000, 윈도우 XP 및 윈도우 서버 2003용으로 다운로드할 수 있다. 2015년 3월 기준으로, 이전 운영 체제(윈도우 9x 및 윈도우 NT 4.0)용 재배포 가능 버전은 더 이상 마이크로소프트 다운로드 센터에서 제공되지 않는다.

윈도우 XP 서비스 팩 3부터 릴리스 5.7이 마이크로소프트에서 제공하는 유일한 버전이며, 이후 더 새로운 수정 사항은 새로운 버전의 윈도우에 포함되었다.

6. 예제

vb

WScript.Echo "Hello World"

WScript.Quit

```

위 예제는 루트 WSH COM 객체 "WScript"를 사용하여 '확인' 버튼이 있는 메시지를 표시하는 간단한 VBScript 코드이다. 이 스크립트를 실행하면 CScript 또는 WScript 엔진이 호출되고 런타임 환경이 제공된다.[1]

WSH 프로그래밍은 JScript 언어를 사용할 수도 있으며, VBScript 및 JScript 또는 다른 모든 언어를 하나의 WSF 파일에 혼합할 수 있다.

6. 1. VBScript

다음은 매우 간단한 예제이다. 이 예제는 루트 WSH COM 객체 "WScript"를 사용하여 '확인' 버튼이 있는 메시지를 표시하는 몇 가지 VBScript를 보여준다. 이 스크립트를 실행하면 CScript 또는 WScript 엔진이 호출되고 런타임 환경이 제공된다.[1]

파일 `hello0.vbs`의 내용

```vbscript

WScript.Echo "Hello world"

WScript.Quit

6. 2. JScript

WSH 프로그래밍에서는 JScript 언어를 사용할 수 있다.

다음은 `hello1.js` 파일의 내용이다.



WSH.Echo("Hello world");

WSH.Quit();



VBScript와 JScript를 비롯한 여러 언어를 WSF 파일 하나에 섞어 코드를 작성할 수도 있다.

다음은 `hello2.wsf` 파일의 내용이다.












6. 3. Windows Script File (WSF)

다음은 매우 간단한 예제이다. 이 예제는 루트 WSH COM 객체 "WScript"를 사용하여 '확인' 버튼이 있는 메시지를 표시하는 몇 가지 VBScript를 보여준다. 이 스크립트를 실행하면 CScript 또는 WScript 엔진이 호출되고 런타임 환경이 제공된다.

파일 hello0.vbs의 내용



WScript.Echo "Hello world"

WScript.Quit



WSH 프로그래밍은 JScript 언어를 사용할 수도 있다.

파일 hello1.js의 내용



WSH.Echo("Hello world");

WSH.Quit();



VBScript 및 JScript나 다른 모든 언어와 같이 코드를 하나의 WSF 파일에 혼합할 수 있다.

파일 hello2.wsf의 내용












참조

[1] 문서 ?MSDN, "Windows Scripting Host" and "VBScript"
[2] 문서 MSDN April 2000 edition, "Windows Scripting Host"
[3] 서적 The VBScript Bible 1999
[4] 문서 Windows 2000 Server Resource Kit (documentation
[5] 웹사이트 What Is WSH? http://msdn.microsof[...] 2011-10-24
[6] 웹사이트 Windows Script Host Basics http://msdn.microsof[...] 2011-10-24
[7] 웹사이트 Windows Script Host Object Model http://msdn.microsof[...] 2011-10-24
[8] 문서 MSDN "VBA"
[9] 문서 User's Manual, Paint Shop Pro 8
[10] 문서 Paint Shop Pro 8 help, "Automation"
[11] 문서 main help file, Passport for Windows
[12] 문서 Take Command documentation 18.00 documentation hard copy and Help file
[13] 문서 Zoc v 6.0 help
[14] 문서 Zoc 5.0 printed manual
[15] 문서 MSDN documentation
[16] 서적 Windows Office 97 & 2000 Bibles Wiley
[17] 문서 Take Command version 18.00 documentation
[18] 문서 JP Software Take Command-4NT-4Dos-4OS/2 site, bulletin board
[19] 문서 Take Command 18.00 help
[20] 웹사이트 Norman - Antivirus & Security Software for Home & Business http://www.norman.co[...] 2018-04-30
[21] 웹사이트 Providing a Secure eXPerience http://msdn.microsof[...] 2006-06-30
[22] 웹인용 Windows Script Host 5.6 Boasts Windows XP Integration, Security, New Object Model http://msdn.microsof[...] 2008-02-18
[23] 문서 CasioCalc.com, msgs of 15.09.2016
[24] 웹사이트 Notes/Domino 4 and 5 Forum : RE: Suggestion: Make LotusScript a script engine for Windows Scripting Host http://www-10.lotus.[...]
[25] 문서 ASCI html help file
[26] 문서 ASCI site



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com