min.6max.30
Goto Top

Powershell Script Fehler und Bitte Warten Dialog

Hallo ihr lieben,

ich habe mir ein kleines Script zusammen geschrieben mit welchem ich meine Netzwerkadapter steuere.
Ich glaube das Bild erklärt ganz gut was das Tool macht:
02-02-_2024_10-16-07

Bei jeder Änderung soll außerdem die Button Farbe geändert werden.
Grün für AN bzw TRIFFT ZU
Rot für AUS bzw TRIFFT NICHT ZU

Der Button Färben hat nur Testgründe

Jetzt habe ich hier 2 Probleme:

1) In der ISE funktioniert das Prima mit der Function faerb()
Wenn ich das Script aber selbst ausführe bekomme ich den Fehler:
faerb : Die Benennung "faerb" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens,   
oder ob der Pfad korrekt ist (sofern enthalten), und wiederholen Sie den Vorgang.
In C:\scripte\Toogle Network.ps1:109 Zeichen:1
+ faerb
+ ~~~~~
    + CategoryInfo          : ObjectNotFound: (faerb:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
 

2) Das aktivieren und deaktivieren dauert schon mal etwas, gerade das aktivieren des WLAN Adapters.
Und wenn das erledigt ist muss ich trotzdem noch ein "Sleep" einfügen weil sonst die Farbänderung des Buttons nicht funktioniert.
Unterm Strich funktioniert so zwar alles aber eigentlich hätte ich gern so eine "Adapter wird umgeschaltet" Meldung, mit zum Beispiel einem "Ladebalken"
Quasi sowas:
02-02-_2024_10-28-54
Hab aber keine Ahnung wie ich das umsetze...

Hier mal mein Code:
Add-Type -AssemblyName System.Windows.Forms

$adapter1 = "Ethernet 4"  
$adapter2 = "WLAN"  
$buttonfont = "Arial Narrow"  
$buttonfontsize = 11

# Erstellen eines neuen Formulars
$form = New-Object System.Windows.Forms.Form
$form.Text = "NetAdapter-Tool"  
$form.Size = New-Object System.Drawing.Size(300,300)
$form.StartPosition = "CenterScreen"  
$form.FormBorderStyle = "FixedDialog"  

# Erstellen der Buttons
$button1 = New-Object System.Windows.Forms.Button
$button1.Font = New-Object System.Drawing.Font($buttonfont,$buttonfontsize,[System.Drawing.FontStyle]::Bold)
$button1.Forecolor = 'White'  
$button1.Location = New-Object System.Drawing.Point(50,30)
$button1.Size = New-Object System.Drawing.Size(200,30)
$button1.Text = "LAN AN/AUS"  
$button1.Add_Click({

    $inputStr = netsh interface show interface $adapter1
    $bspStr =  $inputStr -match "aktiviert"  

        If ($bspStr -like "*Aktiviert*" -and $bspStr -notlike "*Deaktiviert*" )  
        {
        netsh interface set interface $adapter1 admin=disable
        write-Host "LAN wurde deaktiviert."  
        } else {
        netsh interface set interface $adapter1 admin=enable
        Write-Host "LAN wurde aktiviert."  
        }
Start-Sleep -Seconds 4
    faerb

})

$button2 = New-Object System.Windows.Forms.Button
$button2.Font = New-Object System.Drawing.Font($buttonfont,$buttonfontsize,[System.Drawing.FontStyle]::Bold)
$button2.Location = New-Object System.Drawing.Point(50,70)
$button2.Forecolor = 'White'  
$button2.Size = New-Object System.Drawing.Size(200,30)
$button2.Text = "WLAN AN/AUS"  
$button2.Add_Click({

    $inputStr = netsh interface show interface $adapter2
    $bspStr =  $inputStr -match "aktiviert"  

    If ($bspStr -like "*Aktiviert*" -and $bspStr -notlike "*Deaktiviert*" ) {  
        netsh interface set interface $adapter2 admin=disable
        Write-Host "WLAN wurde deaktiviert."  
    } else {
        netsh interface set interface $adapter2 admin=enable
        Write-Host "WLAN wurde aktiviert."  
    }

    Start-Sleep -Seconds 4
    faerb
})

