HOWTO · JavaScript

在 JavaScript 中使用 ActiveXObject 獲取使用者名稱

通常不允許通過網際網路協議觸發系統資訊,因為這可能會導致安全問題。在以前版本的 Web 瀏覽器中,可以使用 ActiveXObject 物件獲取使用者資訊。目前,只有 Internet Explorer 具有使用此物件獲取系統使用者名稱的可訪問性。

本頁內容

要檢索有關當前系統使用者名稱的資訊,我們必須將其 ping 到伺服器。我們可以通過諸如 navigator 物件及其屬性之類的過程來獲取瀏覽器的資料和作業系統的詳細資訊。

但是大多數瀏覽器都禁用了大多數公認的執行此任務的方法。在這裡,我們將提到一種在 Internet Explorer 中獲取系統使用者名稱的方法。

一個限制是 ActiveXObject 物件的功能可能會在 2022 年 6 月之後到期,但我們仍將在以下示例中使用此物件。另一種方法是使用 SharePoint 和 sp.js 獲取使用者名稱。

對於這個方法,你可以跟進這個文章。

JavaScript 中的 ActiveXObject

該段將看到使用 ActiveXObject 物件的兩種方式。第一種方法是 wscript.Network,第二種是 wscript.shell。

在 JavaScript 中使用 ActiveXObject('wscript.Network') 獲取使用者名稱

WScript.Network 允許訪問網路的共享資源。因此,我們執行 ping 作業的 PC 將通過共享網路協議反映使用者名稱和其他必要的詳細資訊。

程式碼片段:

<!doctype html>
<html>
<head>
    <title>Windows Username</title>
</head>
<body>
<script type="text/javascript">
    var Network = new ActiveXObject("wscript.Network");
    alert(Network.UserName);
</script>
</body>
</html>

輸出:

使用 ActiveXObject('wscript.Network') 獲取使用者名稱

在 JavaScript 中使用 ActiveXObject('wscript.shell') 獲取使用者名稱

在 WScript.shell 的情況下,你可以輕鬆地顯示使用者的詳細資訊、執行應用程式,或者可以控制 Windows 環境變數。從觸發 shell 開始,我們將返回使用者名稱。

程式碼片段:

<!doctype html>
<html>
<head>
    <title>Windows Username</title>
</head>
<body>
<script type="text/javascript">
    var wshell=new ActiveXObject("wscript.shell");
    var username=wshell.ExpandEnvironmentStrings("%username%");
    alert(username);
</script>
</body>
</html>

輸出:

使用 ActiveXObject('wscript.shell') 獲取使用者名稱