- Accueil
- Info légales
- Aide (FAQ)
- Les tags de ce site
- Bloc note
- Articles techniques
- Notes system
- Divers articles
- Drupal
- Notes ITIL 2007
- Notes MS
- Dans le quartier...
- Emploi
- Recettes de cuisine et adresses gourmandes
- mes applis ubuntu préferées
- Divers acronymes du monde social
- Internet 2018
- P2 meublé à louer - quartier du Poteau 75018
- apcos - réseaux sociaux et outils
- Articles techniques
- Divers liens
- Fun
- Mon CV IT
- Nouveautés
Cours PowerShell 3 : premiers pas
source: www.dsfc.net/wp-content/uploads/supports/support-powershell-3-0.pdf
Premiers pas avec PowerShell 3
applets de commande ou cmdlets => jeu de commandes qui peut être enrichi par l'installation de logiciels (comme Microsoft Exchange 2007).
A partie du dos, tapper powershell ou via menu Démarrer, rechercher powershell
types d'objets
source: http://powershell-scripting.com/index.php?option=com_content&task=view&i...
Les objets WMI (Windows Management Instrumentation) concernent la gestion des systèmes. Ex pour voir L1 et L2: Get-WmiObject -Class Win32_CacheMemory -Namespace root/cimv2 -ComputerName . | Format-Table -Property name,purpose, installedsize
Les objets COM pour Component Object Model étendent l’utilisation de PowerShell à toutes les applications de votre système disposant d’API (Application Programming Interface) COM. Explication : les objets COM qui sont « publiques », distribués généralement avec vos applications (Microsoft Office, par exemple) vont vous permettre d’agir sur ces applications en question.
Microsoft a introduit des sécurités pour qu’un script non autorisé ne puisse pas s’exécuter à l’insu de l’utilisateur.
Protection et sécurité
Voir niveau de sécurité Get-ExecutionPolicy -List
Mon pc retourne les scopes (MachinePolicy, UserPolicy, Process, CurrentUser et LocalMachine) tous à Undefined.
Changer le niveau de sécurité avec Set-ExecutionPolicy
Le paramètre scope permet de limiter le niveau de sécurité à l’utilisateur courant, à la machine, etc.
AllSigned Seul les scripts "signés" fonctionnent
RemoteSigned Les scripts locaux fonctionne, ceux d'internet doivent être "signés"
Restricted Aucun script externe autorisé
Unrestricted Aucune limite pour l'exécution des scriptsSet-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy unrestricted
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy remotesigned
Signature
Get-AuthenticodeSignature "C:\windows\notepad.exe" ex non signé
Get-AuthenticodeSignature "C:\Program Files\Skype\Phone\skype.exe" ex signé
Voir aussi
Get-Help about_Execution_Policies | erreur, Update-Help permet de dl l'aide (si lancé en admin) |
Get-Help about_Profiles | |
Get-ExecutionPolicy | pour déterminer votre stratégie d’exécution (en général à Restricted) |
Set-ExecutionPolicy | |
Set-AuthenticodeSignature | |
Get-Alias | liste les alias (par ex ls comme linux) |
Sur la sécurité et stratégies (manquant dans le pdf), voir http://powershell-scripting.com/index.php?option=com_content&task=view&i...
Restricted |
- Stratégie par défaut - Ne permet que la saisie interactive de commandes, c'est-à-dire uniquement dans le shell - Les scripts ne sont pas autorisés |
AllSigned |
- Les scripts peuvent être exécutés mais seulement s’ils sont signés - Demande confirmation avant l’exécution de chaque script |
RemoteSigned |
- Les scripts exécutés localement peuvent être exécutés sans être signés - Les scripts téléchargés à partir d’internet doivent être signés - Ne demande pas de confirmation avant d’exécuter des scripts signés ou non par une autorité de certification connue de votre ordinateur |
Unrestricted | - Tous les scripts signés ou non peuvent être exécutés |
Pour débuter: Set-ExecutionPolicy RemoteSigned
Donc désormais vous pouvez écrire vos scripts dans un éditeur de texte et faire appel à eux soit depuis l’interpréteur de commandes PowerShell, soit en double-cliquant sur le fichier correspondant au script (par exemple monscript.ps1).
Voir bib scripts à http://powershell-scripting.com/index.php?option=com_content&task=sectio...
la console
Source: http://windowsforensique.com/index.php/admin-powershell/fondamentaux/fon...
Utiliser TAB (path et méthodes, variables et objets) et flèches curseur. F7 : Affiche une boîte contenant l’historique des commandes. F9 : rappeler une commande de l’historique à partir de son numéro
[Ctrl]C : Met fin à l ’exécution de l’instruction courante. [Ctrl][Pause] : Met fin à l ’exécution de la conole.
commandes (syntaxe et les 4 types)
[nom de commande] –[param] –[param] [arg1], [arg2]
Un paramètre est une variable acceptée par une commande, un script ou un fonction. Un argument est une valeur affecté à une fonction.
cmdlets |
Exp : Get-Command |
Fonctions shell |
Ex : Ps c:\> |
Scripts |
Si le fichier n’est pas dans ce chemin :
Exécution dans une invite de commande Windows : |
Commandes natives |
Ps: c>
Invoquer Powershell depuis d’autres shells : Powershell -? |
cmdlets
connaître les paramètres acceptés par une applet de commande : Nom_cmdlet -?
Get-command permet de déterminer les paramètres disponibles et leur utilisation : Get-command nom_cmdlet
Get-command get-pocess|format-list definition
Paramètres communs :
Paramètre Type de données Description
Verbose Booleen Génère une information concernant l’opération
debug Boolean Génère les détails de l’opération destiné au programmeur
ErrorAction Enum Détermine la réponse de l’applet de commande aux erreurs.
ErrorVariable String Désigne une variable qui stocke les erreurs de la commande pendant son exécution
Outvariable string Désigne une variable qui stocke la sortie de la commande pendant son exécution
OutBuffer Int32 Détermine le nombre d’objets à placer dans le tampon avant d’invoquer l’applet de commande du pipeline
Whatif Boolean Affiche le déroulement de l'exécution de la commande, mais sans réellement l'exécuter. *
Confirm Boolean Demande une autorisation avant d'effectuer toute action qui modifie le système. *
* Ces deux dernier paramètres sont particuliers car ils exigent que l’applet de commande prennent en charge la méthode .net ShouldProcess.
la suite à commandes de base (source: http://windowsforensique.com/index.php/admin-powershell/fondamentaux/com...)
Autorité de certification CA (avec makecert)
La commande makecert.exe est installée avec Office ou Visual Studio.makecert.exe -n "CN=Dsfc" -a sha1 -eku 1.0 -r -sv private.pvk certificat.cer -ss Root -sr localMachine
Associer un certif à un script :$cert=@(Get-ChildItem cert:\Currentuser\My)[0]
Set-AuthenticodeSignature d:\test.ps1 $cert
Aide
get-host (donne v powershell), get-help ...
Pour actualiser l'aide: Update-Help