JavaScriptクライアントコンピューターハードウェアとシステム情報を取得します
WMIを介してクライアントコンピューターハードウェアとシステム情報を取得します。
次のようにコードコードをコピーします。
関数getsysinfo(){
var local = new ActiveXObject( "wbemscripting.swbemlocator");
var service = local.connectserver( "。");
// CPU情報
var cpu = new Enumerator(service.execquery( "select * from win32_processor")。item();;);
var cputype = cpu.name、hostname = cpu.systemname;
//メモリ情報
var memory = new Enumerator(service.execquery( "select * from win32_physicalmemory");););
for(var mem = []、i = 0;!memory.Atend(); memory.movenext())mem [i ++] = {cap:memory.item() .itemm().Speed}
//システム情報
var system = new Enumerator(service.execquery( "select * from win32_computersystem")。item();
var physicmencap = math.ceil(system.totalphysicalmemory/1024/1024)、curuser = system.username、cpucount = system.numberprocessors
return {cputype:cputype、cpucount:cpucount、hostname:hostname、curuser:curuser、memcap:physicmencap、mem:mem}
}
コードの実装には、主にこれらの部分が含まれています。
最初にbemscriptingオブジェクトにアクセスします。
Local.ConnectServer( "。");
他のコンピューターにアクセスすることもできます)。
service.execquery( "select * from win32_processor")を介して、同様のSQLステートメント(実際、システム情報もデータベースのようなファイルに保存されます)を使用して、必要なレコードセットを取得します。
新しいEnumertorを介して列挙されたオブジェクトを作成すると、以下の情報を通過できます。
注:ランニングの前提は、ブラウザの安全設定を変更することです。「ActiveXを許可します。
スクリプトの操作」。
CPU、メモリ、およびシステムユーザーの主な情報は次のとおりです。
詳細情報。一般的な情報のクラスを以下に示します。
Win32_Processor // CPUプロセッサ
win32_physicalmemory //物理メモリ
win32_keyboard //キーボード
win32_pointingdevice //マウスなどのポイント入力デバイス
win32_diskdrive //ハードドライブドライバー
win32_cdromdrive // CDドライブ
win32_baseboard //マザーボード
win32_bios // bios chip
win32_parallelport //
win32_serialport //シリアルポート
win32_sonddevice //マルチメディア設定
win32_usbcontroller // usbコントローラー
win32_networkadapter //ネットワークアダプター
win32_networkadapterconfiguration //ネットワークアダプター設定
win32_printer //プリンター
win32_printerconfiguration //プリンター設定
win32_printjob //プリンタータスク
win32_tcpipprinterport //プリンターポート
win32_potsmodem // modem
win32_potsmodemtoserialport //モデムポート
win32_desktopmonitor //ディスプレイ
win32_videocontroller //グラフィックカードの詳細。
win32_videosettings //グラフィックカードでサポートされているディスプレイモード。
win32_timezone //タイムゾーン
win32_systemdriver //ドライバー
win32_diskpartition //ディスクパーティション
win32_logicaldisk //ロジックディスク
win32_logicalmemoryconfiguration //論理メモリ構成
win32_pagefile //システムページファイル情報
win32_pagefilesetting //ページファイル設定
win32_bootconfiguration //システムスタートアップ構成
win32_operatingsystem //オペレーティングシステム情報
win32_startupcommand //システム自動起動プログラム
win32_service //システムインストールサービス
win32_group //システム管理グループ
win32_groupuser //システムグループアカウント番号
win32_useraccount //ユーザーアカウント
win32_process //システムプロセス
win32_thread //システムスレッド
win32_share //共有
win32_networkclient //インストールされているオンラインクライアント
win32_networkprotocol //インストールされているネットワークプロトコル
WMI Win32クラスの完全な情報と詳細リストについては、MSDNを参照してください。
http://msdn2.microsoft.com/en-s/library/aa394084(vs.85).aspx
例:
次のようにコードコードをコピーします。
function button1_onclick(){// cpu情報
var local = new ActiveXObject( "wbemscripting.swbemlocator");
var service = local.connectserver( "。");
var properties = service.execquery( "select * from win32_processor");
var e = new Enumerator(プロパティ);
document.write( "<table border = 1>");
for(;!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.availability +" </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>");
}
function button2_onclick(){// cd-rom情報
var local = new ActiveXObject( "wbemscripting.swbemlocator");
var service = local.connectserver( "。");
var properties = service.execquery( "select * from win32_cdromdrive");
var e = new Enumerator(プロパティ);
document.write( "<table border = 1>");
for(;!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>");
}
function button3_onclick(){//キーボード情報
var local = new ActiveXObject( "wbemscripting.swbemlocator");
var service = local.connectserver( "。");
var properties = service.execquery( "select * from win32_keyboard");
var e = new Enumerator(プロパティ);
document.write( "<table border = 1>");
for(;!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>");
}
function button4_onclick(){//マザーボード情報
var local = new ActiveXObject( "wbemscripting.swbemlocator");
var service = local.connectserver( "。");
var properties = service.execquery( "select * from win32_baseboard");
var e = new Enumerator(プロパティ);
document.write( "<table border = 1>");
for(;!e.Atend(); e.movenext())
{{
var p = e.item();
document.write( "<ter>");
document.write( "<td>" " + p.hostingboard +" </td> ");
document.write( "<td>" " + p.Manufacturer +" </td> ");
document.write( "<td>" + p.poweredon + "</td>");
document.write( "<td>" + p.Product + "</td>");
document.write( "<td>" " + P. P. P. P. P." </td> ");
document.write( "<td>" " + p.version +" </td> ");
document.write( "</tr>);
}
document.write( "</table>");
}
さらに、次の方法で関連情報を取得することもできます。
次のようにコードコードをコピーします。
<html> <head> <title> wmiスクリプトhtml </title>
<メタhttp-equiv = content-type content = "text/html; charset = gb2312">
<スクリプト言語= jscript event = "oncompleted(hresult、perrorobject、pasynccontext)" for = foo>
document.forms [0] .txtmacadr.value = unescape(macaddr);
document.forms [0] .txtipaddr.value = unescape(ipaddr);
document.forms [0] .txtdnsname.value = unescape(sdnsname);
//document.formbar.submit();
</script>
<スクリプト言語= jscript event = onobjectready(objobject、objasynccontext)for = foo>
if(objobject.ipenabled!= null && objobject.ipenabled!= "undefined" && objobject.ipenabled == true)
{{
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!= "未定"))
sdnsname = object.dnshostname;
}
</script>
<Meta content = "mshtml 6.00.2800.1106" name = generator> </head>
<body>
<オブジェクトID = local ClassID = CLSID:76A64158-CB41-11D1-8B02-00600806D9B6 VIEWASTEXT> </object>
<オブジェクトID = FOO ClassID = CLSID:75718C9A-F029-11D1-A1AC-004FB6C223> </object>
<スクリプト言語= jscript>
var service = local.connectserver();
var macaddr;
var iPaddr;
var domainddr;
var sdnsname;
service.security_.impersonationLevel = 3;
service.instancesofasync(foo、 'win32_networkadapterconfiguration');
</script>
<form id = "formfoo" name = "formbar" action = "index.do" method = "post"> <input値= "00-11-11-B4-52-ef" name = "txtmacaddr"> <入力value = "210.42.38.50" name = "txtipaddr"> <input値= "zhupan" name = "txtdnsname"> </body> </html>
次のようにコードコードをコピーします。
実際、最も重要なことは、2つのActivexを使用することです。
<オブジェクトID = local ClassID = CLSID:76A64158-CB41-11D1-8B02-00600806D9B6 VIEWASTEXT> </object>
<オブジェクトID = FOO ClassID = CLSID:75718C9A-F029-11D1-A1AC-004FB6C223> </object>
ただし、これら2つのActiveXは、ダウンロードまたは登録する必要なく、体系的に構築されています。
次の仕事は、スクリプトを使用してActiveXと対話することです
<html>
<head>
<スクリプト言語= "javascript" type = "text/javascript">
関数getCode(){
var local = new ActiveXObject( "wbemscripting.swbemlocator");
var service = local.connectserver( "。");
var properties = service.execquery( "select * from win32_networkadapterconfiguration where ipenabld = true");
var e = new Enumerator(プロパティ);
document.write( "<table border = 1>");
for(;!e.Atend(); e.movenext()){
var p = e.item();
//if.ip.ipadddress(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>);
// 壊す;
//}
}
document.write( "</table>");
}
</script>
</head>
<body>
<ボタンID = "test" value = "test" onclick = "getCode()"> test </button>
</body>
</html>
クラスwin32_networkadapterconfiguration:cim_setting
{{
Boolean arpalwayssourceroute;
Boolean ArpuseTherSnap;
文字列キャプション;
文字列databasepath;
boolean deadgwdetectenabled;
文字列defaultipgateway [];
uint8 defaulttos;
uint8 defaulttl;
文字列の説明;
ブールdhcpenabled;
dhcpreaseExpires;
dhcpleaseobtaine
文字列dhcpserver;
文字列dnsdomain;
string dnsdomainsuffixsearchordr [];
Boolean dnsenabledforwinsrsolution;
文字列dnshostname;
文字列dnsserversearchorder [];
boolean domaindnsregistratinabled;
UINT32 FORDWERBUFFERMEMEMORY;
boolean fulldnsregistration -nabled;
UINT16 GATEWAYCOSTMETRIC [];
uint8 igmplevel;
UINT32インデックス;
uint32 interfaceindex;
文字列iPaddress [];
uint32 ipconnectionmetric;
Boolean Ipenabled;
boolean ipfiltersecurityEnabled;
boolean ipportsecurityedabled;
文字列ipsecpermitipprotocols [];
文字列ipsecpermittcpports [];
文字列ipsecpermitudpports [];
文字列ipsubnet [];
Boolean IpusezerobroadCast;
文字列ipxaddress;
Boolean IPXENABLED;
uint32 ipxframetype [];
uint32 ipxmediatype;
文字列ipxnetworknumber [];
文字列ipxvirtualnetnumber;
UINT32 KeepAliveInterval;
uint32 keepAlivetime;
文字列MacAddress;
UINT32 MTU;
uint32 numforwardpackets;
boolean pmtubhdetectenabled;
ブールPMtudiscovered;
文字列サービス;
文字列sitedid;
UINT32 TCPIPNETBIOSOPTIONS;
uint32 tcpmaxconnectretransmisisions;
UINT32 TCPMAXDATARETRANSMISION;
uint32 tcpnumconnections;
Boolean TCPUSERFC11122URGENTPOINTER;
uint16 tcpwindowsize;
Boolean Winsenablelmhostslookup;
文字列winshostlookupfile;
文字列winsprimaryserver;
文字列winsscopeid;
String winssecondaryserver;
};