Question [Fonction]Fonction Requête SSH
- Alan Pinard
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 77
- Remerciements reçus 0
il y a 13 ans 9 mois #5247
par Alan Pinard
Alan Pinard
Version A
[Fonction]Fonction Requête SSH a été créé par Alan Pinard
Bonjour à tous,
Cette fonction vous permet, à l'aide de plink.exe, d'envoyer des requête ssh et de récupérer le résultat s'il y a lieu.
Avant d'utiliser cette fonction il vous faudra télécharger plink.exe du project PuTTy.
[code:1]
Function VA-PlinkSSHCmd {
PARAM(
$Server,
$Username,
$Password,
$CmdFile,
$PlinkPath,
$PlinkCmd,
$pgpfp,
$Verbose,
$Session,
$Protocol,
$Port,
$Interactive,
$ForwardLocalPort,
$ForwardRemotePort,
$X,
$A,
$T,
$ProtocolVersion,
$Compression,
$KeyFile,
$Pageant,
$Tunnel
)
BEGIN{
If ($Server -eq $Null){Throw \"Veillez indiquer un adresse de serveur enutilisant l'option -Server <IP>\"}
ElseIf ($Username -eq $Null){Throw \"Aucun nom d'usager n'a été indiqué, utiliser l'option -Username <Nom_D'usager>\"}
ElseIf ($Password -eq $Null){Throw \"Aucun mot de passe n'a été indiqué, utiliser l'option -Password <MotDePasse>\"}
ElseIf ($PLinkPath -eq $Null){Throw \"Plink.exe est introuvable, utiliser l'option -PlinkPath <Drive:\Folder\plink.exe>\"}
ElseIf (($PlinkCmd -eq $Null) -and ($CmdFile -eq $Null)){Throw \"Aucune command ne sera envoyé à Plink.exe, utiliser l'option -PlinkCmd <ls /tmp> ou l'option -CmdFile <Drive:\Folder\CmdFile.txt>\"}
}
PROCESS {
$PlinkSShOptions = \"\"
$Password = $Password.Insert(0,\"-pw \"«»)
If($Verbose -ne $Null){
If($Verbose -eq \"Disable\"«») {
$Verbose = \"\"
}
ElseIf ($Verbose -eq \"Enable\"«») {
$Verbose = \"-v \"
$PlinkSShCmd.Length
$PlinkSShOptions.Insert(($PlinkSShOptions.Length), $Verbose)
}
Else {
Throw \"L'option -Verbose peut être [Enable | Disable]. Ex: -Verbose Disable\"
}
}
If($X -ne $Null){
If($X -eq \"Disable\"«») {
$X = \"-x \"
$PlinkSShOptions = $PlinkSShOptions.Insert($PlinkSShOptions.Length, $X)
}
ElseIf ($X -eq \"Enable\"«») {
$X = \"-X \"
$PlinkSShOptions = $PlinkSShOptions.Insert($PlinkSShCmd.Length, $X)
}
Else {Throw \"L'option -X peut être [Enable | Disable]. Ex: -X Disable\"}
}
If($A -ne $Null){
If($A -eq \"Disable\"«») {
$A = \"-a \"
$PlinkSShOptions = $PlinkSShOptions.Insert($PlinkSShOptions.Length, $A)
}
ElseIf ($A -eq \"Enable\"«») {
$A = \"-A \"
$PlinkSShOptions = $PlinkSShOptions.Insert($PlinkSShOptions.Length, $A)
}
Else {Throw \"L'option -A peut être [Enable | Disable]. Ex: -A Disable\"}
}
If($T -ne $Null){
If($T -eq \"Disable\"«») {
$T = \"-t \"
$PlinkSShOptions = $PlinkSShOptions.Insert($PlinkSShOptions.Length, $T)
}
ElseIf ($T -eq \"Enable\"«») {
$T = \"-T \"
$PlinkSShOptions = $PlinkSShOptions.Insert($PlinkSShOptions.Length, $T)
}
Else {Throw \"L'option -T peut être [Enable | Disable]. Ex: -T Disable\"}
}
If($ProtocolVersion -ne $Null){
If($ProtocolVersion -eq \"2\"«») {
$ProtocolVersion = \"-2 \"
$PlinkSShOptions = $PlinkSShOptions.Insert($PlinkSShOptions.Length, $ProtocolVersion)
}
ElseIf ($ProtocolVersion -eq \"1\"«») {
$ProtocolVersion = \"-1 \"
$PlinkSShOptions = $PlinkSShOptions.Insert($PlinkSShOptions.Length, $ProtocolVersion)
}
Else {Throw \"L'option -ProtocolVersion peut être [1 | 2]. Ex: -ProtocolVersion 2\"}
}
If($Compression -ne $Null){
If($Compression -eq \"Disable\"«») {
$Compression = $Null
}
ElseIf ($Compression -eq \"Enable\"«») {
$Compression = \"-C \"
$PlinkSShOptions = $PlinkSShOptions.Insert($PlinkSShOptions.Length, $Compression)
}
Else {Throw \"L'option -Compression peut être [Enable | Disable]. Ex: -Compression Disable\"}
}
If($Pageant -ne $Null){
If($Pageant -eq \"Disable\"«») {
$Pageant = \"-noagent \"
$PlinkSShOptions = $PlinkSShOptions.Insert($PlinkSShOptions.Length, $Pageant)
}
ElseIf ($Pageant -eq \"Enable\"«») {
$Pageant = \"-agent \"
$PlinkSShOptions = $PlinkSShOptions.Insert($PlinkSShOptions.Length, $Pageant)
}
Else {Throw \"L'option -Pageant peut être [Enable | Disable]. Ex: -Pageant Disable\"}
}
If($Interactive -ne $Null){
If($Interactive -eq \"Disable\"«») {
$Interactive = $Null
}
ElseIF ($Interactive -eq \"Enable\"«») {
$Interactive = \"-batch \"
$PlinkSShOptions = $PlinkSShOptions.Insert($PlinkSShOptions.Length, $Interactive)
}
Else {Throw \"L'option -Interactive peut être [Enable | Disable]. Ex: -Interactive Disable\"}
}
If($Port -ne $Null){
If($Port -eq \"22\"«»){$Port = $Null
}
Else {
$Port = \"-P $Port \"
$PlinkSShOptions = $PlinkSShOptions.Insert($PlinkSShOptions.Length, $Port)
Write-Host -ForegroundColor Yellow \"Port :\"$PlinkSShOptions
}
}
If($Protocol -ne $Null){
If($Protocol -eq \"ssh\"«»){
$Protocol = \"-ssh \"
$PlinkSShOptions = $PlinkSShOptions.Insert($PlinkSShOptions.Length, $Protocol)
}
ElseIf($Protocol -eq \"telnet\"«»){
$Protocol = \"-telnet \"
}
ElseIf($Protocol -eq \"rlogin\"«»){
$Protocol = \"-rlogon \"
$PlinkSShOptions = $PlinkSShOptions.Insert($PlinkSShOptions.Length, $Protocol)
}
ElseIf($Protocol -eq \"raw\"«»){
$Protocol = \"-raw \"
$PlinkSShOptions = $PlinkSShOptions.Insert($PlinkSShOptions.Length, $Protocol)
}
Else {
$Protocol = $Null
}
}
Write-Host $PlinkSShOptions
$PlinkSShCmd = $PlinkPath + \" \" + $PlinkSShOptions + \" \" + $Password + \" \" + $Username + \"@\" + $Server + \" \" + $PlinkCmd
Write-Host -ForegroundColor Cyan \"Commande envoyé par PLink.exe ->\"$PlinkSShCmd
$ConMsgCmd_PlinkSShCmd = Invoke-Expression -Command $PlinkSShCmd
}
END {
Return $ConMsgCmd_PlinkSShCmd
}
}
#VA-PlinkSSHCmd -PLinkPath \"Plink.exe\" -Interactive \"Enable\" -ProtocolVersion \"2\" -Username \"root\" -Password \"toor\" -Server \"server1.domain.com\" - \"md5sum /data/fichier.csv\" -Compression \"Enable\"
[/code:1]
Alan Pinard
Version A
Message édité par: Versiona, à: 3/09/09 00:39<br><br>Message édité par: Versiona, à: 3/09/09 05:01
Cette fonction vous permet, à l'aide de plink.exe, d'envoyer des requête ssh et de récupérer le résultat s'il y a lieu.
Avant d'utiliser cette fonction il vous faudra télécharger plink.exe du project PuTTy.
[code:1]
Function VA-PlinkSSHCmd {
PARAM(
$Server,
$Username,
$Password,
$CmdFile,
$PlinkPath,
$PlinkCmd,
$pgpfp,
$Verbose,
$Session,
$Protocol,
$Port,
$Interactive,
$ForwardLocalPort,
$ForwardRemotePort,
$X,
$A,
$T,
$ProtocolVersion,
$Compression,
$KeyFile,
$Pageant,
$Tunnel
)
BEGIN{
If ($Server -eq $Null){Throw \"Veillez indiquer un adresse de serveur enutilisant l'option -Server <IP>\"}
ElseIf ($Username -eq $Null){Throw \"Aucun nom d'usager n'a été indiqué, utiliser l'option -Username <Nom_D'usager>\"}
ElseIf ($Password -eq $Null){Throw \"Aucun mot de passe n'a été indiqué, utiliser l'option -Password <MotDePasse>\"}
ElseIf ($PLinkPath -eq $Null){Throw \"Plink.exe est introuvable, utiliser l'option -PlinkPath <Drive:\Folder\plink.exe>\"}
ElseIf (($PlinkCmd -eq $Null) -and ($CmdFile -eq $Null)){Throw \"Aucune command ne sera envoyé à Plink.exe, utiliser l'option -PlinkCmd <ls /tmp> ou l'option -CmdFile <Drive:\Folder\CmdFile.txt>\"}
}
PROCESS {
$PlinkSShOptions = \"\"
$Password = $Password.Insert(0,\"-pw \"«»)
If($Verbose -ne $Null){
If($Verbose -eq \"Disable\"«») {
$Verbose = \"\"
}
ElseIf ($Verbose -eq \"Enable\"«») {
$Verbose = \"-v \"
$PlinkSShCmd.Length
$PlinkSShOptions.Insert(($PlinkSShOptions.Length), $Verbose)
}
Else {
Throw \"L'option -Verbose peut être [Enable | Disable]. Ex: -Verbose Disable\"
}
}
If($X -ne $Null){
If($X -eq \"Disable\"«») {
$X = \"-x \"
$PlinkSShOptions = $PlinkSShOptions.Insert($PlinkSShOptions.Length, $X)
}
ElseIf ($X -eq \"Enable\"«») {
$X = \"-X \"
$PlinkSShOptions = $PlinkSShOptions.Insert($PlinkSShCmd.Length, $X)
}
Else {Throw \"L'option -X peut être [Enable | Disable]. Ex: -X Disable\"}
}
If($A -ne $Null){
If($A -eq \"Disable\"«») {
$A = \"-a \"
$PlinkSShOptions = $PlinkSShOptions.Insert($PlinkSShOptions.Length, $A)
}
ElseIf ($A -eq \"Enable\"«») {
$A = \"-A \"
$PlinkSShOptions = $PlinkSShOptions.Insert($PlinkSShOptions.Length, $A)
}
Else {Throw \"L'option -A peut être [Enable | Disable]. Ex: -A Disable\"}
}
If($T -ne $Null){
If($T -eq \"Disable\"«») {
$T = \"-t \"
$PlinkSShOptions = $PlinkSShOptions.Insert($PlinkSShOptions.Length, $T)
}
ElseIf ($T -eq \"Enable\"«») {
$T = \"-T \"
$PlinkSShOptions = $PlinkSShOptions.Insert($PlinkSShOptions.Length, $T)
}
Else {Throw \"L'option -T peut être [Enable | Disable]. Ex: -T Disable\"}
}
If($ProtocolVersion -ne $Null){
If($ProtocolVersion -eq \"2\"«») {
$ProtocolVersion = \"-2 \"
$PlinkSShOptions = $PlinkSShOptions.Insert($PlinkSShOptions.Length, $ProtocolVersion)
}
ElseIf ($ProtocolVersion -eq \"1\"«») {
$ProtocolVersion = \"-1 \"
$PlinkSShOptions = $PlinkSShOptions.Insert($PlinkSShOptions.Length, $ProtocolVersion)
}
Else {Throw \"L'option -ProtocolVersion peut être [1 | 2]. Ex: -ProtocolVersion 2\"}
}
If($Compression -ne $Null){
If($Compression -eq \"Disable\"«») {
$Compression = $Null
}
ElseIf ($Compression -eq \"Enable\"«») {
$Compression = \"-C \"
$PlinkSShOptions = $PlinkSShOptions.Insert($PlinkSShOptions.Length, $Compression)
}
Else {Throw \"L'option -Compression peut être [Enable | Disable]. Ex: -Compression Disable\"}
}
If($Pageant -ne $Null){
If($Pageant -eq \"Disable\"«») {
$Pageant = \"-noagent \"
$PlinkSShOptions = $PlinkSShOptions.Insert($PlinkSShOptions.Length, $Pageant)
}
ElseIf ($Pageant -eq \"Enable\"«») {
$Pageant = \"-agent \"
$PlinkSShOptions = $PlinkSShOptions.Insert($PlinkSShOptions.Length, $Pageant)
}
Else {Throw \"L'option -Pageant peut être [Enable | Disable]. Ex: -Pageant Disable\"}
}
If($Interactive -ne $Null){
If($Interactive -eq \"Disable\"«») {
$Interactive = $Null
}
ElseIF ($Interactive -eq \"Enable\"«») {
$Interactive = \"-batch \"
$PlinkSShOptions = $PlinkSShOptions.Insert($PlinkSShOptions.Length, $Interactive)
}
Else {Throw \"L'option -Interactive peut être [Enable | Disable]. Ex: -Interactive Disable\"}
}
If($Port -ne $Null){
If($Port -eq \"22\"«»){$Port = $Null
}
Else {
$Port = \"-P $Port \"
$PlinkSShOptions = $PlinkSShOptions.Insert($PlinkSShOptions.Length, $Port)
Write-Host -ForegroundColor Yellow \"Port :\"$PlinkSShOptions
}
}
If($Protocol -ne $Null){
If($Protocol -eq \"ssh\"«»){
$Protocol = \"-ssh \"
$PlinkSShOptions = $PlinkSShOptions.Insert($PlinkSShOptions.Length, $Protocol)
}
ElseIf($Protocol -eq \"telnet\"«»){
$Protocol = \"-telnet \"
}
ElseIf($Protocol -eq \"rlogin\"«»){
$Protocol = \"-rlogon \"
$PlinkSShOptions = $PlinkSShOptions.Insert($PlinkSShOptions.Length, $Protocol)
}
ElseIf($Protocol -eq \"raw\"«»){
$Protocol = \"-raw \"
$PlinkSShOptions = $PlinkSShOptions.Insert($PlinkSShOptions.Length, $Protocol)
}
Else {
$Protocol = $Null
}
}
Write-Host $PlinkSShOptions
$PlinkSShCmd = $PlinkPath + \" \" + $PlinkSShOptions + \" \" + $Password + \" \" + $Username + \"@\" + $Server + \" \" + $PlinkCmd
Write-Host -ForegroundColor Cyan \"Commande envoyé par PLink.exe ->\"$PlinkSShCmd
$ConMsgCmd_PlinkSShCmd = Invoke-Expression -Command $PlinkSShCmd
}
END {
Return $ConMsgCmd_PlinkSShCmd
}
}
#VA-PlinkSSHCmd -PLinkPath \"Plink.exe\" -Interactive \"Enable\" -ProtocolVersion \"2\" -Username \"root\" -Password \"toor\" -Server \"server1.domain.com\" - \"md5sum /data/fichier.csv\" -Compression \"Enable\"
[/code:1]
La pièce jointe VA_PlinkSSHCmd.ps1 est absente ou indisponible
Alan Pinard
Version A
Message édité par: Versiona, à: 3/09/09 00:39<br><br>Message édité par: Versiona, à: 3/09/09 05:01
Alan Pinard
Version A
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- Robin Lemesle
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 260
- Remerciements reçus 0
il y a 13 ans 8 mois #5314
par Robin Lemesle
Robin MVP PowerShell
Réponse de Robin Lemesle sur le sujet Re:[Fonction]Fonction Requête SSH
Whoua, pas mal. je t'avoue que je n'ai pas testé. Peux-tu nous donner un exemple d'utilisation ?
Robin
Robin
Robin MVP PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Alan Pinard
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 77
- Remerciements reçus 0
il y a 11 ans 9 mois #10131
par Alan Pinard
Alan Pinard
Version A
Réponse de Alan Pinard sur le sujet Re:[Fonction]Fonction Requête SSH
Bonjour Robin,
L'exemple est a la fin du script:
[code:1]
#VA-PlinkSSHCmd -PLinkPath \"Plink.exe\" -Interactive \"Enable\" -ProtocolVersion \"2\" -Username \"root\" -
Password \"toor\" -Server \"server1.domain.com\" - \"md5sum /data/fichier.csv\" -Compression \"Enable\"
[/code:1]
L'exemple est a la fin du script:
[code:1]
#VA-PlinkSSHCmd -PLinkPath \"Plink.exe\" -Interactive \"Enable\" -ProtocolVersion \"2\" -Username \"root\" -
Password \"toor\" -Server \"server1.domain.com\" - \"md5sum /data/fichier.csv\" -Compression \"Enable\"
[/code:1]
Alan Pinard
Version A
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.040 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Contributions à la communauté
- [Fonction]Fonction Requête SSH