Powershell

De Linuxmemo.

(Différences entre les versions)
(Les modules)
 
(41 versions intermédiaires masquées)
Ligne 1 : Ligne 1 :
[[Catégorie:Windows_sysadmin]]
[[Catégorie:Windows_sysadmin]]
 +
[[Catégorie:PowerShell]]
 +
==Avoir de l'aide==
 +
 +
*sur une commande
 +
Get-Help commande
 +
Get-Help commande -examples
 +
Get-Help commande -detailed
 +
Get-Help commande -full
 +
ou
 +
help commande
 +
 +
*liste des commandes
 +
Get-Command
 +
Get-Command -verb Get
 +
Get-Command -noun Service
 +
Get-Command -commandType alias
 +
Get-Command Get-*
 +
Get-Command *-Service
 +
Get-Verb
 +
 +
*lister tout les propriétés et méthodes d'un objet
 +
$maVariable | Get-Member
 +
$maVariable | Get-Member -MemberType Method
 +
$maVariable | Get-Member -MemberType Property
 +
$maVariable | Get-Member -MemberType Property CreateTime
 +
Get-ItemProperty
 +
appel méthode
 +
$maVariable.ToUpper()
 +
 +
*lister les Provider
 +
Get-PsProvider
 +
 +
*Listage des classes WMI
 +
Get-WmiObject –List
 +
$i=0;Get-WmiObject -list | foreach{$i=$i+1} ; Write-Host "Il y a $i membre(s)"
 +
 +
*Connaitre sa version de PowerShell
 +
$host.version
 +
$PSVersionTable
 +
==Script (exécution, mode de sécurité)==
==Script (exécution, mode de sécurité)==
*fichier ayant pour extension .PS1
*fichier ayant pour extension .PS1
Ligne 25 : Ligne 65 :
Affichage des propriétés sous forme de liste
Affichage des propriétés sous forme de liste
  Get-ChildItem | Format-List
  Get-ChildItem | Format-List
 +
  ou toutes les propriétés
  ou toutes les propriétés
  Get-ChildItem | Format-List *
  Get-ChildItem | Format-List *
-
  Get-ChildItem | Format-List -Property name, length
+
 +
ou juste les propriétés name et lenght
 +
  Get-ChildItem | '''Format-List -Property''' name, length
 +
  ou une seul propriété
  ou une seul propriété
  (Get-ChildItem nomfichier).CreationTime
  (Get-ChildItem nomfichier).CreationTime
Ligne 36 : Ligne 80 :
Affichage personnalisé des propriétés
Affichage personnalisé des propriétés
  Get-ChildItem | Format-Custom
  Get-ChildItem | Format-Custom
-
 
-
===Appel des méthodes===
 
-
 
-
$a = 12
 
-
$a.GetType()
 
-
Int32
 
===Filtres===
===Filtres===
-
*wc = Measure-Object
+
*wc = '''Measure-Object'''
  Get-Command | Measure-Object
  Get-Command | Measure-Object
-
*grep = Select-String
+
*grep = '''Select-String'''
 +
 
 +
*grep sur les méthodes et les propriétés =  '''Where-Object méthodes/propriétés -eq quelquechose'''
 +
Get-service |''' Where-Object status -eq Stopped'''
-
*Where-Object
+
*'''Select-Object''' (select)
-
  Get-service | Where-Object {$_.status -eq 'Stopped'}
+
  Get-WmiObject win32_userprofile | Select-Object LocalPath
===Guillemets===
===Guillemets===
Ligne 71 : Ligne 112 :
`r = retour chariot
`r = retour chariot
...
...
 +
 +
===Appel des méthodes===
 +
$a = 12
 +
$a.GetType()
 +
Int32
===Valeur de propriétés===
===Valeur de propriétés===
Ligne 79 : Ligne 125 :
  Taille du fichier config.sys : 10 octets
  Taille du fichier config.sys : 10 octets
-
==Avoir de l'aide==
+
===Opérateurs de comparaisons===
 +
Les opérateurs de comparaison pour le shell, par défaut, ne sont pas sensibles à la casse lors de la comparaison des chaînes :
 +
'''-eq    Equal (case insensitive)'''
 +
-ne    Not equal (case insensitive)
 +
-ge    Greater than or equal (case insensitive)
 +
-gt    Greater than (case insensitive)
 +
-lt    Less than (case insensitive)
 +
-le    Less than or equal (case insensitive)
 +
'''-like    Wildcard comparison (case insensitive)'''
 +
-notlike    Wildcard comparison (case insensitive)
 +
'''-match      Regular expression comparison (case insensitive)'''
 +
-notmatch        Regular expression comparison (case insensitive)
 +
-replace        Replace operator (case insensitive)
 +
-contains        Containment operator (case insensitive)
 +
-notcontains      Containment operator (case insensitive)
-
*sur un commande
+
-ieq      Case insensitive equal
-
  Get-Help commande
+
  -ine      Case insensitive not equal
-
  Get-Help commande -examples
+
  -ige      Case insensitive greater than or equal
-
  Get-Help commande -detailed
+
-igt      Case insensitive greater than
-
  Get-Help commande -full
+
  -ile        Case insensitive less than or equal
-
  ou
+
-ilt        Case insensitive less than
-
  help commande
+
  -ilike        Case insensitive equal
 +
-inotlike        Case insensitive equal
 +
  -imatch        Case insensitive regular expression comparison
 +
  -inotmatch        Case insensitive regular expression comparison
 +
-ireplace        Case insensitive replace operator
 +
-icontains        Case insensitive containment operator
 +
-inotcontains          Case insensitive containment operator
-
*liste des commandes
+
-ceq      Equal (case sensitive)
-
  Get-Command
+
-cne        Not equal (case sensitive)
 +
-cge        Greater than or equal (case sensitive)
 +
-cgt        Greater than (case sensitive)
 +
-clt        Less than (case sensitive)
 +
-cle        Less than or equal (case sensitive)
 +
-clike          Wildcard comparison (case sensitive)
 +
-cnotlike        Wildcard comparison (case sensitive)
 +
-cmatch          Regular expression comparison (case sensitive)
 +
-cnotmatch          Regular expression comparison (case sensitive)
 +
-creplace            Replace operator (case sensitive)
 +
-ccontains            Containment operator (case sensitive)
 +
  -cnotcontains            Containment operator (case sensitive)
-
*lister tout les propriétés et méthodes d'un objet
+
  -is          Is of a type
-
  $maVariable | Get-Member
+
  -isnot        Is not of a type
-
  Get-ItemProperty
+
  -as        As a type, no error if conversion fails
-
  appel méthode
+
-
$maVariable.ToUpper()
+
-
 
+
-
*Listage des classes WMI
+
-
Get-WmiObject –List
+
-
$i=0;Get-WmiObject -list | foreach{$i=$i+1} ; Write-Host "Il y a $i membre(s)"
+
-
 
+
-
*Connaitre sa version de PowerShell
+
-
$host.version
+
-
$PSVersionTable
+
==Les profiles==
==Les profiles==
Ligne 119 : Ligne 186 :
%windir%\system32\WindowsPowerShell\v1.0\ Microsoft.PowerShell_profile.ps1
%windir%\system32\WindowsPowerShell\v1.0\ Microsoft.PowerShell_profile.ps1
 +
 +
*fichier profile pour commande automatique au lancement du shell
 +
notepad $profile
 +
Import-Module nommodule
 +
start-transcript
 +
...
==Vocabulaire==
==Vocabulaire==
Ligne 137 : Ligne 210 :
==Les modules==
==Les modules==
 +
Microsoft Script Center: http://technet.microsoft.com/en-us/scriptcenter/bb410849.aspx ou http://gallery.technet.microsoft.com/ScriptCenter/
 +
Les modules sont soit des fichier .psd1 ou .psm1, soit des binaires (.dll), soit des modules dynamique en ram.
Les modules sont soit des fichier .psd1 ou .psm1, soit des binaires (.dll), soit des modules dynamique en ram.
Ligne 184 : Ligne 259 :
*Les 2 machines doivent être configurés pour une gestion a distance.
*Les 2 machines doivent être configurés pour une gestion a distance.
  Enable-PSRemoting
  Enable-PSRemoting
 +
ou
 +
[[Winrm]]
-
  Enter-PSSession -computer Server01 -port 90 -credential domain01\user01
+
  Enter-PSSession -computer '''NOMMACHINE''' -port '''5985''' -credential domain01\user01
  Alias: etsn
  Alias: etsn
* déactivation du shell a distance
* déactivation du shell a distance
  Disable-PSRemoting
  Disable-PSRemoting
 +
 +
