コマンドレット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
多くのコマンドレットの可用性は、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()
}
}