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
    2 days ago










  • 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
    2 days ago

















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
    2 days ago










  • 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
    2 days ago















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 2 days ago









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
    2 days ago










  • 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
    2 days ago




















  • How would you do that in C#?
    – Alan Płócieniak
    2 days ago










  • 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
    2 days ago


















How would you do that in C#?
– Alan Płócieniak
2 days ago




How would you do that in C#?
– Alan Płócieniak
2 days ago












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
2 days ago






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
2 days ago












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
    2 days ago










  • (using the first example btw)
    – Rick
    2 days ago










  • 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
    2 days ago






  • 1




    Ah potentially - I'll investigate if that is the case. Thanks
    – Rick
    2 days ago


















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
    2 days ago











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
    2 days ago










  • (using the first example btw)
    – Rick
    2 days ago










  • 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
    2 days ago






  • 1




    Ah potentially - I'll investigate if that is the case. Thanks
    – Rick
    2 days ago















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
    2 days ago










  • (using the first example btw)
    – Rick
    2 days ago










  • 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
    2 days ago






  • 1




    Ah potentially - I'll investigate if that is the case. Thanks
    – Rick
    2 days ago













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 2 days ago









Chris Auer

6,82511041




6,82511041












  • 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
    2 days ago










  • (using the first example btw)
    – Rick
    2 days ago










  • 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
    2 days ago






  • 1




    Ah potentially - I'll investigate if that is the case. Thanks
    – Rick
    2 days ago


















  • 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
    2 days ago










  • (using the first example btw)
    – Rick
    2 days ago










  • 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
    2 days ago






  • 1




    Ah potentially - I'll investigate if that is the case. Thanks
    – Rick
    2 days ago
















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
2 days ago




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
2 days ago












(using the first example btw)
– Rick
2 days ago




(using the first example btw)
– Rick
2 days ago












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
2 days ago




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
2 days ago




1




1




Ah potentially - I'll investigate if that is the case. Thanks
– Rick
2 days ago




Ah potentially - I'll investigate if that is the case. Thanks
– Rick
2 days ago










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
    2 days ago















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
    2 days ago













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 2 days ago









Michael West

7,83121450




7,83121450












  • Nice one Mike. Didn't know that existed.
    – Chris Auer
    2 days ago


















  • Nice one Mike. Didn't know that existed.
    – Chris Auer
    2 days ago
















Nice one Mike. Didn't know that existed.
– Chris Auer
2 days ago




Nice one Mike. Didn't know that existed.
– Chris Auer
2 days ago










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.















 


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

Morgemoulin

Scott Moir

Souastre