$button3 = New-Object System.Windows.Forms.Button
$button3.Font = New-Object System.Drawing.Font($buttonfont,$buttonfontsize,[System.Drawing.FontStyle]::Bold)
$button3.Location = New-Object System.Drawing.Point(50,110)
$button3.Forecolor = 'White'  
$button3.Size = New-Object System.Drawing.Size(200,30)
$button3.Text = "LAN aus WLAN an"  
$button3.Add_Click({
    netsh interface set interface $adapter1 admin=disable
    netsh interface set interface $adapter2 admin=enable
    Write-Host "Lan wurde deaktiviert & WLAN aktiviert."  
Start-Sleep -Seconds 4
    faerb
})

$button4 = New-Object System.Windows.Forms.Button
$button4.Font = New-Object System.Drawing.Font($buttonfont,$buttonfontsize,[System.Drawing.FontStyle]::Bold)
$button4.Location = New-Object System.Drawing.Point(50,150)
$button4.Forecolor = 'White'  
$button4.Size = New-Object System.Drawing.Size(200,30)
$button4.Text = "WLAN aus LAN an"  
$button4.Add_Click({
    netsh interface set interface $adapter1 admin=enable
    netsh interface set interface $adapter2 admin=disable
    Write-Host "Lan wurde aktiviert & WLAN deaktiviert."  
Start-Sleep -Seconds 4
    faerb
})


$button5 = New-Object System.Windows.Forms.Button
$button5.Font = New-Object System.Drawing.Font($buttonfont,$buttonfontsize,[System.Drawing.FontStyle]::Bold)
$button5.Location = New-Object System.Drawing.Point(50,190)
$button5.Forecolor = 'White'  
$button5.Size = New-Object System.Drawing.Size(200,30)
$button5.Text = "Färben"  
$button5.BackColor = 'Goldenrod'  
$button5.Add_Click({
    faerb
})

# Hinzufügen der Buttons zum Formular
$form.Controls.Add($button1)
$form.Controls.Add($button2)
$form.Controls.Add($button3)
$form.Controls.Add($button4)
$form.Controls.Add($button5)
faerb

function faerb
{

$adapterstat1 = Get-NetAdapter -Name $adapter1
$adapterstat2 = Get-NetAdapter -Name $adapter2
Write-Host $adapterstat1.Status
Write-Host $adapterstat2.Status


            If ($($adapterstat1.Status) -ne "Disabled")  
            {
            $button1.BackColor = 'DarkGreen'  
            } else {
            $button1.BackColor = 'DarkRed'  
            }


            If ($($adapterstat2.Status) -ne "Disabled")  
            {
            $button2.BackColor = 'DarkGreen'  
            } else {
            $button2.BackColor = 'DarkRed'  
            }

           
            If ($($adapterstat2.Status) -ne "Disabled" -and ($($adapterstat1.Status) -eq "Disabled"))   
            {
            $button3.BackColor = 'DarkGreen'  
            } else {
            $button3.BackColor = 'DarkRed'  
            }


            If ($($adapterstat1.Status) -ne "Disabled" -and ($($adapterstat2.Status) -eq "Disabled"))   
            {
            $button4.BackColor = 'DarkGreen'  
            } else {
            $button4.BackColor = 'DarkRed'  
            }
}


# Anzeigen des Formulars
$form.ShowDialog() | Out-Null

Würde mich freuen wenn mir da jemand helfen könnte

Grüße

Content-ID: 61129182760

Url: https://administrator.de/contentid/61129182760

Ausgedruckt am: 22.11.2024 um 02:11 Uhr

Crusher79
Crusher79 02.02.2024 um 10:48:08 Uhr
Goto Top
min.6max.30
min.6max.30 02.02.2024 um 11:08:05 Uhr
Goto Top
Ah cool, gut zu wissen ich danke Dir!

Dann ist Problem No.1 schon mal gelöst face-smile
min.6max.30
min.6max.30 02.02.2024 um 11:32:05 Uhr
Goto Top
puh... guck ich mir an aber auf den ersten Blick wüsste ich nicht mal wie ich das in meinen Code integrieren soll, so tief bin ich dann in Powershell scripting nicht drin.
Vielen Dank auf jeden Fall für Deinen Beitrag.