Чтение CSV-файла в скрипте PowerShell - PullRequest
0 голосов
/ 26 января 2020

Я создаю сценарий Powershell. Мой CSV-файл выглядит следующим образом:

ServerName,IPAddress,SubnetMask,MACAddress
Server01,10.0.0.1,255.0.0.0,00:00:00:00:00:01
Server02,10.0.0.2,255.0.0.0,00:00:00:00:00:02
Server03,10.0.0.3,255.0.0.0,00:00:00:00:00:03

Я попробовал приведенную ниже команду на одном сервере, а затем успешно назначил IP-адрес и маску подсети. Я застрял при запросе всех серверов по соответствующей MA C из файла CSV. Я хочу l oop для каждого сервера и соответствующего MA C, затем назначить IP-адрес и маску su bnet.

Могу ли я сделать это через CSV, или есть ли другой способ сделать это ?

$nic = Get-WmiObject -Class Win32_NetworkAdapterConfiguration -ComputerName server01 | 
    Where-Object { $_.MACAddress -eq "00:00:00:00:00:01" }
    $nic.EnableStatic($IPAddress,SubnetMask)

1 Ответ

0 голосов
/ 29 января 2020
$FileContent=@"
ServerName,IPAddress,SubnetMask,MACAddress
Server01,10.0.0.1,255.0.0.0,00:00:00:00:00:01
Server02,10.0.0.2,255.0.0.0,00:00:00:00:00:02
Server03,10.0.0.3,255.0.0.0,00:00:00:00:00:03
"@
#
# You can either export the text to a file and import it as csv
$FileContent | Out-File test.csv
$AllServers = Import-Csv test.csv -Delimiter ","
#
# You can also convert the text straight to csv
$AllServers = @()
$AllServers = $FileContent | ConvertFrom-csv -Delimiter ","
foreach ($Server in $AllServers)
  {
    $nic = Get-WmiObject -Class Win32_NetworkAdapterConfiguration -ComputerName $Server.ServerName | Where-Object { $_.MACAddress -eq "$($Server.MACAddress)"}
    Write-Host "$($Server.ServerName): $($nic.Description) will be assigned $($Server.IPAddress) and $($Server.SubnetMask)"
    #$nic.EnableStatic($Server.IPAddress,$Server.SubnetMask)
  }

Я также go для New-NetIPAddress , как предлагается в Массовая конфигурация IP с использованием CSV-входа

...