【问题标题】:Get-WmiObject doesn't work with IP but with FQDNGet-WmiObject 不适用于 IP,但适用于 FQDN
【发布时间】:2017-01-24 15:51:01
【问题描述】:

我有以下 PowerShell 脚本。

代码:

$User = "DOMAIN\user"
$PWord = ConvertTo-SecureString -String "somePassword" -AsPlainText -Force
$Credential = New-Object -TypeName "System.Management.Automation.PSCredential" -ArgumentList $User, $PWord 

$query=...

Get-WmiObject -Computer 192.168.172.10 -Class Win32_ComputerSystem  -ErrorAction Stop # Fails
Get-WinEvent -FilterXML $query -ComputerName 192.168.172.10 -Credential $Credential -ea stop # Works

情况:我在一个 IP 为 192.168.1.1 的 AD 服务器上并正在执行我的脚本。 [AD 拥有所有子网的访问权限,没有防火墙阻止访问]

问题:我想查询以下计算机:server1 ip 192.168.172.10 然后这个:

Get-WmiObject -Computer 192.168.172.10 -Class Win32_ComputerSystem  -ErrorAction Stop # Fails

因“RPC-Server 不可用”错误而失败,但是:

Get-WmiObject -Computer server1 -Class Win32_ComputerSystem  -ErrorAction Stop # Works

有效,这也有效:

Get-WinEvent -FilterXML $query -ComputerName 192.168.172.10 -Credential $Credential -ea stop # Works

服务器与 AD 位于同一域中,并且出于测试目的禁用了 Windows 防火墙。 另一台 IP 为 192.168.172.11 的服务器“server2”同时使用 FQDN 和 IP。

有谁知道为什么在某些情况下(百分之五)Get-WmiObject 会因 ip 失败而使用 FQDN?

我搜索了类似的问题,但都是关于 WinRM 并且正在使用 Invoke-Command 之类的命令。当然,在这种情况下首先需要正确配置 WinRM,但据我了解 Get-WmIObject 不需要 WinRM。 (我没有在所有电脑上做任何配置任务)。

【问题讨论】:

  • 您确定您的 DNS 正在返回您认为它正在返回的名称吗?
  • @Bill_Stewart 是的,DNS 工作正常。 Ping 返回正确的 IP,如果我将 FQDN 与 Get-WmiObject -Computer server1 -Class Win32_ComputerSystem -ErrorAction Stop 一起使用,我将获得正确的服务器(服务器名和域是正确的)。我会检查 RDNS 记录。
  • 我没有问 DNS 是否工作不正常。我在问它是否正在返回您认为的名称。根据您标记的答案,显然情况并非如此。

标签: powershell windows-7 windows-server-2012 powershell-4.0


【解决方案1】:

您面临的问题是由于反向 DNS 记录

在您的情况下,您可能对同一个 IP 有多个 RDNS 记录,从而导致问题间歇性出现。

检查您的反向查找区域和相应的 PTR 记录。

这应该可以解决您的问题。

希望对你有帮助。

【讨论】:

  • 是的,你在正确的地方:对于每个失败的服务器,都有一个错误的 PTR 记录(例如 192.168.172.10 -> server3)。我删除了它们,在它们被复制后,我的脚本运行良好。谢谢!我现在的问题是为什么需要/重要 RDNS?我正在查询没有 RDNS 区域或没有 RDNS PTR 的服务器。为什么 Get-WinEvent 有效而 Get-WmiObject 无效?对我来说,这真的很令人困惑。
  • @PESP:反向查找区域有某些记录,包括 PTR 记录,它反过来将 IP 地址解析为名称。因此,如果您没有映射它,那么如果您点击 IP,那么它应该在哪个 A 记录上的 DNS 会造成混淆。 A 记录保存 IPAdress 的名称。我希望你明白了。否则你把它贴出来。我会用截图和所有来回答。也给我链接:)
  • 我想我明白了。但是,如果子网没有 RDNS 区域会怎样?我有一些没有 RDNS 区域的子网,它们工作正常。在这种情况下获取 dns 服务器只是“忽略”并且没有完成反向查找?
  • 因此它将与主机名一起使用。如果 PTR 不存在,什么都不会发生。只有 IPAddress 到名称解析对此不起作用。 :) 希望它能澄清你的疑问。
  • @PESP:如果它对你有帮助,也支持它,这也会对其他人有所帮助。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-02-10
  • 1970-01-01
  • 2021-09-08
  • 2015-01-04
  • 2017-01-25
  • 2020-05-26
  • 1970-01-01
相关资源
最近更新 更多