2009-03-27 19 views
0

Ich benutze ths Skript in Default.aspx Seite.ActiveXobject Fehler in Javascript

<script id="clientEventHandlersJS" type="text/javascript"> 

     function Button1_onclick() { 
      var locator = new ActiveXObject ("WbemScripting.SWbemLocator"); 
      var service = locator.ConnectServer("."); 
      var properties = service.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration"); 
      var e = new Enumerator (properties); 
      document.write("<table border=1>"); 
      dispHeading(); 
      for (;!e.atEnd();e.moveNext()) 
      { 
       var p = e.item(); 
       document.write("<tr>"); 
       document.write("<td>" + p.Caption + "</td>"); 
       document.write("<td>" + p.IPFilterSecurityEnabled + "</td>"); 
       document.write("<td>" + p.IPPortSecurityEnabled + "</td>"); 
       document.write("<td>" + p.IPXAddress + "</td>"); 
       document.write("<td>" + p.IPXEnabled + "</td>"); 
       document.write("<td>" + p.IPXNetworkNumber + "</td>"); 
       document.write("<td>" + p.MACAddress + "</td>"); 
       document.write("<td>" + p.WINSPrimaryServer + "</td>"); 
       document.write("<td>" + p.WINSSecondaryServer + "</td>"); 
       document.write("</tr>"); 
      } 
      document.write("</table>"); 
     } 
     function dispHeading() 
     { 
      document.write("<thead>"); 
      document.write("<td>Caption</td>"); 
      document.write("<td>IPFilterSecurityEnabled</td>"); 
      document.write("<td>IPPortSecurityEnabled</td>"); 
      document.write("<td>IPXAddress</td>"); 
      document.write("<td>IPXEnabled</td>"); 
      document.write("<td>IPXNetworkNumber</td>"); 
      document.write("<td>MACAddress</td>"); 
      document.write("<td>WINSPrimaryServer</td>"); 
      document.write("<td>WINSSecondaryServer</td>"); 
      document.write("</thead>"); 
     } 
    </script> 

im obigen Code Ich versuche MAC-Adresse des Clients zu holen. Aber ich bekomme Fehler in der ersten Zeile `var locator = neues ActiveXObject (" WbemScripting.SWbemLocator "); '

dass ActiveX-Objekt nicht erstellt werden kann, bitte helfen Sie mir.

Antwort

4

Die WbemScripting-Objekte sind nicht als "Safe for Scripting" markiert, und das zu Recht! Wenn dies der Fall wäre, könnte jede Webseite herausfinden, welche Prozesse Sie ausführen, sie beenden und sogar neue Anwendungen starten! Über eine Sicherheitsverletzung sprechen ...

Die WbemScripting-Objekte sind zur Verwendung in Windows Scripting, nicht für die Verwendung in einer Webseite gemacht.

Wenn Sie Zugriff auf den Clientcomputer haben, versuchen Sie, den Code mithilfe von WScript.exe oder CScript.exe aus einer JS-Datei auszuführen. Wenn sich der Clientcomputer in Ihrem Netzwerk befindet und Sie seinen Namen kennen, können Sie auch versuchen, das Skript remote auszuführen. Ersetzen Sie einfach das "." Zeitraum in der Zeile

locator.ConnectServer("."); 

durch den Namen der Maschine. Also, wenn Sie den Namen des Remote-Maschine-Maschine ist, sollten Sie die Zeile

locator.ConnectServer("MACHINE"); 

wieder ändern, dies müssten Sie das Skript von einem JS-Datei mit WScript oder CScript ausgeführt werden.

Schließlich können Sie versuchen, die Sicherheitseinstellungen von Internet Explorer auf dem Clientcomputer zu verringern. Aber tun Sie das nur, wenn Sie nie mit diesem Rechner im großen, schlechten Internet surfen, da es Ihren Browser, Ihren gesamten PC und das damit verbundene Netzwerk für alle Arten von unappetitlichen Sachen öffnet ...

0

Überprüfen Sie, ob das COM-Objekt, das Sie erstellen möchten, installiert und als sicher für die Skripterstellung markiert ist. Bestätigen Sie Ihre Sicherheitseinstellungen in IE. Darüber hinaus ist ActiveXObject nur über IE verfügbar, nicht über andere Browser. Höchstwahrscheinlich ist es entweder nicht "sicher für das Scripting" oder Ihre Sicherheitseinstellungen für die Sicherheitsdomäne verbieten es.

Verwandte Themen