Giter Club home page Giter Club logo

connect-ms365's Introduction

PowerShell Gallery Version (including pre-releases) PowerShell Gallery

Build and Compile Master

GitHub milestone GitHub pull requests GitHub issues GitHub closed issues

Connect-MS365

Powershell module to connect to all MS365 services and install required modules or packages.

Purpose

Did you ever the experience that it's complicated to deal with multiple of the different Microsoft cloud-based services and have to remember the specific modules to add, commands to use to connect? So did I and found myself always looking them up again and again, especially for those used more rarely.

That's all what this module is about: it delivers one central CmdLet function which can be executed to connect to one or many of Microsoft's services and you don't have to care about the single service connection commands. Additionally it checks and installs the right modules or packages if necessary.

It is inspired by Connect-Office365 by Bradley Wyatt which I found and used for a while. As it wasn't published it was something I had to keep and distribute again and again. Additionally I wanted to add some advanced functions like installing and updating the dependant Microsoft modules.

Limitations

Unfortunately, adding PowerShell Core support (a.k.a. PowerShell 7) brought some limitations for supported Microsoft 365 services as the required modules do not support PowerShell Core. Following Microsoft 365 services are NOT supported when using PowerShell 7 / PowerShell core:

  • SharePoint Online (SPO)
  • Microsoft Online (MSOL)
  • Microsoft Azure AD (AAD)

Documentation

See the docs directory for full documentation.

License

Connect-MS365 is licensed under terms of GNU Lesser General Publice License (LGPL) v3.0. For further information see LICENSE file.

Contribute

As this is my pretty first public PS module project I share, please feel free to comment, feedback and contribute to this.

Environment

I use the following toolstake to develop and distribute this module:

  • PSdepend - defining depencies within the build process, so that they can be installed automatically when needed
  • Pester - for simple testing
  • psake - task automation for the build process

For further details please see 03-CONTRIBUTE

Maintainer

connect-ms365's People

Contributors

blindzero avatar ntt-matthias-fleschuetz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

connect-ms365's Issues

Contribute

I'd happy to contribute. I have been working on a similar module but using Certificates for seamless authentication.

Support of Pnp PowerShell

Is your feature request related to a problem? Please describe.
PnP Powershell is an open-source project, not maintained but also recommended / mentioned by Microsoft, to be used for management of Azure AD, Teams, SharePoint Online and Security & Compliance.

Describe the solution you'd like
Add support for simple authentication for the PnP PowerShell module.

Describe alternatives you've considered
Not supporting PnP as it is no official MSFT module.

Support Security and Compliance Center

Describe the solution you'd like
Support connections to MS Security and Compliance Center

Additional context

  • connection to MS SCC
  • installing modules if necessary

Error Connecting to SCC Service

The script was working fine yesterday, however, today I'm getting the error below when trying to connect to the SCC service. I'll note "compliance.protection.outlook.com" without the ps. does resolve, I tried to find where this was in the module code to test, but couldn't seem to track it down for some reason.

connect-ms365 -Service SCC
Connect-SCC : Could not connect to SCC.
Connecting to remote server ps.compliance.protection.outlook.com failed with the following error message : The WinRM
client cannot process the request because the server name cannot be resolved. For more information, see the
about_Remote_Troubleshooting Help topic.
At C:\Program Files\WindowsPowerShell\Modules\Connect-MS365\1.3.9\Connect-MS365.psm1:138 char:17

  •             Connect-SCC
    
  •             ~~~~~~~~~~~
    
    • CategoryInfo : ConnectionError: (:) [Write-Error], WriteErrorException
    • FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Connect-SCC

Support Proxy for Remote PS Connections in EOL

Is your feature request related to a problem? Please describe.
A user behind proxy can not use Connect-MS365

Describe the solution you'd like
Configuration Parameter to determine proxy usage.

Additional context

  • consider static proxy configuration
  • consider parameter switch

Wenn Sie sich hinter einem Proxyserver befinden, führen Sie diesen Befehl zuerst diesen Befehl aus: $ProxyOptions = New-PSSessionOption -ProxyAccessType , wobei der ProxyAccessType-Wert IEConfig, WinHttpConfig oder AutoDetect ist.

Fügen Sie dann den folgenden Parameter und Wert an das Ende des $Session=...-Befehls an: -SessionOption $ProxyOptions.

Weitere Informationen finden Sie unter New-PSSessionOption.

Support for az CLI

Is your feature request related to a problem? Please describe.
Az Powershell module is different to the web UI az CLI. I want to use the az cli locally as well.

Describe the solution you'd like
Connecting via az CLI.

Additional context

  • Install az cli MSI package via Invoke-WebRequest
  • New Test Procedure for MSI Package
  • az login connection

Support for PSCore 7

Is your feature request related to a problem? Please describe.
Supporting officially PSCore v7, possibly v6

Describe the solution you'd like
Clean usage as in PS Desktop v5

Describe alternatives you've considered
maybe only ps core v7?

Support Exchange Online

Describe the solution you'd like
Support connections to Exchange Online

Additional context

  • support connections to Exchange Online / EOL
  • installing EOL modules if necessary

Support Proxy connections

Is your feature request related to a problem? Please describe.
Connect-MS365 only works without proxy. Proxy connections should be supported

