Utilisation de l'instruction dans PowerShell

Utilisation De L Instruction Dans Powershell



PowerShell est un shell de ligne de commande robuste et un langage de script principalement utilisé pour contrôler les systèmes informatiques et automatiser les tâches administratives. L'utilisation d'instructions est l'un des principes fondamentaux les plus cruciaux de PowerShell. En particulier, le « en utilisant ” joue un rôle crucial dans la gestion des ressources et la garantie d'une exécution efficace du code.

Cet article explore divers aspects de l'instruction 'using' dans PowerShell, y compris sa syntaxe, son objectif et ses applications pratiques.







Objectif de la déclaration « utiliser »

L'instruction 'using' vous permet de spécifier quels espaces de noms sont utilisés dans la session. En ajoutant des espaces de noms, vous pouvez importer des classes à partir de modules de script et d'assemblys et simplifier l'utilisation des classes et des membres .NET.



Incontournables de la déclaration « utiliser »

  • L'instruction 'using' doit apparaître avant toute autre instruction de script ou de module. Il ne peut être précédé d'aucune instruction non commentée, y compris des paramètres.
  • Aucune variable ne doit être présente dans l'instruction 'using'.
  • L'instruction « using » ne doit pas être confondue avec le modificateur de portée « using : » pour les variables. Ils sont tous deux différents dans leur but et leur signification.

Syntaxe de l'instruction 'using'



La syntaxe de l'instruction 'using' est la suivante :





utilisation de l'espace de noms < Espace de noms .NET >

Passons en revue l'exemple suivant :



en utilisant l'espace de noms System.IO

$octets = [ Déposer ] ::ReadAllBytes ( 'D:\c sharp\Linuxhint1.txt' )
[ InfoFichier ] ::nouveau ( 'D:\c sharp\Linuxhint1.txt' )

Dans le code ci-dessus, nous avons d'abord désigné l'espace de noms 'System.IO'. La deuxième ligne du programme, [File]::ReadAllBytes(‘D:c sharpLinuxhint1.txt’), lit chaque octet du fichier fourni et les place dans la variable $Bytes. Dans la troisième ligne, [FileInfo]::new('D:c sharpLinuxhint1.txt') crée une nouvelle instance de la classe FileInfo et renvoie l'objet FileInfo.

Instruction 'using' pour les modules

Nous pouvons également utiliser l'instruction 'using' pour charger les classes d'un module.

Syntaxe

en utilisant le module < nom_module >

Dans cette syntaxe, le «  », une spécification de module complète ou un chemin vers un fichier de module peut être utilisé comme valeur pour « nom du module ».

Vous pouvez utiliser un chemin complet ou relatif lorsque « nom-module> » est un chemin. Lorsqu'une instruction 'using' est présente dans un script, un chemin relatif est résolu dans ce script.

PowerShell recherche le module fourni dans PSModulePath lorsque « » est un nom ou une spécification de module. Les clés suivantes constituent la table de hachage qui est une spécification de module :

NomModule - Requis. Nomme le module en question.

GUID facultatif – spécifie le GUID du module.

De plus, vous devez spécifier l'une des trois clés répertoriées ci-dessous.

VersionModule – Une version minimale autorisée du module est spécifiée via la propriété 'ModuleVersion'.

VersionMaximum – Définit la version la plus élevée autorisée du module.

RequisVersion – Détermine la version précise et nécessaire du module à l'aide de 'RequiredVersion'. Les autres clés de version ne peuvent pas être utilisées avec cela.

Le module racine (ModuleToProcess) d'un module binaire ou d'un module de script est importé par la déclaration de module 'using'. Les classes spécifiées dans les modules imbriqués ou les scripts qui sont dot-sourced dans le module ne sont pas importées de manière fiable. Toutes les classes que vous souhaitez rendre disponibles aux utilisateurs en dehors du module doivent être spécifiées dans le module racine.

Voici un exemple :

en utilisant le module PSReadline

Déclaration « à l'aide » pour l'assemblage

L'instruction 'using' peut également être utilisée pour précharger des types à partir d'un assembly .NET.

Syntaxe

en utilisant l'assemblage < .NET-assembly-path >

Dans cette syntaxe, lorsqu'un assembly est chargé, les types .NET de cet assembly sont préchargés dans le script avant qu'il ne soit analysé. Par conséquent, il est possible de développer de nouvelles classes PowerShell qui utilisent les types d'assembly préchargés.

Regardez un exemple d'application de l'instruction 'using' avec un 'assembly':

en utilisant l'assembly System.Windows.Forms

Dans cette commande, nous avons chargé l'assembly ' Système.Windows.Forms » dans PowerShell à l'aide de l'instruction 'using'.

Instruction 'using' pour les clés de table de hachage

' Tables de hachage ' sont des structures de données adaptables utilisées dans PowerShell à diverses fins, notamment le stockage des données de configuration, la fourniture d'arguments aux applets de commande et le stockage des données dans des scripts.

Le hachage cryptographique pour la chaîne ' Astuce Linux ! ” est obtenu via le script suivant :

en utilisant l'espace de noms System.Text
en utilisant l'espace de noms System.IO [ chaîne ] $chaîne = 'LinuxHint!'
[ chaîne ] $algorithme = 'SHA1'

[ octet [ ] ] $stringbytes = [ Codage Unicode ] ::Unicode.GetBytes ( $chaîne )

[ Flux ] $memorystream = [ MemoryStream ] ::nouveau ( $stringbytes )
$hashfromstream = Get-FileHash -Flux d'entrée $memorystream `
-Algorithme $algorithme
$hashfromstream .Hash.ToString ( )

Le code PowerShell ci-dessus commence par importer les espaces de noms requis pour les opérations sur les fichiers et l'encodage. La chaîne d'entrée et l'algorithme de hachage (dans ce cas ' SHA1 ”), sont alors définis. La chaîne d'entrée est ensuite encodée à l'aide de ' Unicode ” pour créer un tableau d'octets.

Le contenu du tableau d'octets est ensuite utilisé pour construire un ' flux de mémoire ”. La valeur de hachage du flux de mémoire est calculée à l'aide de l'algorithme 'SHA1' fourni par le ' Get-FileHash ” applet de commande. Le script se termine par l'impression de la valeur de hachage obtenue sous forme de chaîne dans la sortie.

Sortir

Conclusion

Le ' en utilisant ” dans PowerShell est un outil puissant pour spécifier des espaces de noms, des modules ou des assemblys. Sa syntaxe et son objectif fournissent une approche normalisée et sûre pour gérer les ressources, faciliter une élimination appropriée et réduire la duplication de code.