sla*_*fer 51 windows powershell
我想通过powershell脚本检索Windows服务器的FQDN名称.到目前为止我找到了2个解决方案:
$server = Invoke-Command -ScriptBlock {hostname}
Run Code Online (Sandbox Code Playgroud)
上面的行只会打印服务器的简称
$sysinfo = Get-WmiObject -Class Win32_ComputerSystem
$server = “{0}.{1}” -f $sysinfo.Name, $sysinfo.Domain
Run Code Online (Sandbox Code Playgroud)
以上两行将获得FQDN但这看起来非常讨厌的代码只检索主机名:(
所以,我的问题是,是否有更简单的方法来获取PowerShell中的FQDN.我是一个bash/perl编码器,最近选择了PowerShell ..所以发现它很难.
谢谢.
per*_*ain 69
要获取本地计算机的FQDN:
[System.Net.Dns]::GetHostByName($env:computerName)
Run Code Online (Sandbox Code Playgroud)
要么
[System.Net.Dns]::GetHostByName($env:computerName).HostName
Run Code Online (Sandbox Code Playgroud)
要获取远程计算机的FQDN:
[System.Net.Dns]::GetHostByName('mytestpc1')
Run Code Online (Sandbox Code Playgroud)
要么
为了更好的格式化值使用:
[System.Net.Dns]::GetHostByName('mytestpc1').HostName
Run Code Online (Sandbox Code Playgroud)
aqu*_*nas 68
怎么样: "$env:computername.$env:userdnsdomain"
这实际上只有在用户登录到域(即没有本地帐户),登录到与服务器相同的域,并且不能与脱节的名称空间AD配置一起使用时才有效.
在另一个答案中引用它:
$myFQDN=(Get-WmiObject win32_computersystem).DNSHostName+"."+(Get-WmiObject win32_computersystem).Domain
Run Code Online (Sandbox Code Playgroud)
写主机$ myFQDN
小智 28
通过dotNet类本地计算机FQDN
[System.Net.Dns]::GetHostEntry([string]$env:computername).HostName
Run Code Online (Sandbox Code Playgroud)
要么
[System.Net.Dns]::GetHostEntry([string]"localhost").HostName
Run Code Online (Sandbox Code Playgroud)
参考:
注意:GetHostByName方法已过时
通过WMI查询的本地计算机FQDN
$myFQDN=(Get-WmiObject win32_computersystem).DNSHostName+"."+(Get-WmiObject win32_computersystem).Domain
Write-Host $myFQDN
Run Code Online (Sandbox Code Playgroud)
参考:
rbl*_*ler 12
这适用于 Windows 上的 PS 和 PS Core(在版本 5.1 和 7.2 上测试)
[System.Net.Dns]::Resolve($null).HostName
Run Code Online (Sandbox Code Playgroud)
[System.Net.Dns]::GetHostByName((hostname)).HostName
Run Code Online (Sandbox Code Playgroud)
$env:computerName
返回主机的NetBIOS名称,以便前两个示例都返回netbioshostname.domainsuffix(不是FQDN!)而不是dnshostname.domainsuffix(FQDN)
例如,主机有FQDN aa-w2k12sv-storage.something.com和NetBIOS名称aa-w2k12sv-stor(一个简单的例子,我通常更改NetBIOS名称)
hostname实用程序返回dnshostname,即FQDN和代码的第一部分
[System.Net.Dns]::GetHostByName((hostname)).HostName
Run Code Online (Sandbox Code Playgroud)
返回正确的FQDN
注释:永远不要使用AD域和主机的相同NetBIOS和DNS名称.如果您的或第三方应用程序写入日志:"无法连接到hostname.domainsuffix",它尝试解析什么名称?如果你在日志中看到"无法连接到netbiosname.domainsuffix",毫无疑问,一个懒惰的程序员为NetBIOS名称添加了域名后缀,你确定,这是一个错误,并且可以打开一张票,强迫他们解决问题...
归档时间: |
|
查看次数: |
179680 次 |
最近记录: |