Как использовать указанное значение ячейки c в excel в качестве переменной в powershell - PullRequest
0 голосов
/ 21 апреля 2020

Я новичок в PowerShell, я искал другие решения и пробовал некоторые, но ни одно из решений не работает точно

Я надеюсь получить c информацию из листа Excel в надежде рабочую книгу в столбцах E72: 88 и G72: 82 сводной таблицы C: \ Users \ RH34322 \ Desktop \ test.xlsx, в которой есть предопределенные имена сетевых подключений, а также сетевой псевдоним описания -Interface ( это предопределено windows и не может быть изменено, поэтому мне нужно в таблице Excel проверить каждое соединение, затем вручную скопировать и вставить из списка соединений)

, где я могу использовать каждое значение ячейки как переменная, чтобы затем использовать эту информацию, чтобы затем переименовать NI C создать команду коммутатора и затем выделить IP-адрес.

В настоящее время я использую этот PowerShell для запуска наших HMI-сборок. У меня проблема в том, что windows всегда будет случайным образом назначать описание -interface каждый раз, когда я создаю новый HMI, поэтому мне нужно go через проверку. соединения, а затем изменить сценарий в зависимости от назначенных интерфейсов.

В идеале, если бы я мог использовать что-то похожее на приведенный ниже код, тогда это облегчило бы мою проблему, и я что-то упустил, если получаю сообщение с нулевым значением, когда я запускаю этот

#select excel file you want to read
$FilePath = "C:\Users\RH34322\Desktop\test.xlsx"
$SheetName = "Summary"

#create new excel COM object
$objExcel = New-Object -ComObject Excel.Application
$objExcel.Visible = $false

#open excel file
$wb = $excel.workbooks.open($filePath)

#select excel sheet to read data
$sheet = $wb.Worksheets.Item($sheetname)

#select Cells to read
$LocalName1 = $WorkSheet.Range("E72").Value(1)
$AdaptorName1 = $Worksheet.Range("G72").Value(1)
$LocalName2 = $WorkSheet.Range("E73").Value(1)
$AdaptorName2 = $Worksheet.Range("G73").Value(1)

# rename both scada ports then team then allocate ip address and subnet
Rename-NetAdapter -InterfaceDescription $AdaptorName1 -newname $LocalName1
Rename-NetAdapter -InterfaceDescription $AdaptorName2 -newname $LocalName2
NEW-NetSwitchTeam -name "TEAM_Onboard_A-Onboard_B_SCADA" -teammembers $LocalName1,$LocalName2
$interface = Get-NetIPInterface -InterfaceAlias "TEAM_Onboard_A-Onboard_B_SCADA" -AddressFamily IPv4
$interface | Remove-NetRoute -AddressFamily IPv4 -Confirm:$false
$Interface | New-NetIpAddress -IpAddress 172.216.22.1 -PrefixLength 28 -DefaultGateway 172.216.22.30




$excel.Quit()

#force stop Excel process
Stop-Process -Name EXCEL -Force 
#I have also tried 
$LocalName1 = $WorkSheet.Range("E72").Text
$AdaptorName1 = $Worksheet.Range("G72").Text
$LocalName2 = $WorkSheet.Range("E73").Text
$AdaptorName2 = $Worksheet.Range("G73").Text

, тогда вторая часть, если я смогу использовать диапазон ячеек, получает информацию из E72: 88 и G72: 82, а затем использует информацию здесь как переменную - Описание интерфейса, например, для G72, а затем для E72: -newname

, как часть сборки, мы тестируем соединения, затем вручную назначаем их в электронной таблице Excel, так как эта информация используется в последующих листах для чертежей и обзора конфигураций портов.

Может ли кто-нибудь помочь мне с этим, пожалуйста, спасибо, что я приложил снимок экрана листа с информацией, которую я хочу использовать в Power Shell и Power Shell, который я в настоящее время использую для переименования NI C и выделенный IP-адрес и имя, это работает, но я должен каждый раз менять описание -interface Information with in spread sheet i want to use

Powershell

# rename both scada ports then team then allocate ip address and subnet
Rename-NetAdapter -InterfaceDescription "Intel(R) I219-LM Gigabit Network 
Connection" -newname 
"Onboard_A_SCADA_Route1"
Rename-NetAdapter -InterfaceDescription "Intel(R) I210 Gigabit Network 
Connection" -newname "Onboard_B_SCADA_Route2"
NEW-NetSwitchTeam -name "TEAM_Onboard_A-Onboard_B_SCADA" -teammembers 
"Onboard_A_SCADA_Route1","Onboard_B_SCADA_Route2"
$interface = Get-NetIPInterface -InterfaceAlias "TEAM_Onboard_A- 
Onboard_B_SCADA" -AddressFamily IPv4
$interface | Remove-NetRoute -AddressFamily IPv4 -Confirm:$false
$Interface | New-NetIpAddress -IpAddress 172.216.22.1 -PrefixLength 28 - 
DefaultGateway 172.216.22.30
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...