Powershell

De Linuxmemo.

(Différences entre les versions)
(Les profiles)
Ligne 80 : Ligne 80 :
==Les profiles==
==Les profiles==
-
*Utilisateurs     
+
*Type Utilisateurs     
%UserProfile%\My Documents\WindowsPowerShell\profile.ps1
%UserProfile%\My Documents\WindowsPowerShell\profile.ps1
Ligne 86 : Ligne 86 :
%UserProfile%\My Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
%UserProfile%\My Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
-
*machine (pour tout les utilisateurs)
+
*Type Machine (pour tout les utilisateurs)
%windir%\system32\WindowsPowerShell\v1.0\profile.ps1
%windir%\system32\WindowsPowerShell\v1.0\profile.ps1

Version du 19 novembre 2012 à 22:17

Sommaire

Syntaxe

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 *
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

Appel des méthodes

$a = 12
$a.GetType()
Int32

Filtres

  • wc = Measure-Object
Get-Command | Measure-Object
  • grep = Select-String
  • Where-Object
Get-service | Where-Object {$_.status -eq 'Stopped'}

Guillemets

double ""

substitution de variable

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

protection de chaine

Caractère d'échappement

AltGr + 7 donne le backtick "`"

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

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

Avoir de l'aide

  • sur un commande
Get-Help commande
Get-Help commande -examples
Get-Help commande -detailed
Get-Help commande -full
ou 
help commande
  • liste des commandes
Get-Command
  • lister tout les propriétés et méthodes d'un objet
$maVariable | Get-Member
appel méthode
$maVariable.ToUpper()

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

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:

Les modules

Click Start, point to Administrative Tools, and then click Module Active Directory pour Windows PowerShell .

Les modules sont des fichier .psd1 ou .psm1

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 -

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.

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.

Démarrez le service Windows Remote Management (WinRM). "net start winrm"

Enter-PSSession -computer Server01 -port 90 -credential domain01\user01

Alias: etsn

Outils intégrés

  • cmdlets (mini-exe réalisant des fonctions préséfinies

Out-GridView,

  • utilitaires:

fsutil,

  • Tout les objet .net
  • Tout les objet fs
  • 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

  • Tout les objet du registre

Get-ChildItem -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\HotFix

Astuces

F7 -- Pour avoir l'historique des commandes

Ressources

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

Outils personnels