通过浏览器find(Windows)计算机名称的方法?

理想情况下,我想通过员工电子邮件发送链接,工作人员可以点击以显示他们的电脑名称。 (具体来说,在“我的电脑”属性的第二个选项卡中find“长计算机名称”的第一部分。)

客户端是否有一些JavaScript / VBScript / ActiveX对象,或者是服务器端的CGI脚本,可以通过返回一个简单的网页让用户知道他们的计算机名称?

出于好的理由,这些组织阻止用户下载/运行应用程序,所以oneClick部署和下载batch file在现有的基础架构/策略设置中不存在问题。

噢 – 它应该适用于Internet Explorer 6 / Windows XP的企业级安装,不太可能在短时间内更新。

答案

通过电子邮件

发送给他们一个链接:

http://%computername% 

这将引起“Internet Explorer无法显示网页”,但地址栏将显示机器名称。

服务器端

你想要REMOTE_HOST服务器variables。 首先在Web服务器上启用反向DNS。 然后创build一个页面来返回你想要的variables。 这里是在ASP中。

 <% Response.Write ServerVariables("REMOTE_HOST") %> 

发送给他们一个链接:

 http://%computername% 

这将引起“Internet Explorer无法显示网页”,但地址栏将显示机器名称。

要么

他们可以从桌面上运行一个bat文件:

 echo %computername% >> c:\users\%username%\Desktop\computername.html "c:\program files\internet explorer\iexplore.exe" c:\users\%username%\Desktop\computername.html 

如果这只是Windows Only环境,那么最好的select是OneClick部署和简单的c#(或vb.net)程序,该程序使用System.Environment.MachineName ,或者与System.Net.Dns.GetHostByAddress结合使用以获取更多信息。

这应该作为客户端VBScript:

 Set ADSysInfo = CreateObject ("ADSystemInfo") Set CurrentComp = GetObject ("LDAP://" & ADSysInfo.ComputerName) ShortCompName = ADSysInfo.sAMAccountName 

这个实现只是简单的名字,没有你的域名追加; 请查看ADSIEdit或TechNet或MSDN以获取您可以检索的完整列表。

您可能还需要在Intranet区域IE设置中执行一些jiggery-pokery。

你想要REMOTE_HOST服务器variables。 首先在Web服务器上启用反向DNS 。 然后创build一个页面来返回你想要的variables。 这里是在ASP中。

 <% Response.Write ServerVariables("REMOTE_HOST") %> 

如果你想看看所有可能的variables,使用这个

 <% for each x in Request.ServerVariables response.write(x & ": " & Request.ServerVariables(x) & "<br />") next %> 

这不能回答你的问题,但你可能会考虑将Sysinternals BGInfo作为桌面映像的一部分。 这会将PC的名称(以及您指定的其他相关信息)置于用户的桌面背景上。

并非如此,不,浏览器的安全性已经设置得非常好,以防止Web服务器获取这样的信息。

我想因为你提到的CGI是一个选项,如果DNS更新哪里工作完美,你可能能够编写某种程序,运行在内部Web服务器上查找反向DNSlogging的IP地址,曾用来连接然后返回。

我想,你可以在文件服务器上存储一个HTA ,并向用户发送一个UNC。

或者客户端可以打开命令提示符并键入“主机名”,然后回车。 或者开始>运行>(Winkey + R)键入:“cmd.exe / k主机名”,然后按回车。