
Intenté hacerlo desde un PowerShell simple y recién instalado sin nada más instalado en la parte superior, pero la forma oficial simplemente parece generar errores sobre administradores de paquetes faltantes, proveedores de paquetes inexistentes, comandos faltantes y varios otros mensajes similares. . (El sitio de Microsoft simplemente dice que Install-Module ExchangeOnlineManagement
es todo lo que se necesita)
En pocas palabras, la forma real de hacerlo es instalar una gran cantidad de programas interdependientes en PowerShell para finalmente poder ejecutar el Install-Module ExchangeOnlineManagement
comando. Las instrucciones para hacerlo están fragmentadas en todo el sitio de Microsoft y tratar de hacerlo implica depurar una docena de errores diferentes, lo cual es un proceso que requiere mucho tiempo.
¿Qué es uncompleto¿Conjunto de pasos para pasar de un PowerShell simple a uno que pueda conectarse a Office-365 Exchange Online, en una máquina con Windows?
Respuesta1
Los módulos y cmdlets disponibles son específicos de la versión de PowerShell. No está diciendo qué WinOS está ejecutando ni qué versión de PowerShell está ejecutando.
No hay ninguna razón para instalar PowerShell en Windows.Está ahí por defecto, ya que es parte del sistema operativo. Simplemente use el menú de inicio para activar el host de la consola o el ISE (entorno de secuencias de comandos integrado). Sin embargo, si tiene Windows heredado, entonces estará en PowerShell heredado a menos que haya actualizado la versión de Windows Powershell a la última.
Diferencias entre versiones de PowerShell
Entonces, powershell.exe o powershell_ise.exe son los ejecutables.
La única otra opción para la instalación es instalar un PowerShell Core multiplataforma(aunque no es necesario para lo que buscas, pero es una opción y puedes usar cualquiera de las dos, incluso al mismo tiempo).
La instalación de PSCore no actualiza ni reemplaza Windows PowerShell, que es parte del sistema operativo. Es un modelo lado a lado y...
pwsh.exe
... es el ejecutable de PSCore.
Luego actualizas los archivos de ayuda de PowerShell...
Update-Help -Force -ErrorAction SilentlyContinue
..., y luego use el...
Find-Module
... comando solo para actualizar la gestión de paquetes o un módulo específico,
Find-Module -Name 'ExchangeOnlineManagement' |
Install-Module -Force
... o simplemente ejecuta esto...
Install-Module -Name PackageManagement -Force -MinimumVersion 1.4.6 -Scope CurrentUser -AllowClobber
... manualmente, para actualizar el administrador de paquetes.
Por último, instale los módulos que necesita o desea y haga que se carguen automáticamente utilizando su perfil de PowerShell. En tu perfil, esto...
# Required for use with web SSL sites
[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::
SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12
(New-Object System.Net.WebClient).Proxy.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials
... debería estar allí, así como en todos los scripts que se distribuyan.
Para usar cualquier cosa en O365/M365, primero debe iniciar sesión en el servicio.
Conéctese a todos los servicios de Microsoft 365 en una única ventana de PowerShell
$orgName="<for example, litwareinc for litwareinc.onmicrosoft.com>"
$acctName="<UPN of the account, such as [email protected]>"
$credential = Get-Credential -UserName $acctName -Message "Type the account's password."
#Azure Active Directory
Connect-AzureAD -Credential $credential
#SharePoint Online
Import-Module Microsoft.Online.SharePoint.PowerShell -DisableNameChecking
Connect-SPOService -Url https://$orgName-admin.sharepoint.com -credential $credential
#Skype for Business Online
Import-Module MicrosoftTeams
Connect-MicrosoftTeams -Credential $credential
#Exchange Online
Import-Module ExchangeOnlineManagement
Connect-ExchangeOnline -ShowProgress $true
#Security & Compliance Center
Connect-IPPSSession -UserPrincipalName $acctName
#Teams
Import-Module MicrosoftTeams
Connect-MicrosoftTeams -Credential $credential
Respuesta2
A través de prueba y error, logré hacerlo de esta manera (aunque no estoy exactamente seguro de qué tan seguro y correcto es hacerlo, o si hay algunos pasos redundantes, ya que el conocimiento adecuado está fragmentado):
Para comenzar:
Lo primero es comprobar la versión de PowerShell con Get-Host
, que tiene que ser al menos 5.0
. De lo contrario, instale el .msu
paquete más reciente descargando y ejecutando dicho instalador. Entonces corre:
# Powershell defaults to TLS1.1, which was deprecated.
# Thus by default its package management functions ship broken. Force it to use TLS1.2 by setting:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Find-PackageProvider -Name "NuGet" -AllVersions
# Select the latest version
Install-PackageProvider -Name "NuGet" -RequiredVersion "2.8.5.208" -Force
# Check with
Get-PackageProvider
# Register the repo
Register-PSRepository -Default -Verbose
# Check with
Get-PSRepository
# Check which version pops up in the error when running
Install-Module PowerShellGet
# Then run the command to update PowerShellGet (replace the version number with the latest from the previous command):
Install-Module PowerShellGet -RequiredVersion 2.2.5
# Finally:
Install-Module ExchangeOnlineManagement
# Next, enable running scripts with:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
# Import
Import-Module ExchangeOnlineManagement
Respuesta3
Asegúrese de que la versión de su servidor/cliente de Windows sea lasistema operativo compatible, y su servidor/cliente cumple con losrequisitos previos para el módulo EXO V2(Sistemas operativos compatibles para el módulo EXO V2):
Luego instale el módulo EXO V2:
Instalar o actualizar elMódulo PowerShellGet(Asegúrese de estar utilizando TLS 1.2)
Instale el módulo EXO V2 con el comando
Install-Module -Name ExchangeOnlineManagement
Excepto usar el módulo EXO V2 en PowerShell para administrar objetos de Office 365, también puede usar elautenticación básica para conectarse a Exchange Online PowerShell(Antes de eso, elrequisitos previosdebe notarse.)