Describe the solution you'd like
Configuring a proxy manually to be used or using system settings.
Support user authentication for proxy.

Additional context

  • manual setting may be not handy
  • configuration file easier
  • system settings fallback?

Module Update Function

Is your feature request related to a problem? Please describe.
When modules have been installed once, they don't get updated, although newer versions are available and maybe necessary based in Microsoft's online services.

Describe the solution you'd like
Test-MS365Module should check the version as well and suggest an auto-update if newer version is available.

Additional context

  • Test-MS365Module checks version installed (Get-Module -ListAvailable) and available online (Find-Modul)
  • calls new Function Update-MS365 to update module

Support Teams Connections

Describe the solution you'd like
Support connections to Teams

Additional context

  • support connection to Teams Service
  • install modules if necessary

Service parameter not accepting multiple services

Describe the bug
When passing a list of services to -Service parameter an error message shows up that parameter can not be converted to String.

To Reproduce

  1. Import / Install Module
  2. Call Connect-MS365 -Service EOL,AAD

Expected behavior
All services named in the parameter should be accepted and iterated if valid.
Should open two connections, one to EOL, one to AAD

Support CSP connections

Is your feature request related to a problem? Please describe.
Connections will be done to the default tenant / organization of the user provided.
With that CSP connections for admins managing a delegated organization are not possible.

Describe the solution you'd like
Having a possibility to select / give a tenant or delegated organization when logging in.

Additional context

  • depending on module if possible or not, to be investigated
  • tenant / organization inputs possible
    • manual (not that nice because of string names / tenant ids to be provided)
    • configured tenant / organization (needs configs for one time setting of complicated values as tenant id)

Support MS AzureAD

Describe the solution you'd like
Support connections to MS AzureAD (AAD)

Additional context

  • connection to AAD
  • install modules if necessary

Support different Hosting Environments

Is your feature request related to a problem? Please describe.
Actually only standard hosting environment is support. So Connect-MS365 can not be used for Germany Cloud or Chinese Cloud

Describe the solution you'd like
Provide additional parameter to define if other environment to be used.

Additional context

  • change ConnectionUri for New-PSSession

Support multiple Services

Is your feature request related to a problem? Please describe.
I don't want to connect each service one by one. I want to use multiple services

Describe the solution you'd like
I want to be able to provide a list of services I want to connect.

Additional context
To connect to MicrosoftOnline and Teams: Connect-MSOL -Service MSOL Teams

Module update check not working in some cases

Describe the bug
The contained module version checker doesn't work for some modules. This could be observed for Az and ExchangeOnlineManagement module.
Maybe relating to installation scope of already installed modules?

To Reproduce
Steps to reproduce the behavior:

  1. Have older version of ExchangeOnlineManagement or Az installed
    Check e.g. with using Get-Module Az -ListAvailable and Find-Module Az to compare version numbers.
  2. Run Connect-MS365 -Service Az
  3. No notification on available module update is shown

Expected behavior
On connection it should be printed that a new version is available and an inline update is proposed.

Screenshots
version-check-az-ps7

Desktop (please complete the following information):

  • OS: Windows
  • PowerShell: 7

Support SharePoint Online

Describe the solution you'd like
Support connections to SharePoint Online

Additional context

  • connections to sharepoint online
  • considering Service / URL pattern
  • installing modules if necessary

User configuration file

Is your feature request related to a problem? Please describe.
For some features (#21, #8 or #22) it will be good to have a user-space configuration file.

Describe the solution you'd like

  • JSON (?) based configuration file for user-based settings, as
    • #21 Support CSP connections
    • #8 hosting environments (may be different / relatively static)
    • #22 Proxy support
    • Azure certificate / ServicePrincipals
    • default org for SharePoint Online
    • ...

Additional context

  • Where to store user based if module is system-wide?
  • Removing when uninstalling module?
  • Init if not existing by template?

Support MS Azure

Is your feature request related to a problem? Please describe.
Consoles for Azure (not AzureAD) seem to be a pain. Want to make that easier by one connection hub.

Describe the solution you'd like
Connecting to MS Azure by providing az console or POSH console.

Additional context

  • select az console or POSH
  • installing modules if necessary

Add support for MSGraph SDK

Is your feature request related to a problem? Please describe.
Microsoft has announced deprecation of MSOnline and Azure AD PowerShell modules.
Old modules will still work but do not receive any further development or updates.
Microsoft is encouraging everybody to migrate to Microsoft Graphi API SDK to manage Azure AD and Microsoft 365.

Describe the solution you'd like
Add support for Microsoft Graph PowerShell to enable users to use Microsoft Graph API powershell module within Connect-MS365.

Describe alternatives you've considered
I cannot really follow Microsoft's argument that Graph API will "simplify" Azure AD management as the authentication and request handling is much more complicated and advanced. Additionally, it seems that no dedicated prepared CmdLets exists for management of users, groups, etc.
Hence, I think that most users will still use the deprecated modules for simple administration tasks. Alternatively, other management tools may cover authentication and connections themselves. So it is questionable how important that feature is for 'Connect-MS365` at all.

Package static docs

Is your feature request related to a problem? Please describe.
Packages don't contain static MD-doc files

Describe the solution you'd like
Static MD doc files from repositories docs directory should be in package as well.

Additional context

  • add copy of MD files to compile build task

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.