==commandes utiles==
 +
Get-Process, Start-Process, Stop-Process, Wait-Process, Debug-Process
 +
Get-Service
 +
Get-EventLog
 +
Restart-Computer
 +
Test-Connection
 +
Clear-EventLog
 +
Get-EventLog
 +
Get-Hotfix
 +
Get-Process
 +
Get-Service
 +
Set-Service
 +
Get-WinEvent
 +
Get-WmiObject, Get-WmiObject -List, Get-WmiObject -List | Where-Object { $_.name -match 'disk'}, '''Get-WmiObject win32_computersystem'''
==les Objets (Outils intégrés)==
==les Objets (Outils intégrés)==
Ligne 196 : Ligne 288 :
*utilitaires:
*utilitaires:
  fsutil,etc...
  fsutil,etc...
-
*Tout les objet .net
+
*Tout les objet .NET http://technet.microsoft.com/fr-fr/library/dd347574.aspx
 +
New-Object -TypeName System.Diagnostics.EventLog
 +
New-Object -TypeName System.Diagnostics.EventLog -ArgumentList Application
 +
$AppLog = New-Object -TypeName System.Diagnostics.EventLog -ArgumentList Application
 +
$AppLog | Get-Member -MemberType Method
 +
$AppLog.Clear()
 +
$AppLog
 +
Méthodes statiques:
  [espace de nom. <type .net>]::<Membre-statique>
  [espace de nom. <type .net>]::<Membre-statique>
  [System.DateTime]::Now
  [System.DateTime]::Now
http://msdn.microsoft.com/fr-fr/library/gg145045.aspx
http://msdn.microsoft.com/fr-fr/library/gg145045.aspx
 +
*Tout les objets COM
 +
Vous devez spécifier le paramètre ComObject avec l'identificateur programmatique (ou ProgId) de la classe COM à utiliser.</b>
 +
Vous pouvez créer les objets WSH en spécifiant ces ProgId : WScript.Shell, WScript.Network, Scripting.Dictionary et Scripting.FileSystemObject. Les commandes suivantes créent ces objets :
 +
New-Object -ComObject WScript.Shell
 +
New-Object -ComObject WScript.Network
 +
New-Object -ComObject Scripting.Dictionary
 +
New-Object -ComObject Scripting.FileSystemObject
 +
gci HKLM:\Software\Classes -ea 0| ? {$_.PSChildName -match '^\w+\.\w+$' -and (gp "$($_.PSPath)\CLSID" -ea 0)} | ft PSChildName
 +
Lister tout les ProgId
 +
dir  REGISTRY::HKEY_CLASSES_ROOT\CLSID -include PROGID -recurse | foreach {$_.GetValue("")}
 +
ou
 +
get-wmiobject Win32_COMClass
 +
 +
$WshShell = New-Object -ComObject WScript.Shell
 +
$WshShell | Get-Member
 +
$lnk = $WshShell.CreateShortcut("$Home\Desktop\PSHome.lnk")
*Tout les objet fs
*Tout les objet fs
  Get-ChildItem c:\
  Get-ChildItem c:\
Ligne 243 : Ligne 358 :
*Lecteurs
*Lecteurs
 +
$obj = New-Object -com Wscript.Network
 +
$obj.MapNetworkDrive("x:", "\\serveur\partage")
*Services
*Services
Ligne 254 : Ligne 371 :
*Sécurité
*Sécurité
 +
 +
*Effacer un profile utilisateur
 +
( Get-WmiObject -Class Win32_UserProfile | Where-Object { $_.LocalPath -eq 'c:\users\user' } ).Delete()
==Ressources==
==Ressources==
http://technet.microsoft.com/en-us/scriptcenter/bb410849.aspx
http://technet.microsoft.com/en-us/scriptcenter/bb410849.aspx

Version actuelle en date du 20 février 2017 à 09:41

Sommaire

[modifier] Avoir de l'aide

  • sur une commande
Get-Help commande
Get-Help commande -examples
Get-Help commande -detailed
Get-Help commande -full
ou 
help commande
  • liste des commandes
Get-Command
Get-Command -verb Get
Get-Command -noun Service
Get-Command -commandType alias
Get-Command Get-*
Get-Command *-Service
Get-Verb

  • lister tout les propriétés et méthodes d'un objet
