Powershell 3.0 Windows 7でローカルコンピューターのipv4アドレスを変数に取得する簡単な方法はありますか?
別のソリューションを次に示します。
$env:HostIP = (
Get-NetIPConfiguration |
Where-Object {
$_.IPv4DefaultGateway -ne $null -and
$_.NetAdapter.Status -ne "Disconnected"
}
).IPv4Address.IPAddress
これはどう? (実際のIPアドレスではありません!)
PS C:\> $ipV4 = Test-Connection -ComputerName (hostname) -Count 1 | Select IPV4Address
PS C:\> $ipV4
IPV4Address
-----------
192.0.2.0
Localhostを使用すると、127.0.0.1のIPのみが返されることに注意してください。
PS C:\> $ipV4 = Test-Connection -ComputerName localhost -Count 1 | Select IPV4Address
PS C:\> $ipV4
IPV4Address
-----------
127.0.0.1
アドレス文字列を取得するには、IPアドレスオブジェクトを展開する必要があります
PS C:\> $ipV4 = Test-Connection -ComputerName (hostname) -Count 1 | Select -ExpandProperty IPV4Address
PS C:\> $ipV4
Address : 556228818
AddressFamily : InterNetwork
ScopeId :
IsIPv6Multicast : False
IsIPv6LinkLocal : False
IsIPv6SiteLocal : False
IsIPv6Teredo : False
IsIPv4MappedToIPv6 : False
IPAddressToString : 192.0.2.0
PS C:\> $ipV4.IPAddressToString
192.0.2.0
マシン名を使用すると、これは機能します。しかし、ハックのようなものです(私が取得したipv4アドレスの最初の値を選択しているためです)。
$ipaddress=([System.Net.DNS]::GetHostAddresses('PasteMachineNameHere')|Where-Object {$_.AddressFamily -eq "InterNetwork"} | select-object IPAddressToString)[0].IPAddressToString
上記の式の値PasteMachineNameHereを置き換える必要があることに注意してください
これも機能します
$localIpAddress=((ipconfig | findstr [0-9].\.)[0]).Split()[-1]
(Get-WmiObject -Class Win32_NetworkAdapterConfiguration | where {$_.DefaultIPGateway -ne $null}).IPAddress | select-object -first 1
ここに私が使ったものがあります
$ipaddress = $(ipconfig | where {$_ -match 'IPv4.+\s(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})' } | out-null; $Matches[1])
として分解する
$env
環境変数を使用してホスト名を取得する別のバリアント:
Test-Connection -ComputerName $env:computername -count 1 | Select-Object IPV4Address
または、プロパティヘッダーなしでIPアドレスを返すだけの場合
(Test-Connection -ComputerName $env:computername -count 1).IPV4Address.ipaddressTOstring
この1つのライナーは、IPアドレスを提供します。
(Test-Connection -ComputerName $env:computername -count 1).ipv4address.IPAddressToString
変数に含めますか?
$IPV4=(Test-Connection -ComputerName $env:computername -count 1).ipv4address.IPAddressToString