なぜ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$
答え1
というクロスプラットフォームモジュールがあり、DnsClient-PS
このモジュールのコマンド名はですResolve-Dns
。これらの機能は以下と若干異なりますResolve-DnsName
。
> Find-Module -Name PowerShellGet | Install-Module
> Get-PSRepository
Name InstallationPolicy SourceLocation
---- ------------------ --------------
PSGallery Untrusted https://www.powershellgallery.com/api/v2
> Set-PSRepository -Name "PSGallery" -InstallationPolicy Trusted
> Get-PSRepository
Name InstallationPolicy SourceLocation
---- ------------------ --------------
PSGallery Trusted https://www.powershellgallery.com/api/v2
> Install-Module -Name DnsClient-PS
> Resolve-Dns google.com | Select-Object -Expand Answers
DomainName TimeToLive RecordClass RecordType RecordData
---------- ---------- ----------- ---------- ----------
google.com. 401 IN A 64.233.185.102
google.com. 401 IN A 64.233.185.139
google.com. 401 IN A 64.233.185.138
google.com. 401 IN A 64.233.185.113
google.com. 401 IN A 64.233.185.101
google.com. 401 IN A 64.233.185.100
答え2
~からPowerShell Core 6.0の新機能「以前のバージョンとの互換性」セクションのドキュメント:
Windows(たとえば、DnsClient、Hyper-V、NetTCPIP、Storageなど)の一部として提供されるほとんどのモジュール、およびAzureおよびOfficeを含む他のMicrosoft製品は、.NET Coreに明示的に移植されていません。 PowerShellチームは、これらの製品グループやチームと協力して既存のモジュールを検証し、PowerShell Coreに移植しています。 .NET Standard や CDXML と同様に、多くの従来の Windows PowerShell モジュールが PowerShell Core で動作しているように見えますが、正式に検証されず、正式にはサポートされません。
Powershell Coreが正式にリリースされましたが、まだ進行中の作業です。
答え3
コマンドレットがPS 6で動作する前に、Resolve-DnsName
コマンドレットをインポートまたはインストールする必要があります。
まず試してみてくださいInstall-Module -Name DnsClient
。デフォルトのパッケージマネージャを使用してpsgalleryからダウンロードしてインストールします。
それからImport-Module -Name "DnsClient"
引っ張ってください。
これによりコマンドレットResolve-DnsName
が実行されます。
Test-NetConnection
NetTCPIPモジュールのさまざまなパラメータを使用して解析することもできます。