$maVariable | Get-Member
$maVariable | Get-Member -MemberType Method
$maVariable | Get-Member -MemberType Property
$maVariable | Get-Member -MemberType Property CreateTime
Get-ItemProperty
appel méthode
$maVariable.ToUpper()
  • lister les Provider
Get-PsProvider
  • Listage des classes WMI
Get-WmiObject –List 
$i=0;Get-WmiObject -list | foreach{$i=$i+1} ; Write-Host "Il y a $i membre(s)"
  • Connaitre sa version de PowerShell
$host.version
$PSVersionTable

[modifier] Script (exécution, mode de sécurité)

  • fichier ayant pour extension .PS1
  • exécution

depuis une invite de commande

 powershell c:\monscript.ps1

double clic, il faut modifier les paramètres de sécurité implémentés dans PowerShell car par défaut il est impossible de lancer un script sans passer par l’interpréteur PowerShell.

Get-ExecutionPolicy

PowerShell propose 4 modes de sécurité différents:

Restricted - No scripts can be run. Windows PowerShell can be used only in interactive mode.
AllSigned - Only scripts signed by a trusted publisher can be run.
RemoteSigned - Downloaded scripts must be signed by a trusted publisher before they can be run.
Unrestricted - No restrictions; all Windows PowerShell scripts can be run.

changer de mode et d’autoriser l’exécution de script locaux

Set-ExecutionPolicy RemoteSigned

[modifier] Dénomination verbe-substantif

http://msdn.microsoft.com/en-us/library/windows/desktop/ms714428%28v=vs.85%29.aspx

[modifier] Syntaxe

[modifier] Formatage d'affichage des propriétés

Affichage des propriétés sous forme de liste

Get-ChildItem | Format-List

ou toutes les propriétés
Get-ChildItem | Format-List *

ou juste les propriétés name et lenght
Get-ChildItem | Format-List -Property name, length

ou une seul propriété
(Get-ChildItem nomfichier).CreationTime

Affichage des propriétés sous forme de Table

Get-ChildItem | Format-Table -autosize

Affichage de la seul propriété par défaut au format large table

Get-ChildItem | Format-Wide

Affichage personnalisé des propriétés

Get-ChildItem | Format-Custom

[modifier] Filtres

  • wc = Measure-Object
Get-Command | Measure-Object
  • grep = Select-String
  • grep sur les méthodes et les propriétés = Where-Object méthodes/propriétés -eq quelquechose
Get-service | Where-Object status -eq Stopped
  • Select-Object (select)
Get-WmiObject win32_userprofile | Select-Object LocalPath

[modifier] Guillemets

double ""

substitution de variable

$a = 'bonjour'
$b = 'monde'
Write-Host "$a $b"
bonjour monde
simple

protection de chaine

[modifier] Caractère d'échappement

AltGr + 7 donne le backtick "`"

`n = Saut de ligne `r = retour chariot ...

[modifier] Appel des méthodes

$a = 12
$a.GetType()
Int32

[modifier] Valeur de propriétés

$(objet.propriété)

$a = Get-ChilItem c:\config.sys
Write-Host "Taille du fichier $($a.Name) : $($a.Length) octets"
Taille du fichier config.sys : 10 octets

[modifier] Opérateurs de comparaisons

Les opérateurs de comparaison pour le shell, par défaut, ne sont pas sensibles à la casse lors de la comparaison des chaînes :

-eq    Equal (case insensitive)
-ne    Not equal (case insensitive)
-ge    Greater than or equal (case insensitive)
-gt    Greater than (case insensitive)
-lt     Less than (case insensitive)
-le    Less than or equal (case insensitive)
-like     Wildcard comparison (case insensitive)
-notlike     Wildcard comparison (case insensitive)
-match       Regular expression comparison (case insensitive)
-notmatch        Regular expression comparison (case insensitive)
-replace        Replace operator (case insensitive)
-contains        Containment operator (case insensitive)
-notcontains       Containment operator (case insensitive)
-ieq      Case insensitive equal
-ine       Case insensitive not equal
-ige       Case insensitive greater than or equal
-igt       Case insensitive greater than
-ile        Case insensitive less than or equal
-ilt         Case insensitive less than
-ilike         Case insensitive equal
-inotlike        Case insensitive equal
-imatch        Case insensitive regular expression comparison
-inotmatch        Case insensitive regular expression comparison
-ireplace        Case insensitive replace operator
-icontains         Case insensitive containment operator
-inotcontains           Case insensitive containment operator
-ceq       Equal (case sensitive)
-cne        Not equal (case sensitive)
-cge         Greater than or equal (case sensitive)
-cgt         Greater than (case sensitive)
-clt         Less than (case sensitive)
-cle         Less than or equal (case sensitive)
-clike          Wildcard comparison (case sensitive)
-cnotlike         Wildcard comparison (case sensitive)
-cmatch          Regular expression comparison (case sensitive)
-cnotmatch           Regular expression comparison (case sensitive)
-creplace            Replace operator (case sensitive)
-ccontains            Containment operator (case sensitive)
-cnotcontains            Containment operator (case sensitive)
-is           Is of a type
-isnot        Is not of a type
-as        As a type, no error if conversion fails

