Dnes vám ukážu, jak nainstalovat PowerShell modul PnP
PnP PowerShell je multiplatformní modul pro PowerShell, který poskytuje více než 650 rutin, které pracují s prostředími a produkty Microsoft 365, jako jsou SharePoint Online, Microsoft Teams, Microsoft Planner, Microsoft Flow a další. Funguje v systémech Windows, Linux a MacOS.
Obsah
PnP.PowerShell vs Sharepoint Online Management Shell
Než se podíváme na to, jak PnP PowerShell nainstalovat, je dobré vědět, že existuje také modul PowerShell od společnosti Microsoft. Jedná se o SharePoint Online Management Shell (SPO) a jedná se o oficiální PowerShell modul, který je určený právě pro správu prostředí SharePoint Online.
Ještě si pojďme říct, jaké jsou mezi SPO a PnP hlavní rozdíly.
- SPO slouží ke správě SharePointu na úrovni tenantu, zatímco PnP PowerShell umožňuje připojit se ke konkrétnímu webu SharePointu.
- Rutiny prostředí PnP PowerShell obsahují více parametrů, což umožňuje realizovat složitější úlohy ve srovnání s ekvivalentními rutinami prostředí SPO.
- SPO cmdlety se spouštějí v kontextu práv správce tenantu, zatímco PnP PowerShell se spouští v kontextu aktuálního uživatele (můžete se samozřejmě připojit s přihlašovacími údaji správce)
Každý z nich má své výhody. Pokud chcete spouštět příkazy na konkrétním webu SharePointu nebo v kontextu aktuálního uživatele, použijte PnP PowerShell. Potřebujete-li změnit nastavení na úrovni tenantu, použijte rutiny SPO.
Instalace PnP PowerShell
Aby bylo možné PnP modul nainstalovat, je nutné mít PowerShell prostředí verze 7.
Dále je potřeba odinstalovat starou verzi modulu, která se jmenovala SharePointPnPPowerShellOnline.
Zda máte nainstalovanou verzi tzv. legacy modulu zjistíte příkazem:
Get-Module SharePointPnPPowerShellOnline -ListAvailable | Select-Object Name,Version | Sort-Object Version -Descending
Pokud je modul přítomen, příkaz vypíše jeho název a verzi. Každopádně, tuto verzi je potřeba odinstalovat pomocí příkazu:
Uninstall-Module SharePointPnPPowerShellOnline -Force -AllVersions
Samotnou instalaci provedete pomocí příkazu
Install-Module PnP.PowerShell
Tím se stáhne a nainstaluje modul PnP prostředí PowerShell z PowerShell Galerie.
Posledním krokem je udělení souhlasu (Consent) pro udělení oprávnění k tenantu pro Entra ID (Azure AD) Enterprise aplikaci. Po spuštění níže uvedenho příkazu budete vyzváni k udělení souhlasu s řidělením oprávnění k tenantu. V tomto kroku se musíte přihlásit účtem oprávněním Global Admin (nebo Tenant Administrator) a tento krok dokončit.
Register-PnPManagementShellAccess
Pokud nedisponujete oprávněním Global Admin nebo Tenant Admin, použijte výše uvedený příkaz s parametrem -ShowConsentUrl a po vyzvání se ověřte svým uživatelským účtem. Příkaz vygeneruje URL, kterou si zkopírujte, zašlete vašemu IT správci, který disponuje patřičným oprávněním a požádejte jej o udělení souhlasu.
To je vše, PnP PowerShell je nainstalován. Přihlásit se můžete prostřednictvím následujících příkazů:
# Prihlaseni pomoci PnP PowerShell
Connect-PnPOnline -Url "https://vas_tenant.sharepoint.com" -Interactive
# Prihlaseni ke konkretni Sharepoint Site
Connect-PnPOnline -Url "https://vas_tenant.sharepoint.com/sites/Site" -Interactive
# Odhlaseni
Disconnect-PnPOnline
Další základní příkazy, díky kterým si můžete otestovat, že PnP PowerShell funguje správně:
# Ziska vsechny seznamy
Get-PnPList
# Ziska informace o Sharepoint webu
$Web = Get-PnPWeb
$Web
# Ziska Site Administratory
$SiteAdmins = Get-PnPSiteCollectionAdmin
$SiteAdmins
# Ziska Site Collection Administratory a oddeli je carkou
$SiteCollectionAdmins = ($SiteAdmins | Select -ExpandProperty Title) -join ","
$SiteCollectionAdmins
# Vypise vsechny podporovane cmdlety
Get-Command -Module PnP.Powershell
PnP PowerShell skript jako Azure Runbook
Pokud chcete pouštět skripty automatizovaně a bezpečně bez nutnosti řešit hesla a poveření, koukněte na článek Automatizace skriptů PnP PowerShell – Azure Automation.
Videonávod
Závěrem
Pokud potřebujete ve vaší organizaci pomoct s migrací do Microsoft 365 nebo Azure, vyřešit zabezpečení nebo proškolit uživatele, ozvěte se mi, určitě něco vymyslíme.