Microsoft Windows Script Host (WSH) là một công nghệ tự động của hệ điều hành Microsoft Windows cung cấp các kịch bản thực thi các file batch, nhưng với nhiều tính năng được hỗ trợ. Ban đầu nó được gọi là "Windows Scripting Host", nhưng đã được đổi tên cho bản phát hành thứ hai.
Nó là ngôn ngữ độc lập ở chỗ nó có thể làm cho việc sử dụng các công cụ ngôn ngữ Active Scripting khác nhau. Theo mặc định, nó diễn giải và chạy văn bản thuần JScript (các file.JS và.JSE) và VBScript (các file.VBS và.VBE).
Người dùng có thể cài đặt công cụ scripts khác nhau để kích hoạt các script trong các ngôn ngữ khác, ví dụ như PerlScript. Ngôn ngữ độc lập với phần mở rộng WSF cũng có thể được dùng. Ưu điểm của Windows Script File (WSF) là nó cho phép người dùng sử dụng một sự kết hợp của ngôn ngữ scripts trong một tập tin duy nhất.
WSH engines hỗ trợ thi hành cho REXX, BASIC, Perl, Ruby, Tcl, PHP, JavaScript, Delphi, Python, XSLT, và một số ngôn ngữ khác.
Windows Script Host phân phối và cài đặt mặc định trên Windows 98 và phiên bản mới nhất của Windows. Nó cũng được cài đặt nếu Internet Explorer 5 (hoặc bản sau) được cài đặt. Bắt đầu từ Windows 2000, Windows Script Host xuất hiện để sử dụng với scripts đăng nhập của người dùng.
Windows Script Host có thể được sử dụng cho nhiều mục đích, Bao gồm các scripts đăng nhập, quản lý và tự động hóa nói chung. Microsoft mô tả nó như là một công cụ quản trị.[1] WSH cung cấp một môi trường để chạy các scripts – Nó sẽ gọi script engine thích hợp và cung cấp một tập hợp các dịch vụ, đối tượng để làm việc với các script.[1] Các script có thể được chạy trong chế độ GUI (WScript.exe) hoặc chế độ dòng lệnh (CScript.exe) cung cấp sự linh hoạt cho người sử dụng với các script tương tác hoặc không tương tác.[2] WSH thực hiện một mô hình đối tượng đưa ra một tập hợp các giao diện Component Object Model (COM).[3]
Ví dụ đầu tiên là rất đơn giản; nó cho thấy một số VBScript sử dụng các đối tượng gốc COM WSH "WScript" để hiển thị một tin nhắn với một nút 'OK'. Sau khi tung ra kịch bản này, các công cụ CScript hoặc WScript sẽ được gọi và môi trường thời gian chạy được cung cấp.
Nội dung của một file hello0.vbs
WScript.Echo "Hello world"
WScript.Quit
Lập trình WSH cũng có thể sử dụng ngôn ngữ JScript.
Nội dung file hello1.js
WSH.Echo("Hello world");
WSH.Quit();
Hoặc, code có thể được trộn lẫn trong một file SWF, chẳng hạn như VBScript và JScript, hoặc bất kỳ khác:
Nội dung của một tập tin hello2.wsf
<job>
<script language="VBScript">
MsgBox "hello world (from vb)"
</script>
<script language="JScript">
WSH.echo("hello world (from js)");
</script>
</job>
Các ứng dụng và tiến trình trong Windows có thể được tự động bằng cách sử dụng một script trong Windows Script Host. Virus và malware có thể được viết để khai thác khả năng này. Vì vậy,đã có một số đề nghị vô hiệu hóa nó vì lý do an ninh.[4] Ngoài ra, các chương trình chống virus có thể cung cấp tính năng kiểm soát.vbs và các script khác chạy trong môi trường WSH. Từ phiên bản 5.6 of WSH, các script có thể là Chữ ký số được lập trình bằng cách sử dụng các đối tượng Scripting.Signer trong một script của chính nó, cung cấp mộtchứng thực khóa công khai là có mặt trên hệ thống. Ngoài ra, các công cụ signcode từ SDK Platform, đã được mở rộng để hỗ trợ các định dạng tập WSH, có thể được sử dụng tại các dòng lệnh.[5]
Bằng cách sử dụng Software Restriction Policies được giới thiệu với Windows XP, một hệ thống có thể được cấu hình để thực thi chỉ là những script mà đã có chữ ký số, do đó ngăn ngừa việc thi hành của các kịch bản không đáng tin cậy.[6]
Tên | Ngôn ngữ | Phần mở rộng | Availability | Produced By | Tình trạng | Thời gian | Ghi chú |
---|---|---|---|---|---|---|---|
VBScript | Microsoft Visual Basic, Scripting Edition | .vbs | Cài đặt mặc định | Microsoft | Cài đặt mặc định | 1999 | |
JScript | Microsoft JScript | .js | Cài đặt mặc định | Microsoft | Cài đặt mặc định | 1999 | |
PerlScript | Perl | .pls | với ActiveState Perl | ActiveState | Mã nguồn mở | 1999 | |
ooRexxScript | REXX | .rxs | với Open Object Rexx | Open Object Rexx team | Mã nguồn mở | ||
PythonScript | Python | .pys | SourceForge | The Pywin32 project | Mã nguồn mở | ||
TclScript | Tcl/Tk | .tcls | SourceForge | ActiveState hoặc bên thứ 3 | Mã nguồn mở | ||
ActivePHPScript | PHP | .phps | với PHP | PHP team | Mã nguồn mở | ||
RubyScript | Ruby | .rbs | with Ruby | Ruby team | Mã nguồn mở | ||
Object REXX engine | Object REXX | với IBM Object REXX | IBM | Thương mại | 2002 | ||
Delphi scripting engine | Delphi | Trong một số bản phân phối hoặc gói mã nguồn Delphi | Thương mại | 2003 |
Windows version | Shipped with WSH version | Last redistributable version |
---|---|---|
Windows 95 | None (separate redistributable) | 5.6 |
Windows NT 4.0 | None (separate redistributable) | 5.6 |
Windows 98 | 1.0 | 5.6 |
Windows 2000 | 2.0 (cũng được gọi là WSH 5.1) | 5.7 |
Windows Me | 2.0 (cũng được gọi là WSH 5.1) | 5.6 |
Windows XP, Windows Server 2003 | 5.6 | 5.7 |
Windows Vista, Windows Server 2008, Windows XP SP3 | 5.7 | Không áp dụng |
Windows 7, Windows Server 2008 R2 | 5.8 | Không áp dụng |
Bản phân phối của WSH 5,6 có thể được cài đặt trên Windows 95/98/Me và Windows NT 4.0/2000. WSH 5,7 là miễn phí cho Windows 2000, Windows XP và Windows Server 2003. Gần đây, các phiên bản phân phối chung cho các hệ thống điều hành cũ hơn (Windows 9x và Windows NT 4.0) không còn có sẵn từ Microsoft Download Center.
Với Windows XP Service Pack 3, bản phát hành 5,7 là không cần thiết vì nó được bao gồm.