Я написал простой код для подключения консоли к разным клиентам и различным службам с двумя вариантами переключения
Первый: выберите клиент / клиент
Второй: выберите сервис (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
}
}