@atm87

Как занести в таблицу БД наименование компьютера, наименование ОС сопоставимому IP-адресу компьютера?

Есть цикл, который перебирает диапазон IP адресов:
$ipStart = '10.62.39.1'
$ipEnd = '10.62.39.16'

for ($x = $ipStart[3]; $x -le $ipEnd[3]; $x++)
{
    $ip = $ipStart[0], $ipStart[1], $ipStart[2], $x -join '.'
    $sql = "INSERT INTO computers (ip) VALUES ('$ip');"
    Invoke-DB -sql $sql
}

Далее, эти IP адреса заносятся в базу данных с помощью функции:
function Invoke-DB
{
	[CmdletBinding()]
	param (
		[Parameter(Mandatory)]
		[string]$sql
	)
	$cmd = New-Object Data.SqlClient.SqlCommand $sql, $conn;
	$cmd.ExecuteNonQuery() | Out-Null
}


Суть в том, что мне нужно занести в таблицу БД ещё и наименование компьютера, наименование ОС согласно IP-адреса.

Должно быть так:
10.62.39.1 | RS062039 | Windows 10
10.62.39.2 | RS062045 | Windows 10
10.62.39.3 | RS062048 | Windows 10

Думаю, есть строка запроса имени компьютера:
Get-ADComputer -identity SRV-DB01 -Properties * | FT Name

Как написать код, чтобы имя компа и имя ОС было совместимо с IP-адресом компьютера?
  • Вопрос задан
  • 247 просмотров
Пригласить эксперта
Ответы на вопрос 2
@MaxKozlov Куратор тега PowerShell
Если у вас рабочий DNS, вам достаточно использовать
[System.Net.Dns]::Resolve

PS > [System.Net.Dns]::Resolve('8.8.8.8')

HostName   Aliases AddressList
--------   ------- -----------
dns.google {}      {8.8.8.8, 8.8.4.4}


то есть ваше имя компа будет определяться как
[System.Net.Dns]::Resolve($ip).HostName
Ответ написан
@pumpkinm
имя компа
Resolve-DnsName $ipaddress

имя ОС
Get-WmiObject -Computer $ipaddress -Class Win32_OperatingSystem
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы