Outils pour utilisateurs

Outils du site


systemes_dexploitation:windows:all:powershell:introduction

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
systemes_dexploitation:windows:all:powershell:introduction [2022/09/27 17:10] – [RegEx] sgariepysystemes_dexploitation:windows:all:powershell:introduction [2022/12/14 14:42] (Version actuelle) – [Variables d'environnement] sgariepy
Ligne 1: Ligne 1:
 ====== PowerShell ====== ====== PowerShell ======
  
-Autres sujets : 
  
-  * [[systemes_dexploitation:windows:all:powershell:fichiers|Système de fichiers]] 
-  * [[systemes_dexploitation:windows:all:powershell:fichiers#web|Web]] 
  
 ====== Introduction ====== ====== Introduction ======
Ligne 36: Ligne 33:
  
   Write-Host $env:PATH   Write-Host $env:PATH
 +  Write-Host "App Version: $($env:APP_VERSION)"
  
 Pour la liste des variables d'environnement, on peut faire ''Get-ChildItem Env:''. Pour la liste des variables d'environnement, on peut faire ''Get-ChildItem Env:''.
Ligne 97: Ligne 95:
 Write-Output "Found $($scriptFiles.Count) files." Write-Output "Found $($scriptFiles.Count) files."
 </code> </code>
 +
 ===== Caractère d'échappement ===== ===== Caractère d'échappement =====
  
Ligne 102: Ligne 101:
  
   "La valeur de la variable `$var est $var"   "La valeur de la variable `$var est $var"
- 
  
 Par exemple, pour une commande : Par exemple, pour une commande :
Ligne 108: Ligne 106:
   Copy-Item -Recurse C:\Projets\Application` 101\Site` Web\* -ToSession $session -Destination C:\inetpub\Application` 101   Copy-Item -Recurse C:\Projets\Application` 101\Site` Web\* -ToSession $session -Destination C:\inetpub\Application` 101
  
 +
 +===== RegEx =====
 +
 +  $anyGO = [regex]::Match($line, 'GO')
  
 ===== Exemple ===== ===== Exemple =====
Ligne 234: Ligne 236:
  
 Pour avoir une comparaison sensible à la casse, il faut préfixer d'un ''c'' devant l'opérateur, par exemple ''-ceq'' au lieu de ''-eq''. Pour avoir une comparaison sensible à la casse, il faut préfixer d'un ''c'' devant l'opérateur, par exemple ''-ceq'' au lieu de ''-eq''.
- 
  
 Source : [[http://ss64.com/ps/syntax-compare.html|Comparison Operators]] Source : [[http://ss64.com/ps/syntax-compare.html|Comparison Operators]]
-===== Boucles ===== 
  
 +====== Système de Fichiers ======
  
 +===== Répertoires =====
  
 +Supprimer un répertoire étant certain qu'il faut le supprimer:
 +  Remove-Item -Recurse -Force repertoire
  
 +On peut ajouter ''-ErrorAction SilentlyContinue'' si on ne veut pas avoir d'erreur si le fichier/répertoire n'existe pas.
  
 +===== Variables utiles =====
  
-====== Gestion d'erreurs ======+  * ''$PSScriptRoot'' : Répertoire d'exécution du script.
  
 +====== Web ======
  
 +Exemple pour télécharger des fichiers:
  
 +  Invoke-WebRequest -Uri "https://awscli.amazonaws.com/AWSCLIV2.msi" -OutFile "AWSCLIV2.msi"
 +
 +Si une erreur comme ceci survient:
 +
 +  Invoke-WebRequest : The request was aborted: Could not create SSL/TLS secure channel.
 +
 +Exécuter cette commande:
 +
 +  [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
 +
 +===== Boucles =====
 +
 +====== Gestion d'erreurs ======
  
 ===== Trap statement ===== ===== Trap statement =====
Ligne 323: Ligne 344:
  
 ====== Exemples ====== ====== Exemples ======
- 
  
   iwr https://domain.org/script.ps1 -UseBasicParsing | iex   iwr https://domain.org/script.ps1 -UseBasicParsing | iex
  
 +====== SMO ======
  
-====== Développement de Cmdlet ======+La déclaration:
  
-Créer un projet .NET Standard (net46) de type Class Library et installer le package nuget ''Microsoft.PowerShell.5.ReferenceAssemblies''.+<code> 
 +[Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | Out-Null 
 +</code>
  
 +Une instance de l'objet qui représente le serveur SQL:
  
-  * [[https://msdn.microsoft.com/en-us/library/dd878294(v=vs.85).aspx|Writing a Windows PowerShell Cmdlet]]+<code> 
 +$srv = New-Object 'Microsoft.SqlServer.Management.SMO.Server' $sqlServerInstance 
 +</code>
  
 +Si on veut l'authentification en mode SQL:
  
-En développement, un DLL est créé comme tout autre projet .NET On peut le charger dans un ISE pour l'essayer.+<code> 
 +$srv.ConnectionContext.LoginSecure=$false; 
 +$srv.ConnectionContext.set_Login($env:DB_USERNAME); 
 +$srv.ConnectionContext.set_Password($env:DB_PASSWORD) 
 +</code>
  
-  PM> Import-Module –Name 'C:\myRandomDirectory\myModule.dll'+La liste des bases de données sur ''$srv'' :
  
 +<code>
 +$srv.Databases | Select name 
 +</code>
  
 +====== Développement de Cmdlet ======
  
 +Créer un projet .NET Standard (net46) de type Class Library et installer le package nuget ''Microsoft.PowerShell.5.ReferenceAssemblies''.
  
-====== Sources ====== +  * [[https://msdn.microsoft.com/en-us/library/dd878294(v=vs.85).aspx|Writing a Windows PowerShell Cmdlet]]
-  * [[http://www.tomsitpro.com/articles/powershell-piping-filtering-objects,2-771.html|PowerShell Basics: Objects, Piping, Filtering And More]]+
  
 +En développement, un DLL est créé comme tout autre projet .NET.  On peut le charger dans un ISE pour l'essayer.
  
 +  PM> Import-Module –Name 'C:\myRandomDirectory\myModule.dll'
  
 +====== Sources ======
 +
 +  * [[http://www.tomsitpro.com/articles/powershell-piping-filtering-objects,2-771.html|PowerShell Basics: Objects, Piping, Filtering And More]]
  
systemes_dexploitation/windows/all/powershell/introduction.1664291402.txt.gz · Dernière modification : 2022/09/27 17:10 de sgariepy