Войти

Показать полную графическую версию : [решено] Встроить функцию в PowerShell


The_Immortal
01-10-2015, 21:05
Всех приветствую!

Друзья, имеется такой вот (https://gallery.technet.microsoft.com/scriptcenter/d46b1f3b-36a4-4a56-951b-e37815a2df0c#content) скрипт в виде функции. Не могу сообразить как эту штуку использовать... Нашел инструкцию о том, как запихнуть это дело в профайл:
New-Item $PROFILE.CurrentUserAllHosts -ItemType File
notepad $PROFILE.CurrentUserAllHosts
. c:\scripts\Get-LoggedOnUser.ps1
Но теперь каждый раз, когда я запускаю PowerShell у меня функция из этого скрипта сразу же автоматически вызывается, что очень неудобно.

Что нужно исправить, чтобы функция спокойно себе сидела и ждала своего вызова?


Спасибо!

Kazun
01-10-2015, 21:21
Предполагаю, что изменения были в скрипте, т.к. проблем в ее первоначальном виде нет, т.к. вызов функции в 46 строке закоментировано.

}#Get-LoggedOnUser


но если исправить на неправильный вариант :

}Get-LoggedOnUser

Тогда получим вызов функции при загрузке профиля.

The_Immortal
01-10-2015, 21:36
Kazun, извиняюсь, я попутал... Это не вызов функции, а запрос на её запуск:

Предупреждение системы безопасности
Запускайте только доверенные скрипты. Хотя скрипты из сети Интернет могут быть полезными, данный скрипт потенциально
опасен для компьютера. Вы действительно хотите запустить C:\Get-LoggedOnUser.ps1?
[D] Не запускать - D [R] Запустить однажды - R [S] Приостановить - S [?] Справка
(значением по умолчанию является "D"):Можно ли это как-то отключить?
Я пробовал Set-ExecutionPolicy Unrestricted, но это приводит к вышеуказанному результату.

Kazun
01-10-2015, 21:37
Выполнить один раз:
Unblock-File c:\scripts\Get-LoggedOnUser.ps1

The_Immortal
01-10-2015, 21:44
Kazun, Имя "Unblock-File" не распознано как имя командлета, функции, файла скрипта или выполняемой программы. Проверьте правильность написания имени, а также наличие и правильность пути, после чего повторите попытку.

Kazun
01-10-2015, 21:47
Данный командлет появился в PowerShell 3+ , если нет, то использовать и перезапустить shell:

cmd /c "echo.>c:\scripts\Get-LoggedOnUser.ps1:Zone.Identifier"




© OSzone.net 2001-2012