Иногда в скрипте PowerShell требуется определить FQDN компьютера, на котором этот скрипт запущен. Сделать это можно разными способами, например можно воспользоваться переменными окружения.
Так переменная $env:COMPUTERNAME хранит имя компьютера, а $env:USERDOMAIN — имя домена, в котором этот компьютер находится. Объединив обе переменные мы получим полное доменное имя компьютера:
$name = ″$env:COMPUTERNAME.$env:USERDOMAIN″
Также для получения FQDN можно использовать WMI, а точнее класс Win32_ComputerSystem, в котором хранится информация о системе. Для начала получим все свойства этого класса и поместим их в переменную:
$systeminfo = Get-WmiObject -Class Win32_ComputerSystem
А затем возьмем нужные нам свойства, объединим их и получим имя компьютера:
$name = ″{0}.{1}″ -f $systeminfo.DNSHostName, $systeminfo.Domain
И третий способ — это воспользоваться статическими методами GetHostByName или GetHostEntry класса System.Net.Dns. Так получить FQDN текущего хоста можно всего одной командой:
$name = [System.Net.Dns]::GetHostByName(″localhost″)
Привет,
в последнем примере ошибка. Написано: $name = [System.Net.Dns]::GetHostByName(″localhost″)
Должно быть $name = [System.Net.Dns]::GetHostByName(«localhost»).hostname