Blue Girl Roze

Hybridizer: Kordes
Year: 1964
Type: Hybrid Tea
Color: Lavender
Frafrance: Slight
Height: 24-28″
Disease: Susceptible
Zone: 7a-10b

Hybridizer: Kordes
Year: 1964
Type: Hybrid Tea
Color: Lavender
Frafrance: Slight
Height: 24-28″
Disease: Susceptible
Zone: 7a-10b
Scott Hanselman at Ignite (session 9/23/2020) said: if you are at the beginning of your career, certification is important, but if you have experience – experience matters, not certs. In other words – certification shows what you learned, experience shows what you know.
Does certification prove what you know?
It does in some ways, but I would not rely heavily on it. The reason is below…
To get certification in IT you’d need to pass one or more exams. To pass exam you need to prepare for the exam. Just knowing the subject – even with experience – is not enough to pass exam. You need to prepare specifically for this exam (there are specific courses, materials, tools etc.). Why? It’s not a subject experts who prepare exams.
People who prepare exams – are specialists in building tests and exams. What they do to create test questions – in simplified way – they read documentation trying to find key points and convert affirmative sentence from manual to a question. Let say the documentation says “The most important aspect of securing data is encryption.” So they put it like
What is the most important aspect of securing data? Options:
– Backup
– Encryption
– Authentication and authorization
– Access Control
or like this:
What is encryption? Options:
– The process of converting information or data into a code
– A way to conceal information by altering it
– A form of data security in which information is converted to ciphertext
– The most important aspect of securing data
– One of the aspects of securing data
So, having 10 years experience in cyber security – do you think you’ll pass such exam?
So to pass exam you need to memorize the right answers. If you know the subject – it helps. Less to memorize. But if you do not – you can just memorize answers and pass exam.
I know, vendors work hard on exams, they do not want to loose reputation. Exams contain not only such questions but some really good questions, and even complex scenarios where you spend first 10 minutes just trying to wrap your head around all the details… but still…
Does certification help if you already know the subject?
Definitely yes. Knowing the subject from practice – allows you to do the job – in most cases in some specific ways. But preparing for the exam – allows you to understand the whole big picture. Combination of your experience “how it works in fact” with the theory knowledge “how it should be done” is what you need to be an expert in your area.
So, the bottom line
Id’ say just certification does prove your competency.
But it definitely adds value to experience.
Good news!
On Sep, 18 during the SIG community call, PnP Team shared their plans on PnP Sites Core library and PnP Core SDK.
“PnP Sites Core v4” library and “PnP Core SDK v1” with .net core support (.net Standard 2.0) – expected in December 2020!

PnP PowerShell v4 for SPO library built for .Net Standard 2.0 / PowerShell 7 will be released in Dec 2020 as well.

Scenario: You have a large (>5k items) list in SharePoint Online you need to clean-up, for instance:
There was a problem in SharePoint Online – you could not delete a large list – you had to remove all items first, but removing all items was also a challenge. Microsoft improved SharePoint Online, so now it takes ~1 second to delete any SharePoint list, including 5000+ items list via GUI or PowerShell:
Remove-PnPList -Identity $list
command works very fast – ~1 second to delete entire list with >5000 items.
In this scenario we need to keep the list, but make it empty (clean it up).
GUI: You can change the list view settings “Item Limit” to <5000 and try to delete items in chunks, but (at least in my experience) when you try to select, let say, 1000 items and delete them via GUI – it says “775 items were not deleted from large list”:

