Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Встроить функцию в PowerShell (http://forum.oszone.net/showthread.php?t=306135)

The_Immortal 01-10-2015 21:05 2559825

Встроить функцию в PowerShell
 
Всех приветствую!

Друзья, имеется такой вот скрипт в виде функции. Не могу сообразить как эту штуку использовать... Нашел инструкцию о том, как запихнуть это дело в профайл:
Код:

New-Item $PROFILE.CurrentUserAllHosts -ItemType File
notepad $PROFILE.CurrentUserAllHosts
. c:\scripts\Get-LoggedOnUser.ps1

Но теперь каждый раз, когда я запускаю PowerShell у меня функция из этого скрипта сразу же автоматически вызывается, что очень неудобно.

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


Спасибо!

Kazun 01-10-2015 21:21 2559832

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

Код:

}#Get-LoggedOnUser
но если исправить на неправильный вариант :

Код:

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

The_Immortal 01-10-2015 21:36 2559836

Kazun, извиняюсь, я попутал... Это не вызов функции, а запрос на её запуск:

Код:

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

Можно ли это как-то отключить?
Я пробовал
Код:

Set-ExecutionPolicy Unrestricted
, но это приводит к вышеуказанному результату.

Kazun 01-10-2015 21:37 2559837

Выполнить один раз:
Код:

Unblock-File c:\scripts\Get-LoggedOnUser.ps1

The_Immortal 01-10-2015 21:44 2559839

Kazun,
Код:

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

Kazun 01-10-2015 21:47 2559841

Данный командлет появился в PowerShell 3+ , если нет, то использовать и перезапустить shell:

Код:

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


Время: 15:24.

Время: 15:24.
© OSzone.net 2001-