[modifier] Les profiles

  • Type Utilisateurs

%UserProfile%\My Documents\WindowsPowerShell\profile.ps1

%UserProfile%\My Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

  • Type Machine (pour tout les utilisateurs)

%windir%\system32\WindowsPowerShell\v1.0\profile.ps1

%windir%\system32\WindowsPowerShell\v1.0\ Microsoft.PowerShell_profile.ps1

  • fichier profile pour commande automatique au lancement du shell
notepad $profile
Import-Module nommodule
start-transcript
...

[modifier] Vocabulaire

"item"

fichier, répertoire, clé de la base de registre.

"fournisseur ou Provider po PsProvider"

Ce sont les objets sur lesquels la commande agis: Alias, Env, C, D, E,...,Z , Function, HKLM, KHCU, Variable, Cert.
Exemple:

Get-ChildItem C:
Get-ChildItem Alias:
Get-ChildItem Env:
Get-ChildItem Function:
Get-ChildItem HKLM:
Get-ChildItem Variable:

[modifier] Les modules

Microsoft Script Center: http://technet.microsoft.com/en-us/scriptcenter/bb410849.aspx ou http://gallery.technet.microsoft.com/ScriptCenter/

Les modules sont soit des fichier .psd1 ou .psm1, soit des binaires (.dll), soit des modules dynamique en ram.

Si vous êtes seul à executer les commandes, il est préferable de positionner les modules dans votre profile Powershell;

soit
%USERPROFILE%\Documents\WindowsPowerShell\Modules\MonModule
ou
%DocumentsUser%\WindowsPowerShell\Modules\MonModule

Si vous executez des commandes depuis des taches planifiées ou si les commandes peuvent être executé par tout le monde , il est préferable d’installer dans le répertoire

%SystemRoot%,
soit
%WINDIR%\System32\WindowsPowerShell\v1.0\Modules\MonModule

Il est important que le nom du répertoire « MonModule » soit identique aux noms des fichiers avec l extension *.PSD1 & *.PSM1.

  • liste les modules chargés
Get-Module
ou
Get-PSSnapin
  • liste les modules diponible mais non encore chargés
Get-Module –ListAvailable
  • Charger un module
Import-module module
  • Decharger un module
Remove-Module module

ServerManager -

[modifier] Restrictions

  • connaitre son niveau d'execution
get-executionpolicy
Restricted

Pour executer des scripts signés et non signés en local, il suffit de valider la commande

Set-ExecutionPolicy RemoteSigned
ou
Set-ExecutionPolicy –ExecutionPolicy RemoteSigned –Scope Process

dans powershell attention lancer powershell en tant qu'admin pour ce faire.

[modifier] Un shell a distance

  • PowerShell Doit être installé sur la machine local et sur la machine distante.
  • Les 2 machines doivent être configurés pour une gestion a distance.
Enable-PSRemoting
ou
Winrm
Enter-PSSession -computer NOMMACHINE -port 5985 -credential domain01\user01
Alias: etsn
  • déactivation du shell a distance
Disable-PSRemoting

[modifier] commandes utiles

Get-Process, Start-Process, Stop-Process, Wait-Process, Debug-Process
Get-Service
Get-EventLog
Restart-Computer
Test-Connection
Clear-EventLog
Get-EventLog
Get-Hotfix
Get-Process
Get-Service
Set-Service
Get-WinEvent
Get-WmiObject, Get-WmiObject -List, Get-WmiObject -List | Where-Object { $_.name -match 'disk'}, Get-WmiObject win32_computersystem

