1 votes

Mes fonctions PowerShell ne semblent pas être enregistrées

J'ai un ps1 script dans lequel je définis 2 fonctions comme telles :

function Invoke-Sql([string]$query) {
  Invoke-Sqlcmd -ServerInstance $Server -Database $DB -User $User -Password $Password -Query $query
}

function Get-Queued {
  Invoke-Sql "Select * From Comment where AwaitsModeration = 1"
}

J'appelle ensuite le fichier ps1 en le tapant (il est dans un dossier dans le chemin, et l'autocomplétion fonctionne)

Cependant, je ne peux pas commencer à utiliser les fonctions. Je suis confus, car lorsque je copie/colle les fonctions dans la console, tout va bien et elles fonctionnent. J'ai également une fonction définie dans mon profil, et elle fonctionne. Où est-ce que je me trompe, pourquoi ce que j'essaie de faire ne fonctionne-t-il pas ?

4voto

Eldila Points 4048

Pour que les fonctions soient disponibles, vous devez "dot sourcer" le script. "Dot Sourcing" exécute le script dans la portée actuelle.

Pour "dot source" un script vous mettez un point puis un espace et enfin le chemin complet ou relatif du script.

Par exemple

. ./myscript.ps1

0voto

icky3000 Points 4658

Vérifiez ce poste sur l'exécution de scripts powershell à partir de la ligne de commande.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X