check_service.bat

echo remote : %1 
echo service : %2
echo state : %3
echo sc %1 query %2 | find "%3"
set error_chk=0
sc %1 query %2 | find "%3"
set error_chk=%errorlevel%
if %error_chk% equ 0 goto :end
:suite
set var=%date% a %time%
echo sc %1 start "%2"
sc %1 start "%2"
%ABM_BIN%/tmail -c %ABM_BIN%/tmail.ini -to eric.fougere@faiveleytransport.com -sub "Service : %2 is not %3 on %1 server. Restarted by Vtom." -msg "The service %2 is now %3 on %1 server, at %var% ."
:end

Lancer Python sans invite de commande.

Est-il possible de lancer un programme python sans avoir l’invite de
commande qui apparaît sous MS-Windows ?

Oui, il faut que l’extension du fichier lancé soit « pyw », ce qui revient a utiliser pythonw.exe plutôt que python.exe pour exécuter le script. C’est la même chose sauf que ça n’ouvre pas de fenêtre de console.

Vérifier l’espace disque

# Script calculant la memoire libre de chaque disque logique

#création de l’instance de l’objet WMI
$elements = get-WmiObject Win32_LogicalDisk

espace_disque.ps1

$taille_totale = 0 # initialisation de la variable

# boucle pour parcourir tous les disques
foreach ( $disque in $elements ) {
$taillefree = $disque.size / (1024*1024*1024)
$taillefree = [math]::round($taillefree, 1)

if ($taillefree -ne 0 )
{# calul de la taille en Giga octet
$nom=$disque.Name
$taille = $disque.freespace / (1024*1024*1024)
$taille = [math]::round($taille, 1) # Arrondi la taille à 1 décimale
$taille_totale = $taille_totale + $taille
write-host « Le disque :$nom a $taille Go de disponible sur $taillefree Go »
}
}

write-host « Taille disponible cumulée = $taille_totale Go »

Memo Questions – Reponses

1 Comment lister tous les cmdlets ?
Get-Command

2 Comment obtenir de l’aide sur l’aide ?
Get-help Get-help

3 omment obtenir l’aide détaillée du cmdlet Write-Debug ?
Get-Help Write-Debug -Det

4 Quelle est la liste des paramètres courant, utilisable sur la plupart des cmdlets ?
ErrorVariable, Debug ,WarningAction, WarningVariable, Verbose, ErrorAction, OutVariable, OutBuffer.

5 A quel cmdlet correspond l’alias Dir ?
Get-ChildItem

6 Quel est l’usage de Foreach-Object ?
Il exécute un traitement utilisateur pour chaque objet du pipeline.

7 Comment peut-on créer un alias ?
A l’aide de Set-Alias.

8 Que contient la variable $Objet après l’exécution des instructions suivantes ?
$Objet=Get-Command Foreach Un objet de type AliasInfo détaillant l’alias Foreach.

9 Comment afficher les membres statiques de la classe DateTime?
Get-Member -Inputobject [DateTime] -static

10 Que fait la ligne suivante ?
Get-Command -verb Write* Elle liste tous les cmdlets dont le verbe commence par Write.

11 Certains des verbes de la liste suivante sont réservés, car utilisé par le langage PowerShell, lesquels ?
Enable,Format,Grant,Group,Install,Protect,Register,Set,Test,Tee,Use,Wait. Format,Group,Tee

12 Des verbes suivants, lequel est autorisé par la convention de nommage de PowerShell, préconisé par Microsoft, pour rechercher une ressource ?
Read, Open, Cat, Get, Dir, Find Get

13 Quel est le rôle des cmdlets *-Item ?
Il s’agit de cmdlets effectuant des opérations sur les données de provider.

14 Quelle variable PowerShell peut modifier le comportement de Write-Debug ?
$DebugPreference.

15 Quelle différence y a-t-il entre Write-Output et Write-Host ?
Write-Output écrit sur la sortie standard, écran ou pipeline.

16 Quel cmdlet utiliser pour tester l’existence d’une variable ?
Test-Path

17 Quel est l’usage des cmdlets Out-* ?
Il s’agit pour la plupart de cmdlet spécialisé envoyant des données en dehors de l’environnement de PowerShell.

18 Comment lire le contenu d’un fichier ?
En utilisant Get-Content

19 Comment ajouter un nouveau cmdlet compilé ?
Avec InstallUtil.exe

20 Comment obtenir la liste des providers ?
A l’aide de Get-PSProvider

Question 1 Comment lister tous les cmdlets ? Get-Command
Question 2 Comment obtenir de l’aide sur l’aide ? Get-help Get-help
Question 3 Comment obtenir l’aide détaillée du cmdlet Write-Debug ? Get-Help Write-Debug -Det
Question 4 Quelle est la liste des paramètres courant, utilisable sur la plupart des cmdlets ? ErrorVariable, Debug ,WarningAction, WarningVariable, Verbose, ErrorAction, OutVariable, OutBuffer.
Question 5 A quel cmdlet correspond l’alias Dir ? Get-ChildItem
Question 6 Quel est l’usage de Foreach-Object ? Il exécute un traitement utilisateur pour chaque objet du pipeline.
Question 7 Comment peut-on créer un alias ? A l’aide de Set-Alias.
Question 8 Que contient la variable $Objet après l’exécution des instructions suivantes ? $Objet=Get-Command Foreach Un objet de type AliasInfo détaillant l’alias Foreach.
Question 9 Comment afficher les membres statiques de la classe DateTime? Get-Member -Inputobject [DateTime] -static
Question 10 Que fait la ligne suivante ? Get-Command -verb Write* Elle liste tous les cmdlets dont le verbe commence par Write.
Question 11 Certains des verbes de la liste suivante sont réservés, car utilisé par le langage PowerShell, lesquels ? Enable,Format,Grant,Group,Install,Protect,Register,Set,Test,Tee,Use,Wait. Format,Group,Tee
Question 12 Des verbes suivants, lequel est autorisé par la convention de nommage de PowerShell, préconisé par Microsoft, pour rechercher une ressource ? Read, Open, Cat, Get, Dir, Find Get
Question 13 Quel est le rôle des cmdlets *-Item ? Il s’agit de cmdlets effectuant des opérations sur les données de provider.
Question 14 Quelle variable PowerShell peut modifier le comportement de Write-Debug ? $DebugPreference.
Question 15 Quelle différence y a-t-il entre Write-Output et Write-Host ? Write-Output écrit sur la sortie standard, écran ou pipeline.
Question 16 Quel cmdlet utiliser pour tester l’existence d’une variable ? Test-Path
Question 17 Quel est l’usage des cmdlets Out-* ? Il s’agit pour la plupart de cmdlet spécialisé envoyant des données en dehors de l’environnement de PowerShell.
Question 18 Comment lire le contenu d’un fichier ? En utilisant Get-Content
Question 19 Comment ajouter un nouveau cmdlet compilé ? Avec InstallUtil.exe
Question 20 Comment obtenir la liste des providers ? A l’aide de Get-PSProvider

Envoyer un mail

envoi_mail.ps1

$emailFrom = « Progicielinformatique@faiveleytransport.com »
$emailTo = « eric.fougere@faiveleytransport.com »
$subject = « test email 3eme essai »
$body = « This is my automated email,`n This is line number 2 »
$smtpServer = « smtp-relay.ft.grp »
$smtp = new-object Net.Mail.SmtpClient($smtpServer)
$smtp.Send($emailFrom, $emailTo, $subject, $body)