import depuis ancien GitHub

This commit is contained in:
David Wuibaille
2025-10-31 08:38:13 +01:00
parent 6f3aeedc93
commit 6a2f2de58e
745 changed files with 178444 additions and 0 deletions

View File

@@ -0,0 +1,272 @@
# Load the Windows Forms assembly
Add-Type -AssemblyName System.Windows.Forms
# Create the form
$form = New-Object System.Windows.Forms.Form
$form.Text = 'Test Ports GUI'
$form.Size = New-Object System.Drawing.Size(500,500)
$form.StartPosition = 'CenterScreen'
$form.FormBorderStyle = [System.Windows.Forms.FormBorderStyle]::FixedSingle
$form.MaximizeBox = $false
# Create the label for target input
$labelTarget = New-Object System.Windows.Forms.Label
$labelTarget.Location = New-Object System.Drawing.Point(10,10)
$labelTarget.Size = New-Object System.Drawing.Size(480,20)
$labelTarget.Text = 'Target:'
$form.Controls.Add($labelTarget)
# Create the textbox for target input
$textboxTarget = New-Object System.Windows.Forms.TextBox
$textboxTarget.Location = New-Object System.Drawing.Point(10,30)
$textboxTarget.Size = New-Object System.Drawing.Size(460,20)
$form.Controls.Add($textboxTarget)
# Create the label for port selection
$labelPort = New-Object System.Windows.Forms.Label
$labelPort.Location = New-Object System.Drawing.Point(10,60)
$labelPort.Size = New-Object System.Drawing.Size(480,20)
$labelPort.Text = 'Port:'
$form.Controls.Add($labelPort)
# Create the combobox for port selection
$comboBoxPort = New-Object System.Windows.Forms.ComboBox
$comboBoxPort.Location = New-Object System.Drawing.Point(10,80)
$comboBoxPort.Size = New-Object System.Drawing.Size(460,20)
$comboBoxPort.DropDownStyle = 'DropDownList'
# Add the port options
$comboBoxPort.Items.AddRange(@('FTP','HTTP','SMB','LDAP','SQL','EPMtestCore','EPMtestClient','VNC','Synology'))
$form.Controls.Add($comboBoxPort)
# Create the button to trigger port testing
$button = New-Object System.Windows.Forms.Button
$button.Location = New-Object System.Drawing.Point(10,110)
$button.Size = New-Object System.Drawing.Size(460,20)
$button.Text = 'Test Port'
$button.BackColor = [System.Drawing.Color]::LightBlue
$button.ForeColor = [System.Drawing.Color]::Black
$button.Font = New-Object System.Drawing.Font("Arial", 10, [System.Drawing.FontStyle]::Bold)
$button.Add_MouseEnter({ $button.BackColor = [System.Drawing.Color]::RoyalBlue })
$button.Add_MouseLeave({ $button.BackColor = [System.Drawing.Color]::LightBlue })
$button.Add_Click({
$outputBox.Clear()
$progressBar.Value = 0
$progressBar.Maximum = $comboBoxPort.Items.Count
$result = Test-Ports -TargetHost $textboxTarget.Text -Protocol $comboBoxPort.SelectedItem.ToString()
foreach ($line in $result) {
$outputBox.AppendText("$line`r`n")
$progressBar.PerformStep()
}
$progressBar.Value = $progressBar.Maximum # Compléter la barre de progression
})
$form.Controls.Add($button)
# Créer le bouton pour déclencher le test de ping
$pingButton = New-Object System.Windows.Forms.Button
$pingButton.Location = New-Object System.Drawing.Point(10,140)
$pingButton.Size = New-Object System.Drawing.Size(460,20)
$pingButton.Text = 'Test Ping'
$pingButton.BackColor = [System.Drawing.Color]::LightBlue
$pingButton.ForeColor = [System.Drawing.Color]::Black
$pingButton.Font = New-Object System.Drawing.Font("Arial", 10, [System.Drawing.FontStyle]::Bold)
$pingButton.Add_MouseEnter({ $pingButton.BackColor = [System.Drawing.Color]::RoyalBlue })
$pingButton.Add_MouseLeave({ $pingButton.BackColor = [System.Drawing.Color]::LightBlue })
$pingButton.Add_Click({
$outputBox.Clear()
$progressBar.Value = 0
$pingResult = Test-Ping -TargetHost $textboxTarget.Text
$outputBox.AppendText($pingResult)
})
$form.Controls.Add($pingButton)
# Create the output console
$outputBox = New-Object System.Windows.Forms.TextBox
$outputBox.Multiline = $true
$outputBox.ScrollBars = 'Vertical'
$outputBox.Location = New-Object System.Drawing.Point(10,180)
$outputBox.Size = New-Object System.Drawing.Size(460,220)
$form.Controls.Add($outputBox)
# Créer la barre de progression
$progressBar = New-Object System.Windows.Forms.ProgressBar
$progressBar.Location = New-Object System.Drawing.Point(10, 420)
$progressBar.Size = New-Object System.Drawing.Size(460, 20)
$progressBar.Style = [System.Windows.Forms.ProgressBarStyle]::Continuous
$form.Controls.Add($progressBar)
# Function to test ports (Place your existing function here with slight modifications)
# Fonction pour tester le ping
function Test-Ping {
param (
[string]$TargetHost = "localhost"
)
try {
$ping = New-Object System.Net.NetworkInformation.Ping
$result = $ping.Send($TargetHost)
if ($result.Status -eq 'Success') {
return "Ping to $TargetHost successful: $($result.RoundtripTime)ms"
} else {
return "Ping to $TargetHost failed: $($result.Status)"
}
} catch {
return "Ping failed: $_"
}
}
function Test-Ports {
param (
[string]$TargetHost = "localhost",
[string]$Protocol = "FTP"
)
# Définir une liste de ports avec leurs descriptions
$FTP = @(
@{ Port = 20; Description = "FTP Data Transfer" },
@{ Port = 21; Description = "FTP Command Control"}
@{ Port = 22; Description = "SFTP" },
@{ Port = 990; Description = "FTPS Command Control (Explicit Mode)"},
@{ Port = 989; Description = "FTPS Data Transfert (Explicit Mode)" }
)
$HTTP = @(
@{ Port = 80; Description = "HTTP" },
@{ Port = 443; Description = "HTTPS"}
)
$SMB = @(
@{ Port = 139; Description = "SMB" },
@{ Port = 445; Description = "SMB"}
)
$VNC = @(
@{ Port = 5800; Description = "VNC"},
@{ Port = 5900; Description = "VNC (java)"}
)
$LDAP = @(
@{ Port = 389; Description = "LDAP standard" },
@{ Port = 636; Description = "LDAP sur SSL/TLS (LDAPS)" },
@{ Port = 3268; Description = "LDAP Query globales MS AD" },
@{ Port = 3269; Description = "LDAPS Query globales MS AD" },
@{ Port = 464; Description = "Kerberos - set/change password" },
@{ Port = 88; Description = "Kerberos - Authentification" },
@{ Port = 9389; Description = "AD DS Web Services" },
@{ Port = 53; Description = "DNS standard" },
@{ Port = 5353; Description = "mDNS (Multicast DNS)" }
)
$SQL= @(
@{ Port = 1433; Description = "SQL" }
)
$EPMtestClient = @(
@{ Port = 139; Description = "SMB" },
@{ Port = 445; Description = "SMB"},
@{ Port = 9593; Description = "Agent discovery, Software distribution"},
@{ Port = 9594; Description = "Agent discovery and management" },
@{ Port = 9595; Description = "Agent discovery and management"},
@{ Port = 33354; Description = "Peer Download"},
@{ Port = 33355; Description = "Peer Download"},
@{ Port = 33370; Description = "Peer Download"},
@{ Port = 33371; Description = "Peer Download"},
@{ Port = 44343; Description = "WS Remote Control" }
)
$EPMtestCore = @(
@{ Port = 80; Description = "HTTP" },
@{ Port = 443; Description = "HTTPS"},
@{ Port = 139; Description = "SMB" },
@{ Port = 445; Description = "SMB"},
@{ Port = 9593; Description = "Agent discovery, Software distribution"},
@{ Port = 9594; Description = "Agent discovery and management"},
@{ Port = 9595; Description = "Agent discovery and management"}
)
$SynologyNASPorts = @(
@{ Port = 5000; Description = "HTTP access" },
@{ Port = 5001; Description = "HTTPS access" },
@{ Port = 21; Description = "FTP access" },
@{ Port = 22; Description = "SSH access" },
@{ Port = 2049; Description = "NFS service" },
@{ Port = 445; Description = "SMB service" },
@{ Port = 5432; Description = "PostgreSQL database service" },
@{ Port = 3306; Description = "MySQL database service" },
@{ Port = 137; Description = "NetBIOS name service" },
@{ Port = 138; Description = "NetBIOS datagram service" },
@{ Port = 139; Description = "NetBIOS session service" },
@{ Port = 80; Description = "HTTP access (additional)" },
@{ Port = 443; Description = "HTTPS access (additional)" },
@{ Port = 873; Description = "rsync" },
@{ Port = 3260; Description = "iSCSI" },
@{ Port = 1194; Description = "OpenVPN service" },
@{ Port = 5353; Description = "DNS-SD service" },
@{ Port = 6690; Description = "Synology Cloud Station" },
@{ Port = 6881; Description = "BitTorrent service" },
@{ Port = 1900; Description = "UPnP/DLNA" }
)
# Résultats du tableau
$results = @()
# Sélectionner les ports en fonction du protocole
switch ($Protocol) {
"FTP" { $filteredPorts = $FTP }
"HTTP" { $filteredPorts = $HTTP }
"SMB" { $filteredPorts = $SMB }
"LDAP" { $filteredPorts = $LDAP }
"SQL" { $filteredPorts = $SQL }
"EPMtestClient" { $filteredPorts = $EPMtestClient }
"EPMtestCore" { $filteredPorts = $EPMtestCore }
"VNC" { $filteredPorts = $VNC }
"Synology" { $filteredPorts = $SynologyNASPorts }
}
$OriginalProgressPreference = $Global:ProgressPreference
$Global:ProgressPreference = 'SilentlyContinue'
# Mettre à jour la barre de progression
$progressBar.Value = 0
$progressBar.Maximum = $filteredPorts.Count
$progressBar.Step = 1
# Tester chaque port
foreach ($port in $filteredPorts) {
$testResult = Test-NetConnection -ComputerName $TargetHost -Port $port.Port -InformationLevel Quiet
#write-host "Test-NetConnection -ComputerName $TargetHost -Port $($port.Port)"
#write-host $testResult
$results += [PSCustomObject]@{
"Host" = $TargetHost
"Port" = $port.Port
"Description" = $port.Description
"Status" = if ($testResult -eq $true) { "Open" } else { "Closed" }
}
$progressBar.PerformStep() # Mettre à jour la barre de progression
}
$Global:ProgressPreference = $OriginalProgressPreference
$resultsText = @()
foreach ($result in $results) {
$Hostalign = $($result.Host).PadRight(30)
$Portalign = $($result.Port).ToString().PadRight(8)
$Statalign = $($result.Status).PadRight(8)
$Desralign = $($result.Description)
$resultsText += "$Portalign $Statalign $Desralign"
}
return $resultsText
}
# Show the form
$form.ShowDialog()

BIN
check-ports/readme.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

36
check-ports/readme.md Normal file
View File

@@ -0,0 +1,36 @@
# CheckPortGUI.ps1 — Simple Port Tester
Small PowerShell GUI to test **common ports** and **ICMP ping** against a target host. Uses `Test-NetConnection` under the hood and shows a per-port status with a progress bar.
![Screenshot](./readme.jpg)
## Requirements
- Windows PowerShell 5.1 (x64 recommended)
- Network access to the target
## Included checks
Dropdown protocols mapped to port sets:
- FTP (20, 21, 22, 989, 990)
- HTTP (80, 443)
- SMB (139, 445)
- LDAP/AD (389, 636, 3268, 3269, 464, 88, 9389, 53, 5353)
- SQL (1433)
- EPMtestCore (80, 443, 139, 445, 9593, 9594, 9595)
- EPMtestClient (139, 445, 9593, 9594, 9595, 33354, 33355, 33370, 33371, 44343)
- VNC (5800, 5900)
- Synology (5000, 5001, 21, 22, 2049, 445, 5432, 3306, 137, 138, 139, 80, 443, 873, 3260, 1194, 5353, 6690, 6881, 1900)
## Install
Save the script as `CheckPortGUI.ps1` in your working directory
## Run
```powershell
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\CheckPortGUI.ps1
```
## Usage
- Enter the target hostname or IP.
- Pick a protocol from the dropdown.
- Click “Test Port” to run all ports in that set (progress bar updates).
- Click “Test Ping” for an ICMP reachability check.
Results appear in the textbox (one line per port: Port, Status, Description).