왜 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
cmdlet이 PS 6에서 작동하려면 Resolve-DnsName
먼저 cmdlet을 가져오거나 설치해야 합니다.
먼저 시도해 볼 수 있습니다 Install-Module -Name DnsClient
. 기본 패키지 관리자를 사용하여 psgallery에서 다운로드하여 설치합니다.
그런 다음 Import-Module -Name "DnsClient"
당겨 넣으세요.
그러면 cmdlet Resolve-DnsName
이 실행됩니다.
Test-NetConnection
NetTCPIP 모듈의 다양한 매개변수를 사용하여 구문 분석 할 수도 있습니다 .