Enkelt script för att visa nätverksadaptrars info i Powershell med GUI och knappar

Permalänk

Enkelt script för att visa nätverksadaptrars info i Powershell med GUI och knappar

jag behöver lite hjälp, jag tänkte se om någon har några färdiga scripts där man får upp ett fönster som skriver ut alla nätverksadaptrars namn samt sedan kan trycka på någon av dom adaptrarna för att se mac eller annan relevant information om adaptern.

om man bara kunde få in denna kod i ett GUI så hade det varit kanon!
Code origin: https://gallery.tech...ion-of-6d07766f

param (
[array]$arrComputer="$env:computername"
)

"`n"

Write-Host "Name| NetworkCard | IP | SUBNET | GateWay | MacADD | DNS " -ForegroundColor Green

foreach ( $Computer in $arrComputer ) {

$nwINFO = Get-WmiObject -ComputerName $Computer Win32_NetworkAdapterConfiguration | Where-Object { $_.IPAddress -ne $null } #| Select-Object DNSHostName,Description,IPAddress,IpSubnet,DefaultIPGateway,MACAddress,DNSServerSearchOrder | format-Table * -AutoSize
#| Select-Object DNSHostName,Description,IPAddress,IpSubnet,DefaultIPGateway,MACAddress,DNSServerSearchOrder
$nwServerName = $nwINFO.DNSHostName
$nwDescrip = $nwINFO.Description
$nwIPADDR = $nwINFO.IPAddress
$nwSUBNET = $nwINFO.IpSubnet
$nwGateWay = $nwINFO.DefaultIPGateway
$nwMacADD = $nwINFO.MACAddress
$nwDNS = $nwINFO.DNSServerSearchOrder
# Server/CompName |NetworkCard | IPAdress | SubnetMask| Gateway | MAC Address| DNS |
Write-Host "$nwServerName | $nwDescrip | $nwIPADDR | $nwSUBNET | $nwGateWay | $nwMacADD | $nwDNS " | ft *

}

Dold text

om det är för jobbig så kanske man kan göra något liknande fast för att se alla dator namn inom lokala nätverket samt kanske kunna pinga de datorer den hittade.

Mvh

Visa signatur

Ryzen 9950X3D [Cools with EKWB 2x 360mm XE/SE] | Asus Extreme X670E | ASUS RTX 5090 Astral LC Alphacool WB | Corsair HX1500i | G.Skill Neo 64GB 6000MHz (2x32GB) | MP700 Gen5 2TB NVME | 980/950/970 NVME 1TB/512GB/2TB | 6x 512GB 850PRO | 4x512GB NVME WD Black | 4x1TB NVME Raid 0 - 4x24TB Raid 10 Qnap (+Backblaze Backup) | LianLi O11 Dynamic XL | Main Screen: Samsung Neo G9 240Hz Ultra-Wide | AUX: LG IPS7 27" (x2) | LG CX 55" G-sync | 10 Gbit/s ISP (Bahnhof) Connection | Copyright©1996-2024 RaW-D-Coy Inc.™ All rights reserved ®

Permalänk
Medlem
Skrivet av RaW D Coy:

jag behöver lite hjälp, jag tänkte se om någon har några färdiga scripts där man får upp ett fönster som skriver ut alla nätverksadaptrars namn samt sedan kan trycka på någon av dom adaptrarna för att se mac eller annan relevant information om adaptern.

om man bara kunde få in denna kod i ett GUI så hade det varit kanon!
Code origin: https://gallery.tech...ion-of-6d07766f

param (
[array]$arrComputer="$env:computername"
)

"`n"

Write-Host "Name| NetworkCard | IP | SUBNET | GateWay | MacADD | DNS " -ForegroundColor Green

foreach ( $Computer in $arrComputer ) {

$nwINFO = Get-WmiObject -ComputerName $Computer Win32_NetworkAdapterConfiguration | Where-Object { $_.IPAddress -ne $null } #| Select-Object DNSHostName,Description,IPAddress,IpSubnet,DefaultIPGateway,MACAddress,DNSServerSearchOrder | format-Table * -AutoSize
#| Select-Object DNSHostName,Description,IPAddress,IpSubnet,DefaultIPGateway,MACAddress,DNSServerSearchOrder
$nwServerName = $nwINFO.DNSHostName
$nwDescrip = $nwINFO.Description
$nwIPADDR = $nwINFO.IPAddress
$nwSUBNET = $nwINFO.IpSubnet
$nwGateWay = $nwINFO.DefaultIPGateway
$nwMacADD = $nwINFO.MACAddress
$nwDNS = $nwINFO.DNSServerSearchOrder
# Server/CompName |NetworkCard | IPAdress | SubnetMask| Gateway | MAC Address| DNS |
Write-Host "$nwServerName | $nwDescrip | $nwIPADDR | $nwSUBNET | $nwGateWay | $nwMacADD | $nwDNS " | ft *

}