so this option seems like not a good one.
ShareGate: 3-rd party tools like Sharegate, SysKit give a good results too.
PowerShell
Try this PowerShell command with ScriptBlock:
Get-PnPListItem -List $list -Fields "ID" -PageSize 100 -ScriptBlock { Param($items) $items | Sort-Object -Property Id -Descending | ForEach-Object{ $_.DeleteObject() } }
or this PowerShell with batches:
$batch = New-PnPBatch
1..12000 | Foreach-Object { Remove-PnPListItem -List $list -Identity $_ -Batch $batch }
Invoke-PnPBatch -Batch $batch
for me both methods gave same good result: ~17 items per second ( ~7 times faster than regular).
Consider the following scenario: in a large SharePoint list there are items you need to delete and the rest items must stay (typical case might be to purge old items – e.g. items created last year).
In this case you’d
# to get all list items
$listItems = Get-PnPListItem -List Tasks -PageSize 1000
# or to get some list items
$listItems = Get-PnPListItem -List Tasks -Query <query>
# select items to delete
$itemsToDelete = $listItems | ?{$_.Modified -lt $threshold}
# delete some list items
$batch = New-PnPBatch
$itemsToDelete | Foreach-Object { Remove-PnPListItem -List $list -Identity $_ -Batch $batch }
Invoke-PnPBatch -Batch $batch
How fast are PnP batches? What is better in terms of performance – ScriptBlock or Batching? Here are my measurements:
| Time elapsed, seconds | with batches | with scriptBlock | without batches |
| Add-PnPListItem (100 items) | 6-10 seconds | 60-120 seconds | |
| Add-PnPListItem (500 items) | 20-40 seconds | 230-600 seconds | |
| Add-PnPListItem (7000 items) | 314-600 seconds | ||
| Add-PnPListItem (37000 items) | 3200 seconds | ||
| Remove-PnPListItem (1000 items) | 58-103 seconds | 58 seconds | 430-1060 seconds |
| Remove-PnPListItem (7000 items) | 395-990 seconds 3000 seconds | 397-980 seconds | |
| Remove-PnPListItem (30000 items) | one big batch : 13600 seconds 30 batches 1000 items each: 3500 seconds |
both – PnP PowerShell batches and ScriptBlocks are 7-10 times faster than plain PnP PowerShell!
Can we use Microsoft Graph API to complete the same task? TBC…
Note… For the sake of history: It used to be like that for 5k+ lists:
“Remove-PnPList” fails with a message “The attempted operation is prohibited because it exceeds the list view threshold enforced by the administrator”. Deleting with GUI failed too.
References:
Update: Microsoft is deploying an updated version of “Disable Subsites” feature:
This update makes the setting options for new subsite creation easier to understand and prevents users from being able to create subsites using alternate paths when the subsite setting is disabled.
Admins in the SharePoint admin center can choose to either enable or disable subsite creation across sites or enable for classic sites only. Now, when disabling subsite creation, not only will the subsite option be hidden from the command bar including classic but also users will not be able to create new subsites directly through an URL or API.
The option: Hide the Subsite command has been renamed to Disable subsite creation for all sites and will also hide the subsite creation command (including classic) and disable users from being able to create new subsites through a URL or API.
The option: Show the Subsite command only for classic sites, has been renamed to Enable subsite creation for classic sites only.
The option: Show the Subsite command for all sites, has been renamed to Enable subsite creation for all sites.
After this update is applied, if you have “Subsite Creation” set to “Disable subsite creation for all sites”, then if any attempt to create a subsite – you’ll get an error message “Sorry, something went wrong. New subsites are not available for your organization. Create a new site instead.”

Microsoft recommend “flat structure”, i.e. no subsites. So SPO admins are disabling subsites creation at tenant level. Did you know that you still can create subsite? Let me explain how it is done.
If creation subsites is allowed, you should be able to see it like this:

But actually subsites are not always best practice. Microsoft recommend “flat structure”, i.e. instead of subsite you should have a separate site collection, and if you need a hierarchy and navigation – use Hub sites. So, in Office 365 SharePoint admins usually “disable” SubSites creation:

Now, you see, SubSites are not really disabled, but only the button to create subsites is hidden: “This controls whether the Subsite command appears on the New menu on the Site contents page”.
Anyway, the result is: you are not able to create a SubSite (web) in SharePoint Online:

Actually there are at least 3 options to create a SubSite:
Step 1: Select “Site Contents” page
Step 2: Click “Return to classic SharePoint”
Step 3: Create SubSite

Step 1: Go to “Site Settings”
Step 2: Select “Sites and Workspaces” page (site/_layouts/15/mngsubwebs.aspx)
Step 3: Create a SubSite


Step 1: Install PowerShell PnP
Step 2: Connect to your site with PnP
Step 3: create a SubSite
Install-Module SharePointPnPPowerShellOnline Connect-PnPOnline -Url <your site Url> -UseWebLogin New-PnPWeb -Url "<new Web Url>" -Title "MySubSite" -Template "STS#3"
References:
See also: How to create a SharePoint Site in Office 365 if site creation is disabled
Microsoft SharePoint Migration Tool (SPMT) is installed under user profile, i.e. local administrator permissions are not required.
That means regular corporate user – site owner – can do self-migration from SharePoint on-prem to Office 365 SharePoint Online.