13

PowerShellでOffice365アシスタンスツールを作成していますが、答えが見つからない単純な質問だと思います。によって作成された接続Connect-MsolServiceが存在し、アクティブであるかどうかを確認するにはどうすればよいですか?他のコマンドレットがチェックできるので、知る方法があるはずです。私はその方法が何であるかわからず、それを見つけることができません。

4

5 に答える 5

5

これが私の解決策でした。

try
{
    Get-MsolDomain -ErrorAction Stop > $null
}
catch 
{
    if ($cred -eq $null) {$cred = Get-Credential $O365Adminuser}
    Write-Output "Connecting to Office 365..."
    Connect-MsolService -Credential $cred
}
于 2016-02-04T14:29:37.940 に答える
4

Connect-MsolService接続するとオブジェクトを返しますが、私が見る限り、新しい変数は追加されません。おそらく、モジュールコマンドの1つを実行し、コマンドの実行結果に基づいてそれを判断できます。

Get-MsolDomain -ErrorAction SilentlyContinue

if($?)
{
    "connected"
}
else
{
    "disconnected"
}
于 2012-10-19T15:40:39.337 に答える
1

これは古い質問であることは知っていますが、これが私がこれを行った方法です:

# Only run if not already connected
if(-not (Get-MsolDomain -ErrorAction SilentlyContinue))
{
    $O365Cred = Get-Credential -Message "Please provide credentials for Microsoft Online"

    $O365Session = New-PSSession –ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell -Credential $O365Cred -Authentication Basic -AllowRedirection -ErrorAction Stop
    Connect-MsolService –Credential $O365Cred

    Import-PSSession $O365Session | Out-Null
}

Connect-MsolService行が行より前にある場合、$O365Session =間違った資格情報を入力すると、次の実行時に誤検出につながります (資格情報が間違っていたために接続されていなくても、接続されていると見なされます)。少ししゃっくりが起こるから。

-ErrorAction Stop行末の にも注意して$O365Session = New-PSSessionください。Connect-MsolServiceこれにより、不正な資格情報で行を試行することを防ぎます。

于 2020-01-23T16:10:53.317 に答える
-1

あなたがしget-pssessionなければならないのは、あなたが構成名に基づいてmsolサービスに接続しているかどうかをあなたに知らせるだけです。接続プロセスを自動化する場合は、if elseループを設定して、構成名と状態を確認できます。この例が必要な場合はお知らせください。Office365のユーザー情報をクエリしてWebページに表示するために作成したWebアプリにこれを設定しています。

于 2013-01-12T17:21:17.813 に答える
-1

Connect-MsolServiceモジュールを MSOnline という powershell にインポートするため、モジュールが存在するかどうかを確認するだけです。

Get-Module -Name MSOnline
于 2020-10-07T21:40:47.513 に答える