WSH szkriptek

WSH szkripteket. Példák.

Ez meg fogja vitatni a különböző példákat Windows Script Host (WSH) szkripteket.

Környezetvédelmi tulajdonság

Kap egy objektum, amely lehetővé teszi, hogy a környezeti változók

var f1 = WScript.CreateObject ( "WScript.Shell"); var f2 = f1.Environment ( "Process"); Wscript.echo (f2 ( "windir"));

Az ingatlan SpecialFolders.

Ho- külön mappába.
Talán, hogy az utat a következő mappákat:
AllUsersDesktop, AllUsersStartMenu, AllUsersPrograms, AllUsersStartup, Asztal, Kedvencek, Fonts MyDocuments, NetHood, PrintHood, Programok, Friss, SendTo, StartMenu, Indítás, sablonok.
Használati példa:

var f1 = WScript.CreateObject ( "WScript.Shell"); var f3 = f1.SpecialFolders ( "AllUsersDesktop"); Wscript.echo (f3);


Példa WSH script fájlok másolása.


A következő példa létrehoz egy parancsikont az asztalon URL


WSH script lehet telepíteni egy új nyomtatót a Windows, kezdeményezi az az illesztőprogramok telepítése.

// JScript. var háló; net = new ActiveXObject ( "WScript.Network"); net.AddWindowsPrinterConnection ( "\\\\ ServerName \\ Nyomtatónév");


Ebben a példában a WSH script hozzárendeli a betűjelet a felhasználó hálózati meghajtó

// JScript. var háló; net = new ActiveXObject ( "WScript.Network"); net.MapNetworkDrive ( "I", "\\\\ COMPUTER2 \\ állami", "True");


A következő példában, úgy véljük, fontos gyakorlati feladat: választani eszközökkel windows mappát, és helyezzük a bat / cmd mappa nevét és elérési útvonalát.

FOR / F "usebackq delims =" %% i ( `cscript // nologo foldsel.js`) ne állítsa sfold = %% i ha meghatározott sfold (echo Mappa kiválasztása: [% sfold%].) Else (echo Nem kiválasztás mappa)


Ugyanez például felírható


Zárja be az összes Windows asztali windows

var f1 = WScript.CreateObject ( "Shell.Application"); f1.MinimizeAll ();


Nyissa ki az összes Windows asztali windows


Indítsa el a Windows Intéző megnyit egy mappát.

var f1 = WScript.CreateObject ( "Shell.Application"); f1.Explore ( "d: \\ 00tt");


Határozzuk meg a RAM

var f1 = WScript.CreateObject ( "Shell.Application"); Wscript.echo (f1.GetSystemInformation ( "PhysicalMemoryInstalled"));


Hívás ablak „Run”

var f1 = WScript.CreateObject ( "Shell.Application"); f1.FileRun ();


Calling ablakban állítsa le és indítsa újra a számítógépet

var f1 = WScript.CreateObject ( "Shell.Application"); f1.ShutdownWindows ();


Megnyitja a Hálózati kapcsolatok Control Panel

var f1 = WScript.CreateObject ( "Shell.Application"); f1.ControlPanelItem ( "ncpa.cpl parancsot");


Hívás Internet tulajdonságai ablakban

var f1 = WScript.CreateObject ( "Shell.Application"); // Internet tulajdonságai f1.ControlPanelItem ( "Inetcpl.cpl");


Megnyitja a Területi beállítások tulajdonságai

var f1 = WScript.CreateObject ( "Shell.Application"); // Területi beállítások tulajdonságai f1.ControlPanelItem ( "ntl.cpl");


Hívjon Hálózati tulajdonságok ablakban

var f1 = WScript.CreateObject ( "Shell.Application"); // Hálózat tulajdonságainál f1.ControlPanelItem ( "Netcpl.cpl");


Hívás ablakban jelszó tulajdonságok

var f1 = WScript.CreateObject ( "Shell.Application"); // jelszó tulajdonságok f1.ControlPanelItem ( "Password.cpl");


Megnyitja a rendszer tulajdonságait és az Új hardver hozzáadása varázsló

var f1 = WScript.CreateObject ( "Shell.Application"); // A rendszer tulajdonságai és Új hardver hozzáadása varázsló f1.ControlPanelItem ( „Sysdm.cpl”);


Megnyitja a Asztali témák

var f1 = WScript.CreateObject ( "Shell.Application"); // Asztali témák f1.ControlPanelItem ( "Themes.cpl");


Hívás dátum / idő tulajdonságai ablakban

var f1 = WScript.CreateObject ( "Shell.Application"); // Date / Time tulajdonságok f1.ControlPanelItem ( "timedate.cpl parancsot");


Hívása applet lehet előállítani közvetlenül Rundll32.exe. Akkor például a hívás dátum és idő beállításai ablak így néz ki:

WshHej = WScript.CreateObject ( "WScript.Shell"); WshShell.Run ( "Rundll32.exe shell32.dll, Control_RunDLL timedate.cpl parancsot");


