В идеале я хотел бы отправить ссылку по электронной почте сотрудников, по которой сотрудники могли бы щелкнуть, чтобы раскрыть имя своего компьютера. (В частности, первая часть «Длинного имени компьютера» во второй вкладке «Свойства моего компьютера».)
Есть ли какой-нибудь объект JavaScript / VBScript / ActiveX на стороне клиента или сценарий CGI на стороне сервера, который может позволить пользователю узнать имя своего компьютера, вернув простую веб-страницу?
По уважительным причинам организации не позволяют пользователям загружать / запускать приложения, поэтому развертывание и загрузка пакетных файлов oneClick исключены при существующей настройке инфраструктуры / политики.
О, это должно работать для корпоративной установки Internet Explorer 6 / Windows XP, которая вряд ли будет обновлена в ближайшее время.
Ответы
По электронной почте
Отправьте им ссылку для:
http://%computername%
Появится сообщение «Internet Explorer не может отобразить веб-страницу», но в адресной строке будет отображаться имя компьютера.
Сторона сервера
Вам нужна серверная переменная REMOTE_HOST. Сначала включите обратный DNS на веб-сервере. Затем создайте страницу для возврата нужной переменной. Вот он в ASP.
<% Response.Write ServerVariables("REMOTE_HOST") %>
Если это среда только для Windows, лучше всего будет Развертывание OneClick и простая программа на C # (или vb.net), которая использует System.Environment.MachineName с или без комбинации с System.Net.Dns.GetHostByAddress для получения дополнительной информации.
Отправьте им ссылку для:
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
Это должно работать как клиентский VBScript:
Set ADSysInfo = CreateObject ("ADSystemInfo")
Set CurrentComp = GetObject ("LDAP://" & ADSysInfo.ComputerName)
ShortCompName = ADSysInfo.sAMAccountName
Эта реализация просто получает короткое имя без добавления вашего домена; загляните в ADSIEdit, TechNet или MSDN, чтобы получить полный список свойств, которые вы можете получить.
Вам также может потребоваться выполнить некоторую манипуляцию в настройках IE в зоне интрасети.
Вам нужна серверная переменная REMOTE_HOST. Сначала включите обратный DNS на веб-сервере. Затем создайте страницу для возврата нужной переменной. Вот он в ASP.
<% Response.Write ServerVariables("REMOTE_HOST") %>
Если вы хотите взглянуть на все возможные переменные, используйте это
<%
for each x in Request.ServerVariables
response.write(x & ": " & Request.ServerVariables(x) & "<br />")
next
%>
Это не отвечает на ваш вопрос, но вы можете рассмотреть возможность развертывания Sysinternals. BGInfo как часть изображения на рабочем столе. Это помещает имя ПК (и другую соответствующую информацию, которую вы указываете) прямо на фон рабочего стола пользователя.
Не совсем, нет, безопасность браузера в значительной степени настроена так, чтобы веб-серверы не получали подобную информацию.
Я предполагаю, что, поскольку вы упомянули CGI, это вариант, если обновления DNS работают идеально, вы можете написать какую-то программу, которая работает на внутреннем веб-сервере, которая ищет обратную запись DNS для IP-адреса, который использовался для подключения а затем возвращает это.
Я полагаю, вы могли бы хранить HTA на файловом сервере и отправьте пользователям UNC.
Или клиент может открыть командную строку, ввести «имя хоста» и нажать Enter. Или Пуск> Выполнить> (Winkey + R) введите: «cmd.exe / k hostname» и нажмите Enter.