Dold text

om det är för jobbig så kanske man kan göra något liknande fast för att se alla dator namn inom lokala nätverket samt kanske kunna pinga de datorer den hittade.

Mvh

Det finns lite sätt att få in det i ett GUI men att sedan hämta mer och mer information baserat på val tycker jag blir lite svårare. Kanske någon annan som vet.

Du kan i alla fall använda koden nedan för att lista upp saker i boxar och sedan se om du kan leka vidare med detta.

[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")

$nwINFO = Get-WmiObject -ComputerName $Computer Win32_NetworkAdapterConfiguration | Where-Object { $_.IPAddress -ne $null } #| Select-Object DNSHostName,Description,IPAddress,IpSubnet,DefaultIPGateway,MACAddress,DNSServerSearchOrder | format-Table * -AutoSize
$nwServerName = $nwINFO.DNSHostName
$nwDescrip = $nwINFO.Description
$nwIPADDR = $nwINFO.IPAddress
$nwSUBNET = $nwINFO.IpSubnet
$nwGateWay = $nwINFO.DefaultIPGateway
$nwMacADD = $nwINFO.MACAddress
$nwDNS = $nwINFO.DNSServerSearchOrder

$objForm = New-Object System.Windows.Forms.Form
$objForm.Text = "Network Server Name"
$objForm.Size = New-Object System.Drawing.Size(600,540)
$objForm.StartPosition = "CenterScreen"

$objForm.KeyPreview = $True
$objForm.Add_KeyDown({if ($_.KeyCode -eq "Enter")
{$x=$objTextBox.Text;$objForm.Close()}})
$objForm.Add_KeyDown({if ($_.KeyCode -eq "Escape")
{$objForm.Close()}})

$OKButton = New-Object System.Windows.Forms.Button
$OKButton.Location = New-Object System.Drawing.Size(490,460)
$OKButton.Size = New-Object System.Drawing.Size(75,23)
$OKButton.Text = "OK"
$OKButton.Add_Click({$x=$objTextBox.Text;$u = $objTextBox2.Text; $objForm.Close()})
$objForm.Controls.Add($OKButton)

$objTextBox = New-Object System.Windows.Forms.ListBox
$objTextBox.Location = New-Object System.Drawing.Size(10,40)
$objTextBox.Size = New-Object System.Drawing.Size(270,20)
$objTextBox.Height = 200
$objForm.Controls.Add($objTextBox)

$objTextBox2 = New-Object System.Windows.Forms.ListBox
$objTextBox2.Location = New-Object System.Drawing.Size(300,40)
$objTextBox2.Size = New-Object System.Drawing.Size(270,20)
$objTextBox2.Height = 200
$objForm.Controls.Add($objTextBox2)

$objTextBox3 = New-Object System.Windows.Forms.ListBox
$objTextBox3.Location = New-Object System.Drawing.Size(10,250)
$objTextBox3.Size = New-Object System.Drawing.Size(560,20)
$objTextBox3.Height = 200
$objForm.Controls.Add($objTextBox3)

$nwServerName | ForEach-Object {[void] $objTextBox.Items.Add($_)}
$nwDescrip | ForEach-Object {[void] $objTextBox2.Items.Add($_)}
$nwIPADDR | ForEach-Object {[void] $objTextBox3.Items.Add($_)}
#$nwSUBNET | ForEach-Object {[void] $objListBox.Items.Add($_)}
#$nwGateWay
#$nwMacADD
#$nwDNS

$objForm.Topmost = $True

$objForm.Add_Shown({$objForm.Activate()})
[void] $objForm.ShowDialog()

Dold text

Jag har själv byggt en GUI-kontrollpanel som jag använder på jobb, men den kallar olika script bara sedan som den kör utan GUI. Funktion framför utseende

#powershell #ps1 #script

Visa signatur

🟢 Main: R9 9900X3D | Strix B850-I | 64GB | RX9070 | Samsung C49RG9
🔵 unRaid: Ryzen5 2700X | B450M DS3H | 32GB
🟠 Tfn: Google Pixel 7 Lime Green

-:| @ eller citera för svar |:-