JavaScript erhalten Sie Client -Computer -Hardware- und Systeminformationen
Über WMI, um Client -Computerhardware und Systeminformationen zu erhalten:
Kopieren Sie den Code -Code wie folgt:
Funktion gotsysinfo () {
var local = new ActiveXObject ("wbemscripting.swbemlocator");
var service = local.connectServer (".");
// CPU -Informationen
var cpu = neuer Enumerator (service.execQuery ("Select * aus Win32_Processor"). item () ;;);
var cputype = cpu.name, hostname = cpu.systemname;
// Speicherinformationen
var memory = new Enumerator (service.execQuery ("aus win32_physicalMemory"););););
Für (var mem = [], i = 0;! Memory.atend (); memory.movenext ()) mem [i ++] = {cap: memory.Item () .Itemm () .speed}
// Systeminformationen
var system = new Enumerator (Service.execQuery ("aus win32_computerSystem"). item ();
Var PhysicMencap = Math.ceil (System.TotalphysicalMemory/1024/1024), Curuser = System.Unername, cpcount = System.numberProcessors
Return {cputype: cputype, cpcount: cpcount, hostname: hostname, curuser: curuser, memcap: PhysicMencap, mem: mem}
}
Die Code -Implementierung enthält hauptsächlich diese Teile:
Geben Sie zuerst das neue ActiveXObject ("WBEMSCIPTING.SWBEMLOCator") auf das WBEMSCIPTING -Objekt zu.
Über Local.ConnectServer (".");
Sie können auch auf andere Computer zugreifen).
Über service.execQuery ("aus win32_processor") ist eine ähnliche SQL -Anweisung (tatsächlich wird Systeminformationen in einer Datenbank -ähnliche Datei in Berechnungen gespeichert), um den von uns benötigten Datensatzsatz zu erhalten.
Erstellen Sie ein aufzähliges Objekt über einen neuen Enumertor, und Sie können Informationen unten durchqueren.
Hinweis: Die Prämisse des Laufens besteht darin, die Sicherheitseinstellungen des Browsers zu ändern, "das ActiveX, das nicht als sicher markiert ist", zu ermöglichen, was nicht als sicher markiert ist ","
Die Operation des Skripts ".
Hier sind die Hauptinformationen der CPU-, Speicher- und Systembenutzer.
Weitere Informationen. Die Klasse der gemeinsamen Informationen ist unten aufgeführt:
Win32_Processor // CPU -Prozessor
Win32_PhysicalMemory // Physikalisches Gedächtnis
Win32_Keyboard // Tastatur
Win32_pointingDevice // Punkteingabegerät wie Maus
Win32_Diskdrive // Festplattenfahrer
Win32_cdromDrive // CD -Laufwerk
Win32_Baseboard // Motherboard
Win32_BIOS // BIOS -Chip
Win32_parallelport //
Win32_Serialport // serieller Port
Win32_SoundDevice // Multimedia -Einstellungen
Win32_usbController // USB -Controller
Win32_networkadapter // Netzwerkadapter
Win32_networkAdapterConfiguration // Einstellungen für Netzwerkadapter
Win32_printer // Drucker
Win32_printerConfiguration // Druckereinstellungen
Win32_printjob // Druckeraufgabe
Win32_tcpiPPrinterport // Druckerport
Win32_potsmodem // modem
Win32_potsmodemtoserialport // Modem -Port
Win32_Desktopmonitor // Anzeige
Win32_videocontroller // Grafikkartendetails.
Win32_videosettings // Der Anzeigemodus, der von der Grafikkarte unterstützt wird.
Win32_Timezone // Zeitzone
Win32_SystemDriver // Treiber
Win32_diskpartition // Festplattenpartition
Win32_LogicalDisk // Logische Festplatte
Win32_LogicalMemoryConfiguration // Logische Speicherkonfiguration
Win32_PageFile // System -Datendateiinformationen
Win32_PageFileSetting // Seitendateieinstellungen
Win32_BootConfiguration // Systemstartkonfiguration
Win32_operatingsystem // Betriebssysteminformationen
Win32_Startupcommand // Das automatische Startprogramm des Systems
Win32_Service // Systeminstallationsdienst
Win32_Group // Systemverwaltungsgruppe
Win32_Groupuser // Systemgruppenkontennummer
Win32_userAccount // Benutzerkonto
Win32_process // Systemprozess
Win32_thread // System Thread
Win32_share // Share
Win32_networkClient // Der installierte Online -Client
Win32_networkProtocol // Das installierte Netzwerkprotokoll
Für vollständige Informationen und detaillierte Listen der WMI Win32 -Klasse finden Sie unter MSDN:
http://msdn2.microsoft.com/en-s-library/aa394084 (vs.85) .aspx
Beispiel:
Kopieren Sie den Code -Code wie folgt:
Funktionstaste1_onclick () {// CPU -Informationen
var local = new ActiveXObject ("wbemscripting.swbemlocator");
var service = local.connectServer (".");
Var properties = service.execQuery ("aus win32_processor");
var e = neuer Enumerator (Eigenschaften);
document.write ("<Table Border = 1>");
für (;! e.atend (); E.Movenext ())
{{{{
var p = e.Item ();
document.write ("<ter>");
document.write ("<td>" + p.Caption + "</td>");
document.write (<td> " + P.Deviceid +" </td> ");
document.write ("<td>" "" + p.Name + "</td>");
document.write ("<td>" "" + p.cpustatus + "</td>");
document.write ("<td>" "" + p.Avilability + "</td>");
document.write ("<td>" "" + P.Level + "</td>");
document.write ("<td>" "" + p.processorid + "</td>");
document.write ("<td>" "" + p.Systemname + "</td>");
document.write ("<td>" + p.processortype + "</td>");
document.write ("</tr>);
}
document.write ("</table>");
}
Funktion Button2_onclick () {// CD-ROM-Informationen
var local = new ActiveXObject ("wbemscripting.swbemlocator");
var service = local.connectServer (".");
Var properties = service.execQuery ("aus win32_cdromdrive");
var e = neuer Enumerator (Eigenschaften);
document.write ("<Table Border = 1>");
für (;! e.atend (); E.Movenext ())
{{{{
var p = e.Item ();
document.write ("<ter>");
document.write ("<td>" + p.Caption + "</td>");
document.write ("<td>" "" + p.descript + "</td>");
document.write ("<td>" + p.Drive + "</td>");
document.write ("<td>" "" + p.Status + "</td>");
document.write ("<td>" " + p.medialoaded +" </td> ");
document.write ("</tr>);
}
document.write ("</table>");
}
Funktionstaste 3_onclick () {// Tastaturinformationen
var local = new ActiveXObject ("wbemscripting.swbemlocator");
var service = local.connectServer (".");
Var properties = service.execQuery ("aus win32_keyboard");
var e = neuer Enumerator (Eigenschaften);
document.write ("<Table Border = 1>");
für (;! e.atend (); E.Movenext ())
{{{{
var p = e.Item ();
document.write ("<ter>");
document.write ("<td>" "" + p.descript + "</td>");
document.write ("<td>" "" + p.Name + "</td>");
document.write ("<td>" "" + p.Status + "</td>");
document.write ("</tr>);
}
document.write ("</table>");
}
Funktion Button4_onclick () {// Motherboard -Informationen
var local = new ActiveXObject ("wbemscripting.swbemlocator");
var service = local.connectServer (".");
Var properties = service.execQuery ("aus win32_baseboard");
var e = neuer Enumerator (Eigenschaften);
document.write ("<Table Border = 1>");
für (;! e.atend (); E.Movenext ())
{{{{
var p = e.Item ();
document.write ("<ter>");
document.write ("<td>" "" + p.hostingboard + "</td>");
document.write ("<td>" "" + p.Man -Herstellung + "</td>");
document.write ("<td>" + p.poweredon + "</td>");
document.write ("<td>" + P.Product + "</td>");
document.write ("<td>" "" + P. P. P. P. "</td>");
document.write ("<td>" "" + p.version + "</td>");
document.write ("</tr>);
}
document.write ("</table>");
}
Darüber hinaus können Sie die relevanten Informationen auf folgende Arten erhalten:
Kopieren Sie den Code -Code wie folgt:
<html> <kopf> <titels> WMI Scripting html </title>
<Meta http-äquiv = content-type content = "text/html; charset = gb2312">
<Script Language = jscript event = "onCompleted (hResult, perrorObject, pasynccontext)" für = foo>
document.forms [0] .txtmacadr.value = unsCape (macaddr);
document.forms [0] .txtipaddr.value = unsCape (iPaddr);
document.forms [0] .txtdnsname.Value = unsCape (sdnsname);
//document.formbar.submit ();
</Script>
<script Language = Jscript Ereignis = OnObjectrady (ObjObject, Objasynccontext) für = foo>
if (objObject.ipenabled! = null && objObject.ipenabled!
{{{{
If (objObject.macaddress! = Null && objObject.macaddress! = "Undefined")
Macaddr = Object.macAddress;
if (objObject.ipenabled && objObject.ipaddress (0)! = null && objObject.ipadddress (0)! = "undefined")
Ipaddr = Object.ipaddress (0);
if (objObject.dnshostname! = null && objObject.dnshostname! = "undefined")
sdnsname = Object.dnshostname;
}
</Script>
<Meta content = "MSHTML 6.00.2800.1106" Name = Generator> </head>
<body>
<Objekt ID = Lokal Classid = ClSID: 76A64158-CB41-11D1-8B02-00600806D9B6 ViewAtext> </Object>
<Objekt ID = foo classId = clSID: 75718C9A-F029-11D1-A1AC-004FB6C223> </Object>
<Skript Sprache = Jscript>
var service = local.connectServer ();
var macaddr;
var iPaddr;
var domaineddr;
var sdnsname;
Service.security_.impersonationlevel = 3;
Service.inStancesOfasync (Foo, 'Win32_NetworkAdapterConfiguration');
</Script>
<Form ID = "Formfoo" name = "Formbar" action = "index.do" methode = "post"> <Eingabewert = "00-11-11-b4-52-ef" name = "txtmacaddr"> <Eingabe Value = "210.42.38.50" name = "txtipaddr"> <input value = "zhupan" name = "txtdnsname"> </body> </html>
Kopieren Sie den Code -Code wie folgt:
Tatsächlich ist das Wichtigste, zwei ActiveX zu verwenden:
<Objekt ID = Lokal Classid = ClSID: 76A64158-CB41-11D1-8B02-00600806D9B6 ViewAtext> </Object>
<Objekt ID = foo classId = clSID: 75718C9A-F029-11D1-A1AC-004FB6C223> </Object>
Diese beiden Activex werden jedoch systematisch erstellt, ohne dass sie herunterladen oder registrieren müssen.
Die nächste Aufgabe besteht darin, mit ActiveX mit Skripten zu interagieren
<html>
<kopf>
<script Language = "javaScript" Typ = "text/javaScript">
Funktion getCode () {
var local = new ActiveXObject ("wbemscripting.swbemlocator");
var service = local.connectServer (".");
Var properties = service.execQuery ("aus win32_networkAdapterConfiguration auswählen, wobei ipenabld = true");
var e = neuer Enumerator (Eigenschaften);
document.write ("<Table Border = 1>");
für (;! e.atend (); e.Movext ()) {
var p = e.Item ();
//If.ip.ipaddress (0)! = Null && P.ipaddress (0)! ) .0.1 ") {{{{{
document.write ("<ter>");
document.write ("<td>" " + p.ServiceName +" </td> ");
document.write ("<td>" " + p.macaddress +" </td> ");
document.write ("<td>" "" + p.ipaddress (0) + "</td>");
document.write ("</tr>);
// Brechen;
//}
}
document.write ("</table>");
}
</script>
</head>
<body>
<button id = "test" value = "test" onclick = "getCode ()"> test </button>
</Body>
</Html>
Klasse Win32_NetworkAdapterConfiguration: CIM_Seting
{{{{
Boolean Arpalwayssourceroute;
Boolean Arpuseethersnap;
String -Bildunterschrift;
String Databasepath;
Boolean DeadgwdetectNabled;
String defaultIpgateway [];
Uint8 defaulttos;
Uint8 defaulttl;
Zeichenfolge Beschreibung;
Boolean dhcpenabled;
Datetime dhcPleaseExpires;
Datetime dhcPleaseoBtaine;
String dhcpServer;
String DNSDomain;
String dnsdomainsuffixSearchOrdr [];
Boolean dnsenabledforwinsrSolution;
String dnshostname;
String dnsServersearchOrder [];
Boolean domaindnsregistratinabled;
Uint32 ForwardBuffermemory;
Boolean fulldnsregistrationNabled;
uint16 gatewaycostmetric [];
Uint8 igmplevel;
Uint32 Index;
Uint32 interfaceIndex;
String iPaddress [];
Uint32 ipConnectionMetric;
Boolean ipenabled;
Boolean ipFilterSecurityEnabled;
Boolean ipportSecurity -kennbar;
String ipsecpermitipprotocols [];
String ipsecpermittCpports [];
String ipsecpermitudpports [];
String ipsubnet [];
Boolean Ipusezerobroadcast;
String ipxaddress;
Boolean ipxenabled;
Uint32 ipxframetype [];
Uint32 ipxMediType;
String ipxNetWorkNumber [];
String ipxvirtualNetNumber;
Uint32 keepaliveInterval;
Uint32 keepalivetime;
String MacAddress;
Uint32 MTU;
Uint32 numforwardpackets;
Boolean pmTubhDectEctNabled;
Boolean pmtudiscoveryed;
String -Dienst;
String -Einstellung;
UINT32 TCPIPNETBIOSOPTIONS;
UINT32 TCPMAXCONNECTRECTRANSMISIERS;
UINT32 TCPMAXDATARETRANSMIERS;
Uint32 tcpnumConnections;
Boolean TCPUSERFC11122Urgerpointer;
Uint16 tcpWindowSize;
Boolean winsenablelmhostslookup;
String WinShostlookupfile;
String WinSprimaryServer;
String WinsScopeid;
String WinSsecondaryServer;
};