Назад | Перейти на главную страницу

Мои функции PowerShell не зарегистрированы

У меня есть скрипт ps1, в котором я определяю 2 функции как таковые:

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"
}

Затем я вызываю файл ps1, набирая его (он находится в папке по пути, и автозаполнение работает)

Однако я не могу начать пользоваться функциями. Я смущен, потому что, когда я копирую / вставляю функции в консоль, все в порядке, и они работают. У меня также есть функция, определенная в моем профиле, и она работает. Где я ошибаюсь, почему не работает то, что я пытаюсь сделать?

Для того, чтобы функции были доступны, вам необходимо «поставить точку» в скрипте. «Dot Sourcing» запускает сценарий в текущей области.

Чтобы указать источник сценария с точкой, вы помещаете точку, затем пробел и затем полный или относительный путь к сценарию.

например

. ./myscript.ps1

Проверять, выписываться эта почта о запуске скриптов PowerShell из командной строки.