Power OFF – Power ON PowerCLI

ATTENTION avec Vtom : la queue_ps1 doit contenir :

%PATH_POWERSHELL%\powershell.exe -ExecutionPolicy UnRestricted -NonInteractive -File %TOM_SCRIPT% %arg%

Tests fait sur VWJES_TST et PRD.

Lancer Windows Power Shell en administrateur

PowerShell Set-ExecutionPolicy UnRestricted   

L:\Soft\VMware\Scripts\Initialize-PowerCLIEnvironment.ps1   

Connect-VIServer -Server wctsrv0001.wabtec.com -Protocol https -User ad.wabtec.com\srvWCTVtom -Password 'Y------#' 

Get-PowerCLIConfiguration 

Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -Confirm:$false 

Get-Vm vsch1 

Start-Vm vsch1 

Stop-Vm vsch1 

—– Autres commandes

Get-Help Set-ExecutionPolicy

PowerShell Set-ExecutionPolicy AllSigned

—- script —

//WCTSRV0016/Batch_win/vtom_VM_power.ps1
P1 : nom_du_serveur
P2 : start ou stop

Param( 
 [string]$w_vm = $Args[0],
 [string]$w_action = $Args[1]
 )
 Write-Host "La VM est : $w_vm"
 Write-Host "Action : $w_action"
 PowerShell Set-ExecutionPolicy UnRestricted
 L:\Soft\VMware\Scripts\Initialize-PowerCLIEnvironment.ps1 -w_vm -w_action 
 Connect-VIServer -Server wctsrv0001.wabtec.com -Protocol https -User ad.wabtec.com\srvWCTVtom -Password 'YN6$P&G6j#'
 $WarningPreference = 'SilentlyContinue'
 $Error.Clear()
 Get-VM "$w_vm" |select Name, PowerState
 if ( $w_action -like "stop" ) {
 Stop-VM -VM "$w_vm" -Confirm:$false
 $statu = Get-VM "$w_vm" |select PowerState
     if ( $statu -like "@{PowerState=PoweredOff}" ) {
         Write-Host "Power : OFF"
         exit 0
     } else {
         Write-Host "Power : ON"
         exit 1
     }
 } else {
 Start-VM -VM "$w_vm" -Confirm:$false
 $statu = Get-VM "$w_vm" |select PowerState
     if ( $statu -like "@{PowerState=PoweredOn}" ) {
         Write-Host "Power : ON"
         exit 0
     } else {
         Write-Host "Power : OFF"
         exit 1
         }
 }

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)