Skip Ribbon Commands
Skip to main content

Quick Launch

Todd Klindt's home page > Todd Klindt's Office 365 Admin Blog > Posts > Reversing Arrays easily in PowerShell
October 31
Reversing Arrays easily in PowerShell

I was recently dealt a fun task from a customer. They had a site in SharePoint that had a few links in the Quick Launch (left nav, quick nav, whatever) and they wanted to copy the Quick Launch from another site to it. They wanted to keep the existing links below the new ones. Here are some pictures to help it all make sense:

I want to copy these links:

image

and put them on top of these links on another site.

image

Of course I immediately thought of your friend and mine, the PnP PowerShell for this task. Sure enough, there are cmdlets for that, Get-PnPNavigationNode and Add-PnPNavigationNode. Just what the doctor ordered.

Add-PnPNavigationNode is pretty basic and I had to work a bit to get exactly what the customer wanted. When you add a Navigtation node with Add-PnPNavigationNode it puts it at the end of the list, which makes sense. You can also throw the switch parameter, –First, to put it at the top. In most situations that probably is fine, but mine was tricky. I didn’t want to put the copied nav nodes at the end, I wanted the existing ones to stay there. I also couldn’t just add them all as –First because then they would end up at the top, but in backwards order. When I get the old nav nodes with Get-PnPNavigationNode it returns them in their correct order, so as I walked through them with Foreach the first one would be added on top, but then the second one, also with the –First switch, would end up on top, and so on. Enter [array]::Reverse.

The Array class in PowerShell has quite a few tricks up its sleeve in the form of operations, and Reverse is one of them. If you want to see the rest, go to this page, or type [array]:: in a PowerShell host and tab through the list. It’s quite impressive. 

Here’s what my code looked like:

$oldsiteurl = “https://contoso.sharepoint.com/sites/8884aced
$newsiteurl = “https://contoso.sharepoint.com/sites/PublicTest


$oldsite = Connect-PnPOnline -Url $oldsiteurl -Credentials Compliance -ReturnConnection
$newsite = Connect-PnPOnline -Url $newsiteurl -Credentials Compliance –ReturnConnection


$oldnavlinks = Get-PnPNavigationNode -Location QuickLaunch -Connection $oldsite

[array]::Reverse($oldnavlinks) # <-- The magic goes here

foreach ($link in $oldnavlinks) {
Add-PnPNavigationNode -Location QuickLaunch -Title $link.Title -Url $link.Url -First -Connection $newsite -External
}

There’s a lot of foundation there, but you can see where the Array reversal fits in. Here’s how it looked when I ran it:

image

And here’s what it looked like after I ran it:

image

There’s a lot more tweaking I can do, like make sure “Home” is still on top, stuff like that, but finding Reverse was an important step in the beginning.

tk

ShortURL: https://www.toddklindt.com/PoshReverseArray

Comments

Quickbooks help number you can rely upon

If you are a new customer, it is natural for you to experience problems with one or more features of this software. If this is the case, you can get immediate help from you. We are Assistance For All, the most trusted tech support centre operating in the country. https://www.assistanceforall.com/services/quickbook-support/
 on 10/12/2020 1:59 AM

how to move quicken to a new computer

Quicken is the financial management software used globally for small and medium-size business. It generally helps to track the income, cash flow and expenses. Once time may come-up when I need to Move Quicken To New Computer. In such condition, before transferring Quicken, you should keep the following points in your mind:
·         There is no requirement to buy new Quicken to transfer the files
·         It is essential to install the same version of Quicken on the new computer in which you are moving the file
·         Need to convert the files to the same version, in case it was previously moved to another version
·         Although you can backup files, and are suggested to not open or run Quicken on a network
Once the above information you kept in your mind, then after you can frequently transfer your Quicken from one computer to another. Furthermore, if facing any problem, call Quicken support number. 
https://www.quickensupporthelpnumber.com/blog/how-to-move-quicken-to-new-computer/
 on 10/12/2020 3:42 AM

Book Low Cost Lufthansa Airlines Flights & Reservations

Fly With More Trusted and Oldest Airline of The World: Lufthansa Airlines Reservations. Lufthansa Airlines Reservations. Lufthansa Group airlines: ADM. Booking and Ticketing strategy for Business Partners. Rules for the treatment of long haul plan changes. Call us +1-855-805-5447

https://www.thecustomerservicenumber.com/lufthansa-airlines-customer-service/
 on 10/13/2020 4:54 AM

Add Comment

Items on this list require content approval. Your submission will not appear in public views until approved by someone with proper rights. More information on content approval.

Title


Body *


Today's date *

Select a date from the calendar.
Please enter today's date so I know you are a real person

Twitter


Want a message when I reply to your comment? Put your Twitter handle here.

Attachments

 

 SysKit