为什么Resolve-DnsName
不被认可PowerShell Core
?据我所知,它PowerShell
本身就可以正常工作。
这是一个.NET
对抗dotnet
问题吗?那dotnet
根本就没有这个功能?
thufir@dur:~/powershell/webservicex$
thufir@dur:~/powershell/webservicex$ dotnet --version
2.1.4
thufir@dur:~/powershell/webservicex$
thufir@dur:~/powershell/webservicex$ ./dns.ps1
Resolve-DnsName : The term 'Resolve-DnsName' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At /home/thufir/powershell/webservicex/dns.ps1:3 char:1
+ Resolve-DnsName -Name localhost -Type ANY | Format-Table -AutoSize
+ ~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Resolve-DnsName:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
thufir@dur:~/powershell/webservicex$
thufir@dur:~/powershell/webservicex$ cat dns.ps1
#!/usr/bin/pwsh -Command
Resolve-DnsName -Name localhost -Type ANY | Format-Table -AutoSize
thufir@dur:~/powershell/webservicex$
来自PowerShell Core 6.0文档中的新增功能,在“向后兼容性”部分:
虽然 Powershell Core 是 GA,但它仍然是一项正在进行的工作。
有一个名为 的跨平台模块
DnsClient-PS
,该模块中的命令名称为Resolve-Dns
。它的功能与Resolve-DnsName
:为了让 cmdlet
Resolve-DnsName
在 PS 6 中工作,您必须首先导入或安装它。你可以先试试
Install-Module -Name DnsClient
。它将使用您的默认包管理器从 psgallery 中下载并安装它。然后,
Import-Module -Name "DnsClient"
把它拉进去。然后,您
Resolve-DnsName
的 cmdlet 应该可以正常工作。您也可以使用
Test-NetConnection
NetTCPIP 模块中的各种参数来解析。