Сценарий командлета, который я написал, работает хорошо. Я хочу использовать это, когда я нахожусь в любом каталоге. Я могу сделать это, поместив его в каталог в PATH.

Однако на самом деле это не "установлено" как командлет. У него всегда есть расширение «.ps1» в имени команды.

Должен ли модуль быть написан и установлен?

Большая проблема в том, что каждый в моей группе должен иметь возможность использовать сценарий. Означает ли это, что это нужно включить в скрипт профиля «Все пользователи, все хосты»? Пользователь должен запустить PowerShell, используя -NoProfile для производственных процессов. Если создается файл .psm1, всегда ли PowerShell загружает его?

2 ответа2

1

Когда я столкнулся с подобной проблемой, я переписал сценарий, чтобы он стал функцией, использующей привязку командлетов. Затем я помещаю определение функции в свой $ PROFILE, чтобы оно всегда было доступно для меня.

В зависимости от того, что вы действительно пытаетесь сделать, это может сработать для вас.

0

Превратите ваш командлет в модуль PowerShell, а затем поместите его в общее место для общесерверных модулей PowerShell. Даже при использовании -noprofile ваш командлет будет доступен для всех пользователей.

Есть много ресурсов о том, как создавать модули PowerShell онлайн, это другой вопрос.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .