Resolve-DnsName:「Resolve-DnsName」という用語はコマンドレットの名前として認識されません。

Resolve-DnsName:「Resolve-DnsName」という用語はコマンドレットの名前として認識されません。

なぜ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-NetConnectionNetTCPIPモジュールのさまざまなパラメータを使用して解析することもできます。

関連情報