Az oldalon a Rundll32 parancsok leírása megtalálható számos példát annak használatát. Ezért változik a fenti példában az utolsó sor, akkor kap az összes ezeket a funkciókat a WSH.
A következő példa megnyit egy böngészőablakot az oldalt.


Példa WSH script Windows Explorer ablakát hívó "PC Search"

var f1 = WScript.CreateObject ( "Shell.Application"); f1.FindComputer ();


A modális ablak az ablak címét, a gombok és a szöveg kérdés igen és nem. Ez is egy határidő, ami után az ablak kerül erőszakkal zárt (visszatérési kód -1).

var f1 = WScript.CreateObject ( "WScript.Shell"); var f3 = f1.Popup ( "Érted, mi forog kockán?", 80 "Biztonsági kérdés" 4 + 32); Wscript.echo (f3);


Fájl kiválasztása egy karmester

var objDialog = new ActiveXObject ( 'UserAccounts.CommonDialog'); objDialog.Filter = "WSH szkriptek (* .vbs, * .js) | * .vbs; * js | Minden fájl (*. *) | * * .."; objDialog.InitialDir = "c:"; var intEredmeny = objDialog.ShowOpen (); ha (intEredmeny == 0) wscript.quit (); mást wscript.echo (objDialog.FileName);


Határozzuk meg a Windows telepítési dátum


Egy hangot (sípolás) a hangszórót.

var WshHej = WScript.CreateObject ( "WScript.Shell"); WshShell.Run ( "% comspec% / c echo" + String.fromCharCode (7), 0, true);


vagy ugyanazt a VBS

Set WshHej = CreateObject ( "WScript.Shell") WshShell.Run "% comspec% / c echo" Chr (7), 0, True


A következő példában, WSH scriptet a shell (cmd) okozza a dir parancsot, és a további folyamatok a munkája eredményeiről. A nagyon példája talán nem annyira érdekes (bár ez a probléma az, hogy válassza ki a fájlokat egy mappába a maszk a dátum nem annyira triviális, hogy a script), de a lehetőség a stdin feldolgozása, stdout stderr és nyit a további kilátások.

var sh = new ActiveXObject ( 'WScript.Shell'); var ex = sh.Exec ( 'CMD / c dir / B / O: -D "C: \\ Windows \\ System32 \\ * sys."'); var stdout = []; var stderr = []; while (true) if (. ex.StdErr.AtEndOfStream) ha (ex.Status == 1) > Wscript.echo ( '\ nEXIT CODE: \ n' + ex.ExitCode); Wscript.echo ( '\ nSTDERR: \ n' + stderr.join ( '\ n')); Wscript.echo ( '\ nSTDOUT: \ n' + stdout.join ( '\ n')); Wscript.quit ();


Egy másik példa a WSH script dolgozni, és a stdin stdout-ra. Ezúttal a VBS.

Állítsa WshHej = CreateObject ( "WScript.Shell") Set WshExec = WshShell.Exec ( "nslookup") Set ágyazott = WshExec.StdIn InStream.WriteLine "help" InStream.WriteLine "exit" Set OutStream = WshExec.StdOut Str = vbNullString Bár nem OutStream.AtEndOfStream Str = Str Vágás (OutStream.ReadLine ()) vbCrLf Wend MsgBox Str


Egy másik példa WSH script azaz egy külső program paraméter, és feldolgozza a program kimenete:


Ha az előző példában egy másik parancsot, majd az orosz lokalizáció nehéz lehet annak a ténynek köszönhető, hogy a parancs kimenetére végezzük DOS kódolást. Ebben az esetben, ha szükséges, a kimeneti sort átkódolhatóak a WIN (1251) kódolás. Tesszük használja a funkciót írt VBS.


Néhány példa, hogy a Windows Script Host (WSH), hogy hozzon létre parancsikonokat.

var WshHej, myShortcut; // létrehozása egy objektum WshHej WshHej = WScript.CreateObject ( "WScript.Shell"); // Adjuk az elérési utat a asztali pathDesktop = WshShell.SpecialFolders ( „asztali”); // létrehozása parancsikont myShortcut = WshShell.CreateShortcut (pathDesktop + "\\ notepad.lnk") asztali; // meg az utat, hogy a fájl myShortcut.TargetPath = WshShell.ExpandEnvironmentStrings ( "% windir% \\ notepad.exe"); // hozzárendelése munka könyvtár myShortcut.WorkingDirectory = "c: \\ temp"; // megadása parancssor érvek myShortcut.Arguments = "d: \\ MyScript \\ MakeShortcut.js"; // Válassza ki az ikont a fájl notepad.exe myShortcut.IconLocation = "notepad.exe, 0"; // tároljuk a címke myShortcut.Save ();

A következő példa bemutatja, hogy a Windows Script Host (WSH) hozhat létre parancsikonokat a hálózati erőforrásokat.


Néhány példa, hogy a Windows Script Host (WSH) ellátja lekérdezések Windows Management Instrumentation (WMI), és feldolgozza az eredményeket.


Bit változtatási kérelem) - és kap egy listát a folyamatokat a számítógépen

// Csatlakozás a helyi számítógépen a WMI var root = GetObject ( "winmgmts: \\\\ \\ root \\ cimv2."); ( "") // végre egy lekérdezés letölteni az összes folyamat a számítógép var reswmi = root.ExecQuery ( "SELECT * FROM Win32_Process"); // Elvitték nevüket var s = ""; A (var ACC = új Enumerator (reswmi) ;! acc.atEnd (); acc.moveNext ()) s = s + acc.item () Név + "\ n" .; Wscript.echo (s);


A következő WSH például a WMI lekérdezés kap egy listát a logikai lemezek. Igen, WSH saját módszereket kell ezt csinálni, és azt hiszem, sokkal inkább alkalmasak az alkalomra. Ez egyszerűen úgy egy másik lehetőség.

// Csatlakozás a helyi számítógépen a WMI var root = GetObject ( "winmgmts: \\\\ \\ root \\ cimv2."); ( "") // A lekérdezés a logikai meghajtók a számítógép var reswmi = root.ExecQuery ( "SELECT * FROM Win32_LogicalDisk"); // Elvitték nevüket var s = ""; A (var ACC = új Enumerator (reswmi) ;! acc.atEnd (); acc.moveNext ()) s = s + acc.item () DeviceID + "" + acc.item () kötetnek +. "" +. . acc.item () Leírás + "". + acc.item () VolumeSerialNumber + "\ n"; Wscript.echo (s);


Példa információt az operációs rendszer. WSH + WMI.

// Csatlakozás a helyi számítógépen a WMI var root = GetObject ( "winmgmts: \\\\ \\ root \\ cimv2."); ( "") // végre egy lekérdezést, hogy információt szerezzenek az operációs rendszer var reswmi = root.ExecQuery ( "SELECT * FROM Win32_OperatingSystem"); var accitem; A (var ACC = új Enumerator (reswmi) ;! acc.atEnd (); acc.moveNext ()) accitem = acc.item (); var s = 'rövid leírását a változata az operációs rendszer' + accitem.Caption + "\ r \ n" + 'az operációs rendszer buildszámot' + accitem.BuildNumber + "\ r \ n" + "az operációs rendszer verziószámát" + accitem.Version + "\ r \ n" + 'az operációs rendszer nevét' + accitem.Name + "\ r \ n" + 'az operációs rendszer típusát:' + accitem.OSType + "\ r \ n" + „változatban a szervizcsomag + accitem.ServicePackMajorVersion + "\ r \ n" + 'operációs rendszer nyelve' + accitem.OSLanguage + "\ r \ n" + "régió kód, amely az operációs rendszer + accitem.CountryCode + "\ r \ n" +" nyelv által használt azonosító az operációs rendszer + accitem.Locale + "\ r \ n" + "dátum-idő létesítmény '+ accitem.InstallDate + "\ r \ n" +' neve Comp soros port + accitem.CSName + "\ r \ n" + "szervezet, amely nyilvántartásba az operációs rendszer + accitem.Organization + "\ r \ n" + 'sorszám' + accitem.SerialNumber + "\ r \ n" + 'regisztrált operációs rendszer felhasználói' + accitem.RegisteredUser + "\ r \ n" + „egy időzónát; a percek számát eltolt Greenwich Mean Time '+ accitem.CurrentTimeZone + "\ r \ n" +' dátum + idő utolsó letöltés „+ accitem.LastBootUpTime + "\ r \ n \ r \ n"; Wscript.echo (s);

WSH + WMI. osztály Win32_ComputerSystem

// Csatlakozás a helyi számítógépen a WMI var root = GetObject ( "winmgmts: \\\\ \\ root \\ cimv2."); ( "") var reswmi = root.ExecQuery ( "SELECT * FROM Win32_ComputerSystem"); var accitem; A (var ACC = új Enumerator (reswmi) ;! acc.atEnd (); acc.moveNext ()) accitem = acc.item (); var s = 'számítógép neve' + accitem.Caption + "\ r \ n" + 'domén' + accitem.Domain + "\ r \ n" + 'szerepe a számítógép a tartomány'; ha (accitem.DomainRole == 0) s + = 'önálló munkaállomáson'; ha (accitem.DomainRole == 1) s + = 'tag munkaállomás'; ha (accitem.DomainRole == 2) s + = 'önálló kiszolgáló'; if (accitem.DomainRole == 3) s + = 'kiszolgálóként'; ha (accitem.DomainRole == 4) s + = 'Backup Domain Controller'; ha (accitem.DomainRole == 5) s + = 'Primary Domain Controller'; s + = '\ r \ n'; s + = 'az összes fizikai memória (bájt)' + accitem.TotalPhysicalMemory + "\ r \ n"; Wscript.echo (s);


A következő példa WMI WSH - meghatározni a telepített codec-ek.

Ha kérdése, beszélgetések, észrevételek, javaslatok, és így tovább. N. Használhatja a fórum része a helyszínen (regisztráció szükséges).

Kapcsolódó cikkek