Différences
Ci-dessous, les différences entre deux révisions de la page.
| Prochaine révision | Révision précédente | ||
| powershell_util [2019/02/24 18:32] – créée nekan | powershell_util [2021/03/05 16:50] (Version actuelle) – nekan | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | <alert type=" | ||
| + | |||
| ====== Fonctions utiles ====== | ====== Fonctions utiles ====== | ||
| Ligne 7: | Ligne 9: | ||
| On peut être amené à fournir un mot de passe dans un script afin de d' | On peut être amené à fournir un mot de passe dans un script afin de d' | ||
| - | Référence ConvertFrom-SecureString : [[https:// | + | * Référence ConvertFrom-SecureString : [[https:// |
| - | Référence ConvertTo-SecureString : [[https:// | + | |
| - | Les cmdlets afférents à SecureString permettent de crypter | + | Les cmdlets afférents à SecureString permettent de chiffrer |
| - | ==== Cryptage | + | ==== Chiffrement |
| - | <code:ps1># On demande à d' | + | <sxh powershell># On demande à d' |
| # On le convertit. | # On le convertit. | ||
| # On sauvegarde le tout dans un fichier. Le nom est purement arbitraire. | # On sauvegarde le tout dans un fichier. Le nom est purement arbitraire. | ||
| Read-Host " | Read-Host " | ||
| - | </code> | + | </sxh> |
| - | A noter que l'on peut renforcer le cryptage | + | A noter que l'on peut renforcer le chiffrement |
| - | <code:ps1>$Key = (3, | + | <sxh powershell>$Key = (3, |
| Read-Host " | Read-Host " | ||
| - | </code> | + | </sxh> |
| - | Évidement, on peut aussi stocker notre table d' | + | Évidement, on peut aussi stocker notre table d' |
| - | ==== Décryptage | + | ==== Déchiffrement |
| - | Crypter, c'est bien beau mais il faut pouvoir | + | Chiffrer, c'est bien beau mais il faut pouvoir |
| - | <code:ps1># Dans le cas d'une encryption simple | + | <sxh powershell># Dans le cas d'une encryption simple |
| $MDPCryptFile = " | $MDPCryptFile = " | ||
| $SecureStringPassword = Get-Content -Path $MDPCryptFile | ConvertTo-SecureString | $SecureStringPassword = Get-Content -Path $MDPCryptFile | ConvertTo-SecureString | ||
| Ligne 43: | Ligne 45: | ||
| # Dans les deux cas, le mot de passe crypté précédemment sera décrypté et stocké dans la variable $SecureStringPassword sous la forme d'un objet SecureString | # Dans les deux cas, le mot de passe crypté précédemment sera décrypté et stocké dans la variable $SecureStringPassword sous la forme d'un objet SecureString | ||
| - | </code> | + | </sxh> |
| A noter aussi qu'un objet SecureString peut être crypté à l'aide d'un certificat, ce qui renforce d' | A noter aussi qu'un objet SecureString peut être crypté à l'aide d'un certificat, ce qui renforce d' | ||
| Ligne 51: | Ligne 53: | ||
| L' | L' | ||
| - | Référence : [[https:// | + | * Référence : [[https:// |
| - | <code:ps1># On prépare d' | + | <sxh powershell># On prépare d' |
| # L' | # L' | ||
| $From = " | $From = " | ||
| Ligne 72: | Ligne 74: | ||
| # fichiers .htm et additionner les chaînes de caractère ou écrire un chaine de caractère contenant les balises HTML | # fichiers .htm et additionner les chaînes de caractère ou écrire un chaine de caractère contenant les balises HTML | ||
| # et les variables. | # et les variables. | ||
| - | # Si le corps et en HTML, on rajoutera le paramètre -BodyAsHtml | + | # Si le corps est en HTML, on rajoutera le paramètre -BodyAsHtml |
| # Le serveur SMTP | # Le serveur SMTP | ||
| Ligne 84: | Ligne 86: | ||
| # Ils sont formés d'une combinaison d'un login et d'un mot de passe. | # Ils sont formés d'une combinaison d'un login et d'un mot de passe. | ||
| # On utilisera SecureString pour ne pas laisser d' | # On utilisera SecureString pour ne pas laisser d' | ||
| - | $User = " | + | $User = " |
| $Password = Get-Content -Path .\data.crypt | ConvertTo-SecureString | $Password = Get-Content -Path .\data.crypt | ConvertTo-SecureString | ||
| $Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, | $Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, | ||
| Ligne 97: | Ligne 99: | ||
| # Finalement, on ajoute tous nos arguments à la cmdlet | # Finalement, on ajoute tous nos arguments à la cmdlet | ||
| Send-MailMessage -From $From -To $To -Subject $Subject -Body $Body -BodyAsHtml -SmtpServer $SMTP -Port $Port -UseSsl -Credential $Credential -Attachments $Attachment -Encoding $Encoding | Send-MailMessage -From $From -To $To -Subject $Subject -Body $Body -BodyAsHtml -SmtpServer $SMTP -Port $Port -UseSsl -Credential $Credential -Attachments $Attachment -Encoding $Encoding | ||
| - | </ | + | </sxh> |
| + | |||
| + | ===== Notifications ===== | ||
| + | |||
| + | Tout comme les mails, les notifications à l' | ||
| + | |||
| + | <sxh powershell># | ||
| + | Add-Type -AssemblyName System.Windows.Forms | ||
| + | |||
| + | # On crée l' | ||
| + | $global: | ||
| + | |||
| + | # On charge l' | ||
| + | $path = (Get-Process -id $pid).Path | ||
| + | $balloon.Icon = [System.Drawing.Icon]:: | ||
| + | $balloon.BalloonTipIcon = [System.Windows.Forms.ToolTipIcon]:: | ||
| + | |||
| + | # On ajoute le texte de la notification | ||
| + | $balloon.BalloonTipText = 'Le script a détecté un virus' | ||
| + | |||
| + | # On ajoute un titre | ||
| + | $balloon.BalloonTipTitle = " | ||
| + | |||
| + | # On rend la notification visible sinon ça n'a pas beaucoup d' | ||
| + | $balloon.Visible = $true | ||
| + | |||
| + | # On règle la durée d' | ||
| + | $balloon.ShowBalloonTip(5000) | ||
| + | </ | ||
| + | |||
| + | On peut aussi utiliser ce code : | ||
| + | |||
| + | <sxh powershell># | ||
| + | [reflection.assembly]:: | ||
| + | [reflection.assembly]:: | ||
| + | |||
| + | # On crée nos variables | ||
| + | $Path = Get-Process -id $PID | Select-Object -ExpandProperty Path | ||
| + | $Icon = [System.Drawing.Icon]:: | ||
| + | $Notify = new-object system.windows.forms.notifyicon | ||
| + | $Notify.icon = $Icon | ||
| + | $Notify.visible = $True | ||
| + | $Title = " | ||
| + | $Message = "Le script a détecté un virus" | ||
| + | |||
| + | # On lance la notification. La aussi, on définira l' | ||
| + | $notify.showballoontip(10, | ||
| + | </ | ||
| + | |||
| + | Une autre solution est d' | ||
| + | |||
| + | * Référence : [[https:// | ||
| + | |||
| + | <sxh powershell># | ||
| + | Install-Module BurntToast | ||
| + | |||
| + | # Ensuite, on peut l' | ||
| + | # L' | ||
| + | $Logo = .\logo.png | ||
| + | |||
| + | # La notification sous la forme " | ||
| + | $Text = " | ||
| + | |||
| + | # On envoie la notification | ||
| + | New-BurntToastNotification -AppLogo $Logo -Text $Text | ||
| + | </sxh> | ||
| + | |||
| + | --- // | ||
| + | |||
| + | ~~DISCUSSION~~ | ||