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)
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).