Forum Discussion
Set 'audiences to target' in SharePoint navigation using PowerShell
I'm using PnP PowerShell to create SharePoint Hub navigation nodes (Add-PnPNavigationNode), but cannot find a way to configure the audience targeting via PowerShell.
I tried this. It completed without error but it did NOT work:
$node = Get-PnPNavigationNode -Id 1234
Get-PnPProperty -ClientObject $node -Property "AudienceIds"
$node.AudienceIds.Add("3270e13c-1031-42a3-9104-54139a37527a")
$node.Update()
Any insight would be greatly appreciated!
7 Replies
- Andreas LemarcqBrass Contributor
Hi,
I used this line of code:Set-PnPWeb -NavAudienceTargetingEnabled:$true
- thaBo77Copper Contributor
AudienceIds are a list of GUIDs, so try this one:
$audienceList = New-Object System.Collections.Generic.List[guid] $audienceList.add([System.guid]::New(("YOURGROUPID"))) $node.AudienceIds = $audienceList $node.Update() Invoke-PnPQuery
- kbeeveer46Copper Contributor
I tried your code and when I view the SharePoint site I can see that it added the audience to my QuickLaunch link but it doesn't seem to have any affect. I added an audience (office 365 group that I am not a part of) to the link but I can still see the link.
Here is an example of what I'm referring to. I'm not part of this audience but the DMA Support link is still visible to me. When I add the audience manually through the SharePoint UI it works fine. The link is hidden from me. It just doesn't work when I do it from PnP PowerShell.
As per my knowledge, currently it is not possible to set audience targeting groups to specific navigation node using PnP PowerShell.
You can only define if the navigation menu on a modern site should be enabled for modern audience using -NavAudienceTargetingEnabled parameter for Set-PnPWeb cmdlet. Check below reference:
Please click Mark as Best Response if my post helped you to solve your issue. This will help others to find the correct solution easily. It also closes the item. If the post was useful in other ways, please consider giving it Like.
- johndpalmBrass Contributor
ganeshsanap
Thanks! I'm aware of how to enable audience targeting through PowerShell. I need to do the next step which is to add groups to the 'audiences to target' field.