Question Module SSH
- SiSMik
- Auteur du sujet
- Hors Ligne
- Membre platinium
- Messages : 492
- Remerciements reçus 0
Dernier module en date ici
Il vous faut la dll qui correspond à votre .NET Framework sur le site sshnet.codeplex.com
Pour le framework 4.0 et pour le Framework 3.5 .
Une fois cette dll téléchargée (et déblockée pour la 4.0) il vous faut éditer la ligne suivante et remplacer le chemin par celui qui pointe vers votre dll.
[code:1]$AssemblyFile = 'D:\Powershell\dev\Renci.SshNet.4.0.dll'[/code:1]
Ensuite vous importez le module.
et après
Get-Help <votre commande>
Enjoy
[Edit 03/01/2012]: shoot du précédent module et ajout des explications concernant la dernière mouture<br><br>Message édité par: benduru, à: 3/01/13 19:44
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
- Messages : 6302
- Remerciements reçus 68
benduru écrit:
Moi m'sieu, moi j'en ai...Si vous avez des remarques ou des optimisations à proposer je suis évidement preneur
Le nom de module SSH est suffisant, la décompresion de l'archive ne demande rien d'autre comme manip.
Lors d'une premier installe, la vérification des prérequis ne serait pas du luxe.
Deux liens sur les conventions de nommage de PS, les verbes et les paramètres .ipmo ssh -verbose
COMMENTAIRES : Chargement du module à partir du chemin
« C:\Users\Laurent\Documents\WindowsPowerShell\Modules\ssh\ssh.psm1 ».
Exception lors de l'appel de « LoadFile » avec « 1 » argument(s) : « Le fichier spécifié est introuvable. (Exception de
HRESULT : 0x80070002) »
Au niveau de C:\Users\Laurent\Documents\WindowsPowerShell\Modules\ssh\ssh.psm1 : 34 Caractère : 32
+ [Reflection.Assembly]::LoadFile <<<< ('C:\Temp\Renci.SshNet35.dll') | out-null
+ CategoryInfo : NotSpecified: ( [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException
COMMENTAIRES : Importation de la fonction « Get-SSHFile ».
COMMENTAIRES : Importation de la fonction « Get-SSHList ».
COMMENTAIRES : Importation de la fonction « Invoke-SSHCommand ».
COMMENTAIRES : Importation de la fonction « New-SFTPSession ».
COMMENTAIRES : Importation de la fonction « New-SSHSession ».
AVERTISSEMENT : Certains noms de commandes importés contiennent des verbes non approuvés qui les rendent moins
détectables. Utilisez le paramètre Verbose pour plus d'informations ou tapez Get-Verb pour obtenir la liste des verbes
approuvés.
COMMENTAIRES : Le nom de commande « Put-SSHFile » contient un verbe non approuvé qui le rend moins détectable. Les
verbes de remplacement suggérés sont « Send, Write ».
COMMENTAIRES : Importation de la fonction « Put-SSHFile ».
COMMENTAIRES : Importation de la fonction « Remove-SFTPSession ».
COMMENTAIRES : Importation de la fonction « Remove-SSHSession ».
Côté code, je ne comprend pas le test, dans les lignes suivantes de la fonction 'New-SSHSession' :
[code:1]
Try {
$Client.Connect()
if ($Client -and $Client.IsConnected) {
[/code:1]
Ensuite, qq valeurs de tests sur les paramètres des différentes fonctions te remonteraient qq erreurs.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- SiSMik
- Auteur du sujet
- Hors Ligne
- Membre platinium
- Messages : 492
- Remerciements reçus 0
Laurent:
[code:1] Try {
$Client.Connect()
if ($Client -and $Client.IsConnected) {
[/code:1]
Je vérifie juste que l'objet existe bien.. après la propriété IsConnected se suffit à elle même on est bien d'accord... Encore un matin pas réveillé, où dégoûté de plus être en vacances
Je vais attendre d'être au boulot lundi, j'ai des idées de nouvelles fonctions, et oui je vais rajouter plus de contrôles
Connexion ou Créer un compte pour participer à la conversation.
- SiSMik
- Auteur du sujet
- Hors Ligne
- Membre platinium
- Messages : 492
- Remerciements reçus 0
Vous pouvez téléchopper la dernière version en bas
@+
La pièce jointe SSH.zip est absente ou indisponible
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
- Messages : 6302
- Remerciements reçus 68
[code:1]
Get-SSHFile -Client $Client -File \"/var/www/text/truc\" -Destination \"C:\temp\machin.bidule\"
[/code:1]
Tu as ajouté des paramètre mais pas la doc associée.
Pour ceci, dans Get-SSHFile,:
[code:1] $FileStream.Flush()
$FileStream.Close()
$FileStream.Dispose()[/code:1] il est préférable d'utilser une bloc Finally. Et souvent en .NET la méthode Close() appel en interne Dispose, consulte la doc pour être sûr, ce qui fait que les 2 appels sont redondants.
Et pour le support, comme c'est toi qui le fait autant te faciliter la vie ('TON script y marche pas!'), la clause Catch ne contient pas la cause réelle de l'erreur.
Tu peux utiliser -ErroRecord un exemple +- lié :
[code:1]
$PSCmdlet.WriteError(
(New-Object System.Management.Automation.ErrorRecord(
(New-Exception $_.Exception ($TextMsgs.ReplaceRegExCreate -F $_.Exception.Message)),
\"ReplaceRegExCreate\",
\"InvalidOperation\",
(\"[{0}]\" -f $Key)
)
)
)#WriteError
[/code:1]
Cela demande beaucoup plus de code, mais le gain se fait lors de la recherche de la cause du bug.
Ou comment perdre du temps pour en gagner
Enfin tu devrais livrer ton module avec la dll dépendante et la charger en relatif avec $PSScriptRoot.
Une fois ceci fait tu livres aux admins une solution et pas une source de 'problèmes'
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- SiSMik
- Auteur du sujet
- Hors Ligne
- Membre platinium
- Messages : 492
- Remerciements reçus 0
Le mieux est d'aller voir les logs sur le serveur ssh.
Je me souvenais plus que j'avais rajouter des paramètres, je relivrerais une version plus aboutie dès que j'ai 5 min <br><br>Message édité par: benduru, à: 6/10/12 18:38
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Contributions à la communauté
- Module SSH