Utilisation de powershell

Creation: 30 mai 2013
Mise à jour:
Version: 1.0
Author: Jean-Louis Bicquelet-Salaün
Location: http://jlbicquelet.free.fr
Copyright: (c) 2013 Jean-Louis BICQUELET-SALAÜN

powershell Frequently-Asked Questions

Powershell , le shell de scripting microsoft server 2008

Pour plus d'information au sujet de cette faq, contactez Jean-Louis BICQUELET


FAQ Revised: Thursday 30 May 2013 19:34:22


Table of Contents

1. commandes de base
2. provider et drives
3. conditions et boucles
4. profil utilisateur

1. commandes de base

1.1. comment découvrir les commandes?
Le point d'entrée est get-command
PS C:\> get-command

CommandType     Name                                                Definition
-----------     ----                                                ----------
Alias           %                                                   ForEach-Object
Alias           ?                                                   Where-Object
Function        A:                                                  Set-Location A:
Alias           ac                                                  Add-Content
Cmdlet          Add-Computer                                        Add-Computer [-DomainName]  [-Credential...
Cmdlet          Add-Content                                         Add-Content [-Path]  [-Value] ] [-Pass...
Cmdlet          Add-Member                                          Add-Member [-MemberType]  [-Name]...
Cmdlet          Add-PSSnapin                                        Add-PSSnapin [-Name]  [-PassThru] [-Ve...
Cmdlet          Add-Type                                            Add-Type [-TypeDefinition]  [-Language <...
Cmdlet          Complete-Transaction                                Complete-Transaction [-Verbose] [-Debug] [-Error...
..


1.2. comment avoir de l'aide sur une commande donnée?
PS C:\> get-help ps

NOM
    Get-Process

RÉSUMÉ
    Obtient les processus qui s'exécutent sur l'ordinateur local ou un ordinateur distant.


SYNTAXE
    Get-Process [[-Name] ] [-ComputerName ] [-FileVersionInfo] [-Module] []

    Get-Process -Id  [-ComputerName ] [-FileVersionInfo] [-Module] []

    Get-Process -InputObject  [-ComputerName ] [-FileVersionInfo] [-Module] []


DESCRIPTION
    L'applet de commande Get-Process obtient les processus présents sur un ordinateur 
    local ou distant.

    Sans paramètre, Get-Process obtient tous les processus présents sur l'ordinateur 
    local. Vous pouvez également spécifier un processus particulier en indiquant 
    son nom ou son identificateur de processus ou passer un objet processus
    à Get-Process via le pipeline.

    Par défaut, Get-Process retourne un objet processus qui possède des informations 
    détaillées sur le processus et prend en charge des méthodes qui vous permettent 
    de démarrer et d'arrêter le processus. Vous pouvez également utiliser
    les paramètres de Get-Process pour obtenir des informations sur la version 
    de fichier du programme qui s'exécute dans le processus et obtenir les modules 
    qui ont été chargés par le processus.


LIENS CONNEXES
    Online version: http://go.microsoft.com/fwlink/?LinkID=113324
    Get-Process
    Start-Process
    Stop-Process
    Wait-Process
    Debug-Process

REMARQUES
    Pour consulter les exemples, tapez : "get-help Get-Process -examples".
    Pour plus d'informations, tapez : "get-help Get-Process -detailed".
    Pour obtenir des informations techniques, tapez : "get-help Get-Process -full".
On peut obtenir plus de précision avec les options -detailed et -full.

1.3. comment afficher quelquechose à l'écran?
PS C:\> write-host "hello!"
hello!


1.4. comment manipuler des variables?
PS C:\> $i=3
PS C:\> write-host $i
3
PS C:\> $j=$i*2
PS C:\> write-host $j
6



2. provider et drives

2.1. comment obtenir la liste des drives?
La commande est Get-PSDrive
PS C:\> Get-PSDrive

Name       Used (GB)     Free (GB) Provider      Root              CurrentLocation
----       ---------     --------- --------      ----              ---------------
Alias                              Alias
C              29,55        118,71 FileSystem    C:\               Users\TOTO
cert                               Certificate   \
D                                  FileSystem    D:\
Env                                Environment
Function                           Function
HKCU                               Registry      HKEY_CURRENT_USER
HKLM                               Registry      HKEY_LOCAL_MACHINE
K                ,26        114,43 FileSystem    K:\
Variable                           Variable
WSMan                              WSMan
X             170,01         48,99 FileSystem    X:\
Z            1574,96       1312,72 FileSystem    Z:\


2.2. comment lister les fichiers d'un répertoire?
On peut au choix utiliser la commande est Get-Childitem, dir ou ls. Le resultat sera identique.
PS C:\> Get-Childitem


    Répertoire : C:\Users\E1300660


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d-r--        11/02/2013     10:38            Contacts
d-r--        30/05/2013     08:31            Desktop
d-r--        30/05/2013     08:35            Downloads
d-r--        15/05/2013     08:14            Links
d-r--        11/02/2013     10:38            Music
d-r--        28/05/2013     10:57            Pictures
d----        13/02/2013     09:22            SametimeTranscripts
d-r--        11/02/2013     10:38            Saved Games
d----        21/02/2013     10:17            SavedChats
d-r--        29/05/2013     16:30            Searches
d-r--        11/02/2013     10:38            Videos
-a---        19/02/2013     17:52        157 datastage.txt
-a---        30/05/2013     14:45        600 PUTTY.RND



2.3. comment obtenir la liste des providers?
La commande est Get-PSDrive
PS C:\> Get-Psprovider

Name                 Capabilities                                      Drives
----                 ------------                                      ------
WSMan                Credentials                                       {WSMan}
Alias                ShouldProcess                                     {Alias}
Environment          ShouldProcess                                     {Env}
FileSystem           Filter, ShouldProcess                             {C, D, K, X...}
Function             ShouldProcess                                     {Function}
Registry             ShouldProcess, Transactions                       {HKLM, HKCU}
Variable             ShouldProcess                                     {Variable}
Certificate          ShouldProcess                                     {cert}



3. conditions et boucles

3.1. comment faire une test en powershell?
PS C:\> set a=12
if ($a -lt 24) {
>>  write-host "plus petit"
>>}
>>
plus petit


3.2. comment faire une boucle entre 2 bornes en powershell?
PS C:\> for($i=0; $i -lt 4; $i++)
>> {
>>     write-host $i
>> }
>>
0
1
2
3


3.3. comment faire une boucle sur tout les éléments d'un objet en powershell?
PS C:\> foreach($myProcess in (Get-Process))
>> {
>>     write-host $myProcess.Name
>> }
>>
AdaptivaClientService
CcmExec
cmd
concentr
conhost
conhost
conhost


3.4. comment faire une boucle conditionnelle en powershell?
PS C:\> $i=0 PS C:\> while($i -ne 5) >> { >> Write-Host $i >> $i++ >> } >> 0 1 2 3 4 On peut aussi mettre le while à la fin:
$i=0
do
{
    write-host $i
    $i++
}while($i -ne 3)
0
1
2
while($i -ne 4) { Write-Host $i $i++ }


4. profil utilisateur

4.1. comment trouver le profil utilisateur de l'utilisateur courrant?
PS C:\> write-host $profile
\\serveur.fr\users$\mon_user\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1