[modifier] les Objets (Outils intégrés)

  • cmdlets (mini-exe réalisant des fonctions préséfinies
Out-GridView,
  • utilitaires:
fsutil,etc...
New-Object -TypeName System.Diagnostics.EventLog
New-Object -TypeName System.Diagnostics.EventLog -ArgumentList Application
$AppLog = New-Object -TypeName System.Diagnostics.EventLog -ArgumentList Application
$AppLog | Get-Member -MemberType Method
$AppLog.Clear()
$AppLog

Méthodes statiques:

[espace de nom. <type .net>]::<Membre-statique>
[System.DateTime]::Now

http://msdn.microsoft.com/fr-fr/library/gg145045.aspx

  • Tout les objets COM

Vous devez spécifier le paramètre ComObject avec l'identificateur programmatique (ou ProgId) de la classe COM à utiliser.</b> Vous pouvez créer les objets WSH en spécifiant ces ProgId : WScript.Shell, WScript.Network, Scripting.Dictionary et Scripting.FileSystemObject. Les commandes suivantes créent ces objets :

New-Object -ComObject WScript.Shell
New-Object -ComObject WScript.Network
New-Object -ComObject Scripting.Dictionary
New-Object -ComObject Scripting.FileSystemObject
gci HKLM:\Software\Classes -ea 0| ? {$_.PSChildName -match '^\w+\.\w+$' -and (gp "$($_.PSPath)\CLSID" -ea 0)} | ft PSChildName

Lister tout les ProgId

dir  REGISTRY::HKEY_CLASSES_ROOT\CLSID -include PROGID -recurse | foreach {$_.GetValue("")}
ou
get-wmiobject Win32_COMClass
$WshShell = New-Object -ComObject WScript.Shell
$WshShell | Get-Member
$lnk = $WshShell.CreateShortcut("$Home\Desktop\PSHome.lnk")
  • Tout les objet fs
Get-ChildItem c:\
  • Tout les objet AD
Get-ADObject  

Télécharger RSAT "Remote Server Admin Tools" nouveau AdminPack pour win2008srv.
http://www.microsoft.com/fr-fr/download/details.aspx?id=7887

  • Tout les objet WMI
Get-WMIObject Win32_NetworkAdapterConfiguration

http://msdn.microsoft.com/fr-fr/library/windows/desktop/aa394572%28v=vs.85%29.aspx

  • Tout les objet du registre
Get-ChildItem -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\HotFix
  • Getting Credentials From The Command Line
PS> $key = "HKLM:\SOFTWARE\Microsoft\PowerShell\1\ShellIds"
PS> Set-ItemProperty $key ConsolePrompting True
PS> Get-Credential

[modifier] Astuces

F7 -- Pour avoir l'historique des commandes

[modifier] Recettes

  • Registre
PS >Set-Location HKCU:\Software\Microsoft\Windows\CurrentVersion\Run
PS >Get-ItemProperty .

To set:

PS >(Get-ItemProperty .).MyProgram
c:\temp\MyProgram.exe
PS >Set-ItemProperty . MyProgram d:\Lee\tools\MyProgram.exe
PS >(Get-ItemProperty .).MyProgram
d:\Lee\tools\MyProgram.exe

To remove:

PS >Remove-ItemProperty . MyProgram
PS >(Get-ItemProperty .).MyProgram

To creating new:

PS >New-ItemProperty . -Name MyProgram -Value c:\temp\MyProgram.exe

To copying:

Copy-Item -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion' -Destination hkcu:

ACL

PS >Get-Acl HKLM:\Software
  • Lecteurs
$obj = New-Object -com Wscript.Network 
$obj.MapNetworkDrive("x:", "\\serveur\partage")
  • Services
Get-Service
Get-Service OC*
Get-Service | Where-Object {$_.status -eq "running"}
Restart-Service "nom service"
Set-Service "nom service" -StartupType Automatic
Stop-Service "nom service"
Start-Service "nom service"
  • Sécurité
  • Effacer un profile utilisateur
( Get-WmiObject -Class Win32_UserProfile | Where-Object { $_.LocalPath -eq 'c:\users\user' } ).Delete()

[modifier] Ressources

http://technet.microsoft.com/en-us/scriptcenter/bb410849.aspx

Outils personnels