Powershell: работает как скрипт, но не как модуль - PullRequest
0 голосов
/ 08 мая 2019

Я написал простой код для подключения консоли к разным клиентам и различным службам с двумя вариантами переключения

Первый: выберите клиент / клиент
Второй: выберите сервис (Azure AD / Ex Online)

Когда я запускаю это как скрипт, он работает без проблем.Когда я запускаю его как модуль, он все еще работает до такой степени, что когда я выбираю Exchange Online, он входит в систему с сохраненными учетными данными и «импортирует» некоторые данные.

Но, например, Get-Mailbox не распознанкоманда - только если я запускаю это как скрипт - хотя "соединение" с O365 живо.На этом этапе мне нужно снова повторить Import-PSSession, чтобы эти команды работали.

Может кто-нибудь сказать мне, что я сделал или неправильно понял, здесь?

Спасибо.

<#
    .SYNOPSIS
    Easy connect to different O365 Modules
    .DESCRIPTION
    Use the different options to connect to O365: AzureAD, Exchange Online, etc.
    .PARAMETER Client
    Enter the client you are trying to connect to.
    BUD (****)
    MEN (****)
    .PARAMETER Service
    Enter the service you need.
    Option 1: AAD (Azure AD)
    Option 2: Exchange (Exchange Online)
    .EXAMPLE
    Connect-O365 -Client BUD
    .NOTES
    Written by: Daniel Leiner
    Version:    1.2
    Date:       05/07/2019

#>

param(
[parameter(mandatory=$false)][string]$Client,
[parameter(mandatory=$false)][string]$Service
)

        if ([string]::IsNullOrEmpty($Client)) {

  $Client = switch (Read-Host "Hello, which client you want to connect to?" `n "1) BUD "`n "2) Men" `n "3) Different"`n)
{
        1 { "BUD"; break }
        2 { "MEN"; break }
        3 { "Unknown"; break }
        default { "Inkorrekte Eingabe" }

}
                                              }    
            If ($Client -eq "BUD")
                {$Cred = Get-StoredCredential -User admin@************}
        Elseif ($Client -eq "MEN")
                {$Cred = Get-StoredCredential -User admin@*************}
        Elseif ($Client -eq "Unknown")
                { $Cred = Get-Credential" }

      if ([string]::isNullorEmpty($Service)) {

 switch (Read-Host "Where do you want to connect to?" `n "a) AzureAD" `n "b) Exchange Online" `n)
                {
                    a { $service = "AAD"; break }
                    b { $service = "Exchange"; break }
                    default { "Incorrect Input." } 
                } 
                                            }

            if ($service -eq "AAD") 
            { Connect-AzureAD -Credential $cred }
        elseif ($service -eq "Exchange")
            { $global:worksession = New-PSSession -ConfigurationName Microsoft.Exchange -Credential $cred -ConnectionUri https://outlook.office365.com/powershell-liveid `
            -Authentication Basic -AllowRedirection 
        Import-PSSession $global:worksession -AllowClobber -DisableNameChecking
                        }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...