offline/online mit Verknüpfung nur 1x möglich

Mit A (Ja, alle) bestätigen
 
Gemacht. Hab Datei in Powershell ISE gestartet. Sie läuft und es kommt LAN Verbindung aktivieren bzw. deaktivieren und in der Ausführung trennt sich bzw aktiviert sich auch das Internet. Und wie würde es jetzt weitergehen?
 
0karsten schrieb:
Sie läuft und es kommt LAN Verbindung aktivieren bzw. deaktivieren und in der Ausführung trennt sich bzw aktiviert sich auch das Internet.
Sehr gut. Ist das das was du willst?
Du kannst jetzt zukünftig das Skript mit Rechtsklick "Mit Powershell ausführen" direkt starten.
 
Aha. So läuft das. Das erste mal, dass ich so etwas gemacht habe. Danke dir.

Mit Toggle (Beitrag 17) meinte ich etwas anderes - EINEN Umschalter zwischen 2 Zuständen. Eigentlich das, wofür die windowseigende Ethernet - Verknüpfung gedacht ist, was sie aber offensichtlich nicht kann. Nun weißt du bestimmt besser, ob die 2 bat-Dateien sich in eine Datei bringen lassen und der aktuelle Zustand erkannt und der Andere ausgeführt wird. Aber, ich glaube weiter oben hatten wir das schon probiert ...
 
Ich kann später probieren, ob sich das mit einem Toogle realisieren lässt.
Mit PowerShell lässt sich mehr herausholen als mit einer Batchdatei.
 
Das beträfe die Bat - Dateien aus Beitrag 15.
Na klar, lass dir Zeit. Der Weg ist länger als ich gedacht habe ...
 
Ich habe hier auch etwas im Angebot.
Es ist ein PS-Skript, das ich in eine ausführbare Datei (.exe) konvertiert habe.

Das hat den Vorteil, dass man keine PS-Ausführungsrichtlinien ändern und beachten muss.

Man muss Adminrechte im System haben.
Nach dem Start wird geprüft, ob eine Verbindung ins Internet besteht. Dementsprechend lautet der Text auf der Schaltfläche (Trennen oder Verbinden).
Ist die Verbindung aktiv, wird sie durch Klick auf den Button getrennt. Ist sie getrennt, wird sie durch Klick auf den Button aktiviert.
Hält man den Mauszeiger über den Button, wird der Status der Verbindung angezeigt.

Es handelt sich um ein ganz simples Tool, ohne viel Schnick-Schnack und es gewinnt auch keinen Schönheitspreis.
Nach dem Download und vor dem Entpacken der NTW.zip muss die Datei sehr wahrscheinlich erst "entblockt" werden. (Rechte Maustaste -> Eigenschaften -Zulassen anhaken -Übernehmen)
Das Tool ist sofort startklar, ohne Installation.

Screenshot 2024-11-19 000203.png
 

Anhänge

  • Gefällt mir
Reaktionen: Crisser67
LotusXXL schrieb:
Ich habe hier auch etwas im Angebot.
Auf den Rechner lässt sie sich nicht downloaden, weil angeblich Virus. Nun habe ich sie mir erst auf das Smartphone gedownloadet. Dann das Smartphone mit dem Rechner verbunden und sie auf das Desktop gezogen und rechts geklickt. Zulassen an Haken ist nicht zu finden. Die ZIP-Datei verschwindet dann auch sehr schnell vom Desktop automatisch, so dass ich nicht weiter probieren kann .
 
Es handel sich um einen falschen Alarm. Die Datei ist auf jeden Fall virenfrei.
Du musst die Datei im AV-Programm zulassen.
 
  • Gefällt mir
Reaktionen: Crisser67
LotusXXL schrieb:
Du musst die Datei im AV-Programm zulassen.
Wie mache ich denn das? Das ist wieder Neuland für mich.
Ergänzung ()

Irgendwie wird heute nicht mein Tag. 🤔
Ergänzung ()

Nun habe ich sie im AV-Programm hinzugefügt. Sie lässt sich trotzdem nicht ausführen.
 

Anhänge

  • 17319976047741197208052.jpg
    17319976047741197208052.jpg
    2,6 MB · Aufrufe: 5
  • 17319976513951114395357.jpg
    17319976513951114395357.jpg
    4 MB · Aufrufe: 5
  • 17319985082691652763517.jpg
    17319985082691652763517.jpg
    3,7 MB · Aufrufe: 5
Zuletzt bearbeitet:
Hm, merkwürdig. Hier funktioniert das Teil ohne Probleme, sowohl unter Windows 10, als auch unter Windows 11 24H2. Gibt es die Möglichkeit, die Datei außerhalb des Windows-Systems zu speichern und auszuführen?

Nachfolgend der Code des Powershell-Skripts und im Anhang die entsprechende gezippte PS-Datei "NTWps.zip", darin enthalten ist die "NTWps.ps1".

Hier ist der Code des Powershell-Skripts:
PowerShell:
Using Assembly System.Windows.Forms
Using Assembly System.Drawing
Using Namespace System.Windows.Forms
Using Namespace System.Drawing

$HideConsoleWindow = '[DllImport("user32.dll")]public static extern bool ShowWindow(IntPtr handle, int state);'
Add-Type -Name WPS -Member $HideConsoleWindow -Namespace CNS
[Void][CNS.WPS]::ShowWindow(([System.Diagnostics.Process]::GetCurrentProcess() | Get-Process).MainWindowHandle,0)

Set-PSReadlineOption -HistorySaveStyle SaveNothing

If($WPS = Get-Process | Where-Object -FilterScript {$_.ProcessName -Eq "powershell" -And $_.Id -Ne $PID} -EA 0){$WPS | Stop-Process -Force}

$ScriptPath = $PSScriptRoot
If(-Not$ScriptPath){$ScriptPath = [System.AppDomain]::CurrentDomain.BaseDirectory.TrimEnd('\')}

$ErrorActionPreference = 'SilentlyContinue'

$Font = @{
    Vdn12B = [Font]::New('Verdena',12,[FontStyle]'Bold')
    Vdn14B = [Font]::New('Verdena',14,[FontStyle]'Bold')
}

Function Network
{
    $NTW_WinForm = New-Object System.Windows.Forms.Form -Property @{
        ClientSize = '250,175'
        StartPosition = 'CenterScreen'
        FormBorderStyle = 'None'
        BackColor = '255,30,70,30'
        MinimizeBox = $False
        MaximizeBox = $False
        ControlBox = $False
        KeyPreview = $True
        ShowInTaskBar = $False
        Topmost = $True
    }
    
    $NTW_ToolTipp = New-Object System.Windows.Forms.ToolTip -Property @{
        IsBalloon = $False
        InitialDelay = 500
        ReshowDelay = 500
        ShowAlways = $True
        BackColor = '255,30,30,30'
        ForeColor = 'Lime'
    }
    
    $NTW_LabelExit = New-Object System.Windows.Forms.Label -Property @{
        Location = '210,5'
        Size = '35,35'
        AutoSize = $False
        Font = $Font.Vdn14B
        Text = "X"
        TextAlign = 'MiddleCenter'
        BackColor = '255,30,70,30'
        ForeColor = 'White'
        Cursor = 'Hand'
        Add_MouseHover = {$NTW_LabelExit.BackColor = 'Red'}
        Add_MouseLeave = {$NTW_LabelExit.BackColor = '255,30,70,30'}
        Add_Click = {
            $NTW_WinForm.Hide()
            [System.Environment]::Exit(0)
        }
    }
    
    $NTW_LabelBttn = New-Object System.Windows.Forms.Label -Property @{
        Location = '50,70'
        Size = '150,55'
        AutoSize = $False
        Font = $Font.Vdn12B
        Text = ""
        TextAlign = 'MiddleCenter'
        BackColor = 'Black'
        ForeColor = 'Silver'
        Cursor = 'Hand'
        Add_MouseHover = {$NTW_LabelBttn.ForeColor = 'Lime'}
        Add_MouseLeave = {$NTW_LabelBttn.ForeColor = 'Silver'}
        Add_Click = {
            $NetAdptName = (Get-NetAdapter).Name
            If ($NTW_LabelBttn.Text -Eq 'Trennen')
            {
                $NTW_LabelBttn.Text = 'Verbinden'
                Disable-NetAdapter "$NetAdptName" -Confirm:$False
                $NTW_ToolTipp.SetToolTip($NTW_LabelBttn, "Internetverbindung ist getrennt!`nKlicken, um Verbindung zu aktivieren.")
            }
            ElseIf ($NTW_LabelBttn.Text -Eq 'Verbinden')
            {
                $NTW_LabelBttn.Text = 'Trennen'
                Enable-NetAdapter "$NetAdptName" -Confirm:$False
                $NTW_ToolTipp.SetToolTip($NTW_LabelBttn, "Internetverbindung ist aktiv!`nKlicken, um Verbindung zu trennen.")
            }
        }
    }
    
    $NTW_GrBoxBttn = New-Object System.Windows.Forms.GroupBox -Property @{
        Location = '47,62'
        Size = '155,65'
        AutoSize = $False
    }
    
    [Void]$NTW_WinForm.Controls.AddRange(@(
    $NTW_LabelExit,
    $NTW_LabelBttn,
    $NTW_GrBoxBttn
    ))
    
    $Script:NetAdptMCSt = (Get-NetAdapter).MediaConnectionState
    If ($NetAdptMCSt -Eq 'Connected')
    {
        $NTW_LabelBttn.Text = 'Trennen'
        $NTW_ToolTipp.SetToolTip($NTW_LabelBttn, "Internetverbindung ist aktiv!`nKlicken, um Verbindung zu trennen.")
    }
    ElseIf ($NetAdptMCSt -Ne 'Connected')
    {
        $NTW_LabelBttn.Text = 'Verbinden'
        $NTW_ToolTipp.SetToolTip($NTW_LabelBttn, "Internetverbindung ist getrennt!`nKlicken, um Verbindung zu aktivieren.")
    }
    
    $NTW_ToolTipp.SetToolTip($NTW_LabelExit, "Anwendung beenden`nTaste 'ESC'")
    
    $NTW_WinForm.Add_KeyDown(
    {
        If ($_.KeyCode -Eq 'Escape')
        {
            $NTW_WinForm.Hide()
            [System.Environment]::Exit(0)
        }
    })
    
    [Void]$NTW_WinForm.ShowDialog()
}

If((New-Object System.Security.Principal.WindowsPrincipal([System.Security.Principal.WindowsIdentity]::GetCurrent())).IsInRole(544))
{
    Network | Out-Null
}
Else
{
    $WpsExist = (Get-ChildItem -File "$ScriptPath\NTWps.ps1").Name
    If ($WpsExist -Eq "NTWps.ps1")
    {
        $ElevatedFile = "$ScriptPath\$WpsExist"
        $ElevatedProcess = New-Object System.Diagnostics.ProcessStartInfo "$ElevatedFile";
        $ElevatedProcess.Verb = "RunAs"
        [System.Diagnostics.Process]::Start($ElevatedProcess)
        [System.Environment]::Exit(0)
    }
}
 

Anhänge

LotusXXL schrieb:
Hm, merkwürdig. Hier funktioniert das Teil ohne Probleme, sowohl unter Windows 10, als auch unter Windows 11 24H2.
Also das "Zulassen", Auspacken, Ausführen der ersten Version funzt.

Nur bewirkt das Knopfdrücken nichts, auch als Admin gestartet.
 
LotusXXL schrieb:
Gibt es die Möglichkeit, die Datei außerhalb des Windows-Systems zu speichern und auszuführen?
Ich hab jetzt vom USB Stick gestartet. Geht aber auch nicht. Es wird die selbe Meldung angezeigt.
Ergänzung ()

Ich habe jetzt deinen Skript von #52 in PowerShell ISE geladen, alle Rechte erteilt und dann mit PowerShell gestartet. Es gibt kein Wechsel Internet on/off.
 
Zuletzt bearbeitet:
Zurück
Oben