Powershell get all items that use a template











up vote
2
down vote

favorite












The title pretty much says it all - I've looked at the docs but I just keep finding Get-Item and Get-ItemTempate.



Lets say I have a template with id 123456, I want to get all items that are using this template. How would I do that?










share|improve this question







New contributor




Rick is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















  • How would you do that in C#?
    – Alan Płócieniak
    Nov 26 at 15:25










  • Something like allItems.Where(p => p.TemplateIdList.Contains("123456")); Let me see if I can powershell that! - Disclaimer - New to Sitecore so I don't know what exists and what doesn't...
    – Rick
    Nov 26 at 15:33

















up vote
2
down vote

favorite












The title pretty much says it all - I've looked at the docs but I just keep finding Get-Item and Get-ItemTempate.



Lets say I have a template with id 123456, I want to get all items that are using this template. How would I do that?










share|improve this question







New contributor




Rick is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















  • How would you do that in C#?
    – Alan Płócieniak
    Nov 26 at 15:25










  • Something like allItems.Where(p => p.TemplateIdList.Contains("123456")); Let me see if I can powershell that! - Disclaimer - New to Sitecore so I don't know what exists and what doesn't...
    – Rick
    Nov 26 at 15:33















up vote
2
down vote

favorite









up vote
2
down vote

favorite











The title pretty much says it all - I've looked at the docs but I just keep finding Get-Item and Get-ItemTempate.



Lets say I have a template with id 123456, I want to get all items that are using this template. How would I do that?










share|improve this question







New contributor




Rick is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











The title pretty much says it all - I've looked at the docs but I just keep finding Get-Item and Get-ItemTempate.



Lets say I have a template with id 123456, I want to get all items that are using this template. How would I do that?







powershell-extensions






share|improve this question







New contributor




Rick is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question







New contributor




Rick is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question






New contributor




Rick is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked Nov 26 at 15:23









Rick

1405




1405




New contributor




Rick is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





Rick is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






Rick is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












  • How would you do that in C#?
    – Alan Płócieniak
    Nov 26 at 15:25










  • Something like allItems.Where(p => p.TemplateIdList.Contains("123456")); Let me see if I can powershell that! - Disclaimer - New to Sitecore so I don't know what exists and what doesn't...
    – Rick
    Nov 26 at 15:33




















  • How would you do that in C#?
    – Alan Płócieniak
    Nov 26 at 15:25










  • Something like allItems.Where(p => p.TemplateIdList.Contains("123456")); Let me see if I can powershell that! - Disclaimer - New to Sitecore so I don't know what exists and what doesn't...
    – Rick
    Nov 26 at 15:33


















How would you do that in C#?
– Alan Płócieniak
Nov 26 at 15:25




How would you do that in C#?
– Alan Płócieniak
Nov 26 at 15:25












Something like allItems.Where(p => p.TemplateIdList.Contains("123456")); Let me see if I can powershell that! - Disclaimer - New to Sitecore so I don't know what exists and what doesn't...
– Rick
Nov 26 at 15:33






Something like allItems.Where(p => p.TemplateIdList.Contains("123456")); Let me see if I can powershell that! - Disclaimer - New to Sitecore so I don't know what exists and what doesn't...
– Rick
Nov 26 at 15:33












2 Answers
2






active

oldest

votes

















up vote
2
down vote



accepted










This should do it for you.



$defaultPath = "/sitecore/content"
[Sitecore.Data.ID]$articleId = "{03360FC1-B4C0-4770-9E1D-79E8317B74DD}"

$articles = Find-Item -Index sitecore_master_index `
-Where 'TemplateId = @0 and Path.StartsWith(@1)' `
-WhereValues $articleId, $defaultPath | Initialize-Item


Another way using template name and Criteria.



$articles = Find-Item `
-Index sitecore_master_index `
-Criteria @{Filter = "Equals"; Field = "_templatename"; Value = "Article"},
@{Filter = "Equals"; Field = "_language"; Value = "en"},
@{Filter = "StartsWith"; Field = "_fullpath"; Value = "/sitecore/content" }





share|improve this answer





















  • If I do a Write-Host $_.FullPath on everything in $articles, then I get quite a log of duplicates. Any idea why this would happen?
    – Rick
    Nov 26 at 16:52










  • (using the first example btw)
    – Rick
    Nov 26 at 17:08










  • multiple languages? This is is reading directly from the index, so we have to know why there are multiple items in your index.
    – Chris Auer
    Nov 26 at 17:18






  • 1




    Ah potentially - I'll investigate if that is the case. Thanks
    – Rick
    Nov 26 at 17:18


















up vote
3
down vote













I would recommend you use the Get-ItemReferrer command. This is based on the Link Database and should be extremely fast.



A similar question was asked here.



$sampleItemTemplateId = "{76036F5E-CBCE-46D1-AF0A-4143F9B557AA}"
$sampleItemTemplateItem = Get-Item -Path "master:" -ID $sampleItemTemplateId

Get-ItemReferrer -Item $sampleItemTemplateItem


As you can see below, all referrers are returned. You can then filter out with Where-Object if you want to exclude content, media, templates, etc.



enter image description here






share|improve this answer





















  • Nice one Mike. Didn't know that existed.
    – Chris Auer
    Nov 26 at 17:12











Your Answer








StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "664"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});






Rick is a new contributor. Be nice, and check out our Code of Conduct.










draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsitecore.stackexchange.com%2fquestions%2f15165%2fpowershell-get-all-items-that-use-a-template%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























2 Answers
2






active

oldest

votes








2 Answers
2






active

oldest

votes









active

oldest

votes






active

oldest

votes








up vote
2
down vote



accepted










This should do it for you.



$defaultPath = "/sitecore/content"
[Sitecore.Data.ID]$articleId = "{03360FC1-B4C0-4770-9E1D-79E8317B74DD}"

$articles = Find-Item -Index sitecore_master_index `
-Where 'TemplateId = @0 and Path.StartsWith(@1)' `
-WhereValues $articleId, $defaultPath | Initialize-Item


Another way using template name and Criteria.



$articles = Find-Item `
-Index sitecore_master_index `
-Criteria @{Filter = "Equals"; Field = "_templatename"; Value = "Article"},
@{Filter = "Equals"; Field = "_language"; Value = "en"},
@{Filter = "StartsWith"; Field = "_fullpath"; Value = "/sitecore/content" }





share|improve this answer





















  • If I do a Write-Host $_.FullPath on everything in $articles, then I get quite a log of duplicates. Any idea why this would happen?
    – Rick
    Nov 26 at 16:52










  • (using the first example btw)
    – Rick
    Nov 26 at 17:08










  • multiple languages? This is is reading directly from the index, so we have to know why there are multiple items in your index.
    – Chris Auer
    Nov 26 at 17:18






  • 1




    Ah potentially - I'll investigate if that is the case. Thanks
    – Rick
    Nov 26 at 17:18















up vote
2
down vote



accepted










This should do it for you.



$defaultPath = "/sitecore/content"
[Sitecore.Data.ID]$articleId = "{03360FC1-B4C0-4770-9E1D-79E8317B74DD}"

$articles = Find-Item -Index sitecore_master_index `
-Where 'TemplateId = @0 and Path.StartsWith(@1)' `
-WhereValues $articleId, $defaultPath | Initialize-Item


Another way using template name and Criteria.



$articles = Find-Item `
-Index sitecore_master_index `
-Criteria @{Filter = "Equals"; Field = "_templatename"; Value = "Article"},
@{Filter = "Equals"; Field = "_language"; Value = "en"},
@{Filter = "StartsWith"; Field = "_fullpath"; Value = "/sitecore/content" }





share|improve this answer





















  • If I do a Write-Host $_.FullPath on everything in $articles, then I get quite a log of duplicates. Any idea why this would happen?
    – Rick
    Nov 26 at 16:52










  • (using the first example btw)
    – Rick
    Nov 26 at 17:08










  • multiple languages? This is is reading directly from the index, so we have to know why there are multiple items in your index.
    – Chris Auer
    Nov 26 at 17:18






  • 1




    Ah potentially - I'll investigate if that is the case. Thanks
    – Rick
    Nov 26 at 17:18













up vote
2
down vote



accepted







up vote
2
down vote



accepted






This should do it for you.



$defaultPath = "/sitecore/content"
[Sitecore.Data.ID]$articleId = "{03360FC1-B4C0-4770-9E1D-79E8317B74DD}"

$articles = Find-Item -Index sitecore_master_index `
-Where 'TemplateId = @0 and Path.StartsWith(@1)' `
-WhereValues $articleId, $defaultPath | Initialize-Item


Another way using template name and Criteria.



$articles = Find-Item `
-Index sitecore_master_index `
-Criteria @{Filter = "Equals"; Field = "_templatename"; Value = "Article"},
@{Filter = "Equals"; Field = "_language"; Value = "en"},
@{Filter = "StartsWith"; Field = "_fullpath"; Value = "/sitecore/content" }





share|improve this answer












This should do it for you.



$defaultPath = "/sitecore/content"
[Sitecore.Data.ID]$articleId = "{03360FC1-B4C0-4770-9E1D-79E8317B74DD}"

$articles = Find-Item -Index sitecore_master_index `
-Where 'TemplateId = @0 and Path.StartsWith(@1)' `
-WhereValues $articleId, $defaultPath | Initialize-Item


Another way using template name and Criteria.



$articles = Find-Item `
-Index sitecore_master_index `
-Criteria @{Filter = "Equals"; Field = "_templatename"; Value = "Article"},
@{Filter = "Equals"; Field = "_language"; Value = "en"},
@{Filter = "StartsWith"; Field = "_fullpath"; Value = "/sitecore/content" }






share|improve this answer












share|improve this answer



share|improve this answer










answered Nov 26 at 15:37









Chris Auer

6,95011142




6,95011142












  • If I do a Write-Host $_.FullPath on everything in $articles, then I get quite a log of duplicates. Any idea why this would happen?
    – Rick
    Nov 26 at 16:52










  • (using the first example btw)
    – Rick
    Nov 26 at 17:08










  • multiple languages? This is is reading directly from the index, so we have to know why there are multiple items in your index.
    – Chris Auer
    Nov 26 at 17:18






  • 1




    Ah potentially - I'll investigate if that is the case. Thanks
    – Rick
    Nov 26 at 17:18


















  • If I do a Write-Host $_.FullPath on everything in $articles, then I get quite a log of duplicates. Any idea why this would happen?
    – Rick
    Nov 26 at 16:52










  • (using the first example btw)
    – Rick
    Nov 26 at 17:08










  • multiple languages? This is is reading directly from the index, so we have to know why there are multiple items in your index.
    – Chris Auer
    Nov 26 at 17:18






  • 1




    Ah potentially - I'll investigate if that is the case. Thanks
    – Rick
    Nov 26 at 17:18
















If I do a Write-Host $_.FullPath on everything in $articles, then I get quite a log of duplicates. Any idea why this would happen?
– Rick
Nov 26 at 16:52




If I do a Write-Host $_.FullPath on everything in $articles, then I get quite a log of duplicates. Any idea why this would happen?
– Rick
Nov 26 at 16:52












(using the first example btw)
– Rick
Nov 26 at 17:08




(using the first example btw)
– Rick
Nov 26 at 17:08












multiple languages? This is is reading directly from the index, so we have to know why there are multiple items in your index.
– Chris Auer
Nov 26 at 17:18




multiple languages? This is is reading directly from the index, so we have to know why there are multiple items in your index.
– Chris Auer
Nov 26 at 17:18




1




1




Ah potentially - I'll investigate if that is the case. Thanks
– Rick
Nov 26 at 17:18




Ah potentially - I'll investigate if that is the case. Thanks
– Rick
Nov 26 at 17:18










up vote
3
down vote













I would recommend you use the Get-ItemReferrer command. This is based on the Link Database and should be extremely fast.



A similar question was asked here.



$sampleItemTemplateId = "{76036F5E-CBCE-46D1-AF0A-4143F9B557AA}"
$sampleItemTemplateItem = Get-Item -Path "master:" -ID $sampleItemTemplateId

Get-ItemReferrer -Item $sampleItemTemplateItem


As you can see below, all referrers are returned. You can then filter out with Where-Object if you want to exclude content, media, templates, etc.



enter image description here






share|improve this answer





















  • Nice one Mike. Didn't know that existed.
    – Chris Auer
    Nov 26 at 17:12















up vote
3
down vote













I would recommend you use the Get-ItemReferrer command. This is based on the Link Database and should be extremely fast.



A similar question was asked here.



$sampleItemTemplateId = "{76036F5E-CBCE-46D1-AF0A-4143F9B557AA}"
$sampleItemTemplateItem = Get-Item -Path "master:" -ID $sampleItemTemplateId

Get-ItemReferrer -Item $sampleItemTemplateItem


As you can see below, all referrers are returned. You can then filter out with Where-Object if you want to exclude content, media, templates, etc.



enter image description here






share|improve this answer





















  • Nice one Mike. Didn't know that existed.
    – Chris Auer
    Nov 26 at 17:12













up vote
3
down vote










up vote
3
down vote









I would recommend you use the Get-ItemReferrer command. This is based on the Link Database and should be extremely fast.



A similar question was asked here.



$sampleItemTemplateId = "{76036F5E-CBCE-46D1-AF0A-4143F9B557AA}"
$sampleItemTemplateItem = Get-Item -Path "master:" -ID $sampleItemTemplateId

Get-ItemReferrer -Item $sampleItemTemplateItem


As you can see below, all referrers are returned. You can then filter out with Where-Object if you want to exclude content, media, templates, etc.



enter image description here






share|improve this answer












I would recommend you use the Get-ItemReferrer command. This is based on the Link Database and should be extremely fast.



A similar question was asked here.



$sampleItemTemplateId = "{76036F5E-CBCE-46D1-AF0A-4143F9B557AA}"
$sampleItemTemplateItem = Get-Item -Path "master:" -ID $sampleItemTemplateId

Get-ItemReferrer -Item $sampleItemTemplateItem


As you can see below, all referrers are returned. You can then filter out with Where-Object if you want to exclude content, media, templates, etc.



enter image description here







share|improve this answer












share|improve this answer



share|improve this answer










answered Nov 26 at 16:03









Michael West

7,83121450




7,83121450












  • Nice one Mike. Didn't know that existed.
    – Chris Auer
    Nov 26 at 17:12


















  • Nice one Mike. Didn't know that existed.
    – Chris Auer
    Nov 26 at 17:12
















Nice one Mike. Didn't know that existed.
– Chris Auer
Nov 26 at 17:12




Nice one Mike. Didn't know that existed.
– Chris Auer
Nov 26 at 17:12










Rick is a new contributor. Be nice, and check out our Code of Conduct.










draft saved

draft discarded


















Rick is a new contributor. Be nice, and check out our Code of Conduct.













Rick is a new contributor. Be nice, and check out our Code of Conduct.












Rick is a new contributor. Be nice, and check out our Code of Conduct.
















Thanks for contributing an answer to Sitecore Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsitecore.stackexchange.com%2fquestions%2f15165%2fpowershell-get-all-items-that-use-a-template%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

AnyDesk - Fatal Program Failure

How to calibrate 16:9 built-in touch-screen to a 4:3 resolution?

QoS: MAC-Priority for clients behind a repeater