This repository has been archived by the owner on Jun 7, 2022. It is now read-only.
/
Find-TppCodeSignEnvironment.ps1
75 lines (57 loc) · 1.92 KB
/
Find-TppCodeSignEnvironment.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<#
.SYNOPSIS
Search for code sign environments
.DESCRIPTION
Search for specific code sign environments that match a name you provide or get all. This will search across projects.
.PARAMETER Name
Name of the environment to search for
.PARAMETER TppSession
Session object created from New-TppSession method. The value defaults to the script session object $TppSession.
.INPUTS
None
.OUTPUTS
TppObject
.EXAMPLE
Find-TppCodeSignEnvironment
Get all code sign environments
.EXAMPLE
Find-TppCodeSignEnvironment -Name Development
Find all environments that match the name Development
.LINK
http://venafitppps.readthedocs.io/en/latest/functions/Find-TppCodeSignEnvironment/
.LINK
https://github.com/gdbarron/VenafiTppPS/blob/main/VenafiTppPS/Code/Public/Find-TppCodeSignEnvironment.ps1
#>
function Find-TppCodeSignEnvironment {
[CmdletBinding(DefaultParameterSetName = 'All')]
[Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSReviewUnusedParameter', '', Justification = 'Param is being used, possible pssa bug?')]
param (
[Parameter(Mandatory, ValueFromPipeline, ParameterSetName = 'Name')]
[String] $Name,
[Parameter()]
[TppSession] $TppSession = $Script:TppSession
)
begin {
$TppSession.Validate($true)
$projects = Find-TppCodeSignProject | Get-TppCodeSignProject
}
process {
Switch ($PsCmdlet.ParameterSetName) {
'Name' {
$envs = $projects.CertificateEnvironment | Where-Object { $_.Name -match $Name }
$envs = $envs | Sort-Object -Property Path -Unique
}
'All' {
$envs = $projects.CertificateEnvironment
}
}
foreach ($env in $envs) {
[TppObject] @{
Name = $env.Name
TypeName = $env.TypeName
Path = $env.Path
Guid = $env.Guid
}
}
}
}