V prejšnjem članku sem pisal o povezavi in upravljanju storitve Exchange Online. V tokratni številki pa končno pride na vrsto tudi moja specialiteta, in sicer SharePoint in SharePoint Online.
SharePoint je kot po navadi v zgodbi Office in serverskih produktov zgodba zase. Ker za SharePointom stoji zelo močen community, se je tudi pri SharePoint Online to pokazalo kot zelo močna veja razvoja, ki je na nek način tudi začrtala smer razvoja Microsoftovemu razvojnemu oddelku za SPO.
SharePoint Online – Official
Za upravljanje SPO imamo na voljo 2 različici za upravljanje našega online okolja. Prva možnost je uradna različica, ki je bila razvita s strani Microsoft razvijalcev, in druga, ki jo je spisal Erwin Van Hunen in je pridobila na ugledu in uporabi do tolikšne mere, da je sedaj koda, ki jo Erwin razvija, podpisana z Microsoftovim certifikatom.
Namestitev komponent
Da bi lahko začeli uporabljati SharePoint Online Management Shell, si moramo najprej prenesti namestitvene datoteke na računalnik. Namestitvene datoteke dobimo na naslovu:
Download SharePoint Online
Management Shell from Official Microsoft Download Center
https://www.microsoft.com/en-us/download/details.aspx?id=35588
Po namestitvi je v PowerShellu na voljo nov modul. Če izvedemo ukaz:
Get-Module
Dobimo naslednji izpis, kjer je “Microsoft.Online.SharePoint.PowerShell” ime modula z ukazi za SPO.
Uradni PowerShell modul nam v zadnji verziji ponudi 144 ukazov, kar za tako kompleksen produkt, kot je SPO niti ni veliko.
Povezava na SPO
Po uspešni namestitvi komponent se moramo seveda tudi povezati na naše okolje SPO. Za povezovanje z oblačnimi storitvami moramo odpreti PowerShell in zagnati naslednji ukaz:
Connect-SPOService -Url https://[ime tenanta]-admin.sharepoint.com
Da bi preverili, če smo se uspešno povezali na tenant, lahko izvedemo ukaz:
Get-SPOSite
Ta nam nato izpiše vse zbirke mest.
PnP SharePoint Online Management Shell
Kot že omenjeno, je skupnost na področju SharePointa zares močna in povezana. Zaradi tega tudi zelo uspešno vpliva na razvoj SharePoint in SharePoint Online. Tako je nastal tudi modul, ki je uradno podprt s strani Microsofta in sicer je to SharePointPnPPowerShell modul.
Namestitev
Da bi si PnP PowerShell namestili, je potrebno imeti odprto PowerShell okno z admin privilegiji in nato pognati ukaz:
Install-Module SharePointPnPPowerShellOnline
Kot zanimivost naj povem, da imate tudi PnP modula za SharePoint 2013 in SharePoint 2016 On-Premises.
Po končani namestitvi, lahko poženete ukaz:
(Get-Command -Module SharePointPnPPowerShellOnline).count
Izpisalo se bo število 348, kar pomeni, da je ukazov v tem modulu, skoraj 3x več kot v uradnem Microsoftovem.
Povezovanje
Za povezovanje na SPO z modulom PnP moramo pognati ukaz:
Connect-PnPOnline -Url https://[tenant].sharepoint.com/sites/robi/ -UseWebLogin
Kot posebnost pri tem ukazu naj poudarim samo parameter »UseWebLogin«, ki podpira tudi avtentikacijo z MFA.
Uporaba PnP skripte za migracijo vsebin
Uporaba PnP modula za SharePoint je res enostavna. Tudi če migriramo npr. vaše skupne mape v SPO, vam lahko pride prav PnP PowerShell, kjer lahko datoteke na zelo lahek način naložite v dokumentno knjižnico.
Ko se uspešno povežemo na strani z zgornjim ukazom, lahko nato poženemo ukaz:
Get-PnPList
Ta nam izpiše vse sezname, ki jih imamo na tej strani. Iz izpisa lahko nato izberemo želeni seznam, kamor bi radi naložili datoteke in si seznam shranimo v spremenljivko:
$docLib=Get-PnPList -Identity "Shared documents"
Za naslednji korak moramo imeti pripravljene še datoteke, ki bi jih radi naložili v izbrano knjižnico. V mojem primeru imam na mestu c:\temp nekaj datotek, ki bi jih rad prenesel.
V spremenljivko, lahko z naslednjim ukazom shranimo vse datoteke na tej poti:
$items=Get-ChildItem -Path "C:\temp\" |?{$_.extension -ne ".ps1"}
Nato moramo samo še napisati zanko, ki bo vse dokumente v tej spremenljivki naložila v oblak. Za migracijo dokumentov bomo uporabili ukaz Add-PnPFile, ki zahteva samo 2 parametra:
- Pot do datoteke, ki bi jo radi prenesli.
- Dokumentna knjižnica, kjer bomo shranili datoteke.
Ukaz je naslednji:
foreach($item in $items){
Add-PnPFile -Path $item.fullname -Folder $docLib.RootFolder.Name
}
V tem članku smo videli kako zelo pomembna je skupnost pri razvoju SPO in kaj vse se da narediti s pomočjo PnP skript na zelo lahek način.
V naslednjem članku si bomo pogledali še, kako lahko varno shranimo gesla za skripte, ki se izvajajo po urniku.