Crovax
@Crovax
Системный администратор Windows

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

Имеется функция в модуле:
function Connect-Exchange {
    [Cmdletbinding()]
    param(
        [Parameter(Mandatory = $false)]
        [string]$URL = (Get-Content $HOME\.psvariables\exchangeserver)
    )
    Import-PSSession -Verbose (New-PSSession -Verbose -ConfigurationName Microsoft.Exchange -ConnectionUri http://$URL/PowerShell/ -Authentication Kerberos) -AllowClobber
}


Если я запускаю команды в консоли интерактивно, то все работает как и ожидается:
PS> [string]$URL = $(Get-Content $HOME\.psvariables\exchangeserver)
PS> Import-PSSession -Verbose (New-PSSession -Verbose -Name Exchange2013 -ConfigurationName Microsoft.Exchange -ConnectionUri http://$URL/PowerShell/ -Authentication Kerberos)
WARNING: The names of some imported commands from the module 'tmp_wyqpohdw.ids' include unapproved verbs that might make them less discoverable. To find the commands with unapproved verbs, run the Import-Module command again with the Verbose parameter. For a list of approved verbs, type Get-Verb.

ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Script     1.0        tmp_wyqpohdw.ids                    {Add-ADPermission, Add-AvailabilityAddressSpace, Add-ContentFilterPhrase, Add-DatabaseAvailabilityGroupServer...}

PS> get-mailbox test

Name                      Alias                ServerName       ProhibitSendQuota
----                      -----                ----------       -----------------
test                      test                 exchange2013     Unlimited


Но если эта функция находится в модуле, то что-то не работает:
PS> Connect-Exchange
WARNING: The names of some imported commands from the module 'tmp_fan0rj3t.nzp' include unapproved verbs that might make them less discoverable. To find the commands with unapproved verbs, run the Import-Module command again with the Verbose parameter. For a list of approved verbs, type Get-Verb.

ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Script     1.0        tmp_fan0rj3t.nzp                    {Add-ADPermission, Add-AvailabilityAddressSpace, Add-Conte...


PS> get-mailbox test
get-mailbox : The term 'get-mailbox' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ get-mailbox test
+ ~~~~~~~~~~~
+ CategoryInfo          : ObjectNotFound: (get-mailbox:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException


PS: если функцию определить в текущем сеансе, либо в файле профиля, то все работает.
  • Вопрос задан
  • 27 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
21 авг. 2018, в 20:22
530 руб./в час
21 авг. 2018, в 19:08
500 руб./за проект
21 авг. 2018, в 18:45
50000 руб./в месяц