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?
powershell-extensions
add a comment |
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?
powershell-extensions
How would you do that in C#?
– Alan Płócieniak
Nov 26 at 15:25
Something likeallItems.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
add a comment |
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?
powershell-extensions
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
powershell-extensions
asked Nov 26 at 15:23
Rick
1405
1405
How would you do that in C#?
– Alan Płócieniak
Nov 26 at 15:25
Something likeallItems.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
add a comment |
How would you do that in C#?
– Alan Płócieniak
Nov 26 at 15:25
Something likeallItems.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
add a comment |
2 Answers
2
active
oldest
votes
up vote
3
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" }
If I do aWrite-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
add a comment |
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.
Nice one Mike. Didn't know that existed.
– Chris Auer
Nov 26 at 17:12
add a comment |
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
3
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" }
If I do aWrite-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
add a comment |
up vote
3
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" }
If I do aWrite-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
add a comment |
up vote
3
down vote
accepted
up vote
3
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" }
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" }
answered Nov 26 at 15:37
Chris Auer
7,01011142
7,01011142
If I do aWrite-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
add a comment |
If I do aWrite-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
add a comment |
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.
Nice one Mike. Didn't know that existed.
– Chris Auer
Nov 26 at 17:12
add a comment |
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.
Nice one Mike. Didn't know that existed.
– Chris Auer
Nov 26 at 17:12
add a comment |
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.
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.
answered Nov 26 at 16:03
Michael West
7,84121450
7,84121450
Nice one Mike. Didn't know that existed.
– Chris Auer
Nov 26 at 17:12
add a comment |
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
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
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