web-dev-qa-db-ja.com

PowerShellコマンドレットTest-NetConnectionは使用できません

コマンドレットTest-NetConnectionがServer 2012にインストールされていないことに気付きました。Server2012にはPowerShellバージョン3が付属しているため、最新バージョン5.1に更新すると役立つと思いました。

更新を行いましたが、コマンドレットTest-NetConnectionはまだ使用できません。

存在するのはTest-Connectionだけですが、ポートをテストするにはTest-NetConnectionが必要です。

Test-NetConnectionを入手するにはどうすればよいですか?

 PS C:\ Windows\system32> $ PSVersionTable 
 
名前の値
 ---- ----- 
 PSVersion 5.1.14409.1005 
 PSEdition Desktop 
 PSCompatibleVersions {1.0、2.0、3.0、4.0 ...} 
 BuildVersion 10.0.14409.1005 
 CLRVersion 4.0.30319.34209 
 WSManStackVersion 3.0 
 PSRemotingProtocolVersion 2.3 
 SerializationVersion 1.1.0.1 
 
 
 PS C:\ Windows\system32> Get-Command Test-NetConnection 
 Get-Command:「Test-NetConnection」という用語は、コマンドレット、
関数、スクリプトファイル、または操作可能なプログラムの名前として認識されません。名前のスペルを確認するか、パス
が含まれていた場合は、パスが正しいことを確認して再試行してください。
 Atline:1 char:1 
 + Get-Command Test-NetConnection 
 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 + CategoryInfo:ObjectNotFound:( Test-NetConnection:String)[Get-Command]、CommandNotFoundException 
 + FullyQualifiedErrorId:CommandNotFoundException、Microsoft.PowerShell.Commands.GetCommandCommand 
5
Paul Smith

多くのコマンドレットの可用性は、PowerShellバージョンではなく、Windowsバージョンに関連付けられています。 Windowsのバージョンをアップグレードできない場合は、Test-NetConnection

ポートテストに nmap または scanline のようなコマンドラインポートスキャナーを使用するか、自分でポートに接続します。

function Test-Port($server, $port) {
    $client = New-Object Net.Sockets.TcpClient
    try {
        $client.Connect($server, $port)
        $true
    } catch {
        $false
    } finally {
        $client.Dispose()
    }
}
4
Ansgar Wiechers