理想情况下,我想通过员工电子邮件发送一个链接,员工可以单击该链接以显示他们的计算机名称。(特别是在“我的电脑属性”的第二个选项卡中找到的“长计算机名”的第一部分。)
客户端是否有一些 JavaScript/VBScript/ActiveX 对象,或者服务器端的 CGI 脚本可以通过返回一个简单的网页让用户知道他们的计算机名称?
出于充分的理由,组织会阻止用户下载/运行应用程序,因此 oneClick 部署和下载批处理文件对于现有的基础架构/策略设置来说是不可能的。
哦 - 它应该适用于不太可能很快更新的 Internet Explorer 6/Windows XP 的企业范围安装。
答案
通过电子邮件
向他们发送以下链接:
http://%computername%
这会弹出“Internet Explorer 无法显示网页”,但地址栏会显示机器名称。
服务器端
您需要 REMOTE_HOST 服务器变量。首先在 Web 服务器上启用反向 DNS。然后创建一个页面来返回你想要的变量。这是在 ASP 中。
<% Response.Write ServerVariables("REMOTE_HOST") %>
如果这是仅限 Windows 的环境,您最好的选择是OneClick 部署和简单的 c#(或 vb.net)程序,它使用System.Environment.MachineName与 System.Net.Dns.GetHostByAddress 组合或不与 System.Net.Dns.GetHostByAddress 结合使用以获取更多信息。
向他们发送以下链接:
这会弹出“Internet Explorer 无法显示网页”,但地址栏会显示机器名称。
或者
他们可以从桌面运行 bat 文件:
这应该作为客户端 VBScript 工作:
此实现仅获取短名称,而无需附加您的域;查看 ADSIEdit 或 TechNet 或 MSDN 以获取您可以检索的完整属性列表。
您可能还需要在您的 Intranet 区域 IE 设置中做一些小游戏。
您需要 REMOTE_HOST 服务器变量。首先在 Web 服务器上启用反向 DNS 。然后创建一个页面来返回你想要的变量。这是在 ASP 中。
如果您想查看所有可能的变量,请使用此
这不能回答您的问题,但您可以考虑将 Sysinternals BGInfo部署为桌面映像的一部分。这会将 PC 的名称(以及您指定的其他相关信息)放在用户的桌面背景上。
不是真的,不,浏览器安全设置几乎是为了防止 Web 服务器获取这样的信息。
我想既然您提到 CGI 是一个选项,如果 DNS 更新可以完美运行,您可能可以编写某种在内部 Web 服务器上运行的程序,该程序查找用于连接的 IP 地址的反向 DNS 记录然后返回。
我想,您可以在文件服务器上存储HTA并向用户发送 UNC。
或者客户端可以打开命令提示符并输入“主机名”并回车。或开始 > 运行 > (Winkey+R) 键入:“cmd.exe /k 主机名”并按 Enter。