Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1712 connectés 

  FORUM HardWare.fr
  Systèmes & Réseaux Pro
  Management du SI

  Script (PowerShell ?) et port knocking

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Script (PowerShell ?) et port knocking

n°147529
diablol
Posté le 23-06-2017 à 12:36:57  profilanswer
 


Bonjours a tous et merci d'avance de votre aide
 
Voilà, pour faire simple j'ai une application d'un poste secondaire (téléphone en l'occurence) qui communique via un port spécifique a une application sur mon Poste principal.
Le problème, c'est que l'application sur mon poste principal ne peux pas être lancé h24, c'est pourquoi j'essaye de créer un script Powershell (ou autre si vous préférez) de port knocking qui va attendre un paquet sur le port en question, et quand ce sera fait, va lancer l'application approprié et lui laisser la communication.
 
J'ai déjà (avec de l'aide) commencé un script Powershell  
 

Code :
  1. $Listener = [System.Net.Sockets.TcpListener]8080;
  2. while($true)
  3. {
  4.     $Listener.Start();
  5.     $client = $Listener.AcceptTcpClient();
  6.     Write-Host "Connecté, lancement de l'appli";
  7.     $client.Close();
  8.     $Listener.Stop();
  9.     Start-Process -FilePath "C:\Program Files (x86)\...\xxx.exe" -Wait
  10.     Start-Sleep -s 10;
  11. }

Ce script marche très bien, le problème, c'est que si l'appli PC est lancé manuellement (ce qui peut arriver), le script essayera de lancer un autre exe qui échouera, mais surtout le -wait ne sera pas pris en compte et dans ce cas, l'écoute active du port empêche toute communication entre les 2 appli. J'ai donc essayé

Code :
  1. while($true)
  2. {
  3.     while((Get-Process -Name xxx -ErrorAction SilentlyContinue) -ne $null)
  4.     {
  5.         Start-Sleep -s 10;
  6.     }
  7.     $Listener = [System.Net.Sockets.TcpListener]8080;
  8.     $Listener.Start();
  9.     $client = $Listener.AcceptTcpClient();
  10.     Write-Host "Connecté, lancement de l'appli";
  11.     $client.Close();
  12.     $Listener.Stop();
  13.     If ((Get-Process -Name xxx -ErrorAction SilentlyContinue) -eq $null)
  14.     {
  15.         Start-Process -FilePath "C:\Program Files (x86)\...\xxx.exe" -Wait
  16.         Start-Sleep -s 10;
  17.     } else {
  18.         Write-Host "appli déjà lancé"
  19.     }
  20. }


Mais visiblement, même quand le script est bloqué dans la 1ere boucle (car l'appli est déjà lancé), l'écoute reste active car la communication échoue en boucle...
le paramètre "-wait" a l'air de marcher pour mettre en pause l'écoute, mais je ne sais pas trop comment l'implémenter dans le cas ou l'appli est déjà lancé (sachant que je ne veux pas quitter l'appli si elle est déjà lancé)
 
Voilà, j'espère que vous pourrez m'aider parceque je ne suis pas très doué en scripting.
Merci d'avance de votre aide

mood
Publicité
Posté le 23-06-2017 à 12:36:57  profilanswer
 

n°147530
Modération
Posté le 23-06-2017 à 13:19:47  answer
 

Rien de pro, voir le topic en cat grand public


Aller à :
  FORUM HardWare.fr
  Systèmes & Réseaux Pro
  Management du SI

  Script (PowerShell ?) et port knocking

 

Sujets relatifs
Powershell & WINRM - Ne fonctionne pas depuis mon posteCopie répertoire via un script powershell sur plusieurs postes
DSR-1000AC Pb de port forwarding2Vlan sur un port Switch Managed
Désinstallation du pack office en réseau avec un scriptDifférence port 1/* et 2/*
Script apparence et performance Windows 10Ouvrir un port ?
SonicWall TZ300 - Ouvrir le port ssh 22 pour un Nas Synology 
Plus de sujets relatifs à : Script (PowerShell ?) et port knocking


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR