forked from OCram85/PSCredentialStore
101 lines
2.9 KiB
PowerShell
101 lines
2.9 KiB
PowerShell
|
function New-CRTAttribute {
|
||
|
<#
|
||
|
.SYNOPSIS
|
||
|
Create required data for a certificate signing request.
|
||
|
|
||
|
.DESCRIPTION
|
||
|
Defines the certificate related properties for an upcoming New-PfxCertificate execution.
|
||
|
|
||
|
.PARAMETER Country
|
||
|
Provide a two letter country code.
|
||
|
|
||
|
.PARAMETER State
|
||
|
Certificate state value.
|
||
|
|
||
|
.PARAMETER City
|
||
|
Certificate city value.
|
||
|
|
||
|
.PARAMETER Organization
|
||
|
Certificate organization value.
|
||
|
|
||
|
.PARAMETER OrganizationalUnitName
|
||
|
Certificate OrganizationalUnitName value.
|
||
|
|
||
|
.PARAMETER CommonName
|
||
|
The certificate common name.
|
||
|
|
||
|
.PARAMETER CSRSubject
|
||
|
you can provide the needed certificate properties with in one hashtable. This hashtable has to contain the
|
||
|
following keys: 'Country', 'State', 'City', 'Organization', 'OrganizationalUnitName', 'CommonName'.
|
||
|
|
||
|
.INPUTS
|
||
|
[None]
|
||
|
|
||
|
.OUTPUTS
|
||
|
['PSCredentialStore.Certificate.CSRDetails']
|
||
|
|
||
|
.EXAMPLE
|
||
|
New-CRTAttribute -CSRSubject @{Country = 'DE'; State = 'BW'; City = 'Karlsruhe'; Organization = 'AwesomeIT'; OrganizationalUnitName = '';CommonName = 'MyPrivateCert'}
|
||
|
|
||
|
.NOTES
|
||
|
File Name : New-CSRDetails.ps1
|
||
|
Author : Marco Blessing - marco.blessing@googlemail.com
|
||
|
Requires :
|
||
|
|
||
|
.LINK
|
||
|
https://github.com/OCram85/PSCredentialStore
|
||
|
#>
|
||
|
[CmdletBinding()]
|
||
|
[OutputType('PSCredentialStore.Certificate.Attribute')]
|
||
|
param(
|
||
|
[Parameter(Mandatory = $true)]
|
||
|
[ValidateLength(2, 2)]
|
||
|
[ValidateNotNull()]
|
||
|
[string]$Country,
|
||
|
|
||
|
[Parameter(Mandatory = $true)]
|
||
|
[ValidateNotNull()]
|
||
|
[string]$State,
|
||
|
|
||
|
[Parameter(Mandatory = $true)]
|
||
|
[ValidateNotNull()]
|
||
|
[string]$City,
|
||
|
|
||
|
[Parameter(Mandatory = $true)]
|
||
|
[ValidateNotNull()]
|
||
|
[string]$Organization,
|
||
|
|
||
|
[Parameter(Mandatory = $true)]
|
||
|
[ValidateNotNull()]
|
||
|
[string]$OrganizationalUnitName,
|
||
|
|
||
|
[Parameter(Mandatory = $true)]
|
||
|
[ValidateNotNull()]
|
||
|
[string]$CommonName,
|
||
|
|
||
|
[Parameter(Mandatory = $false)]
|
||
|
[ValidateNotNull()]
|
||
|
[int]$Days = 365
|
||
|
)
|
||
|
begin {
|
||
|
|
||
|
}
|
||
|
process {
|
||
|
return [PSCustomObject]@{
|
||
|
PSTypeName = 'PSCredentialStore.Certificate.Attribute'
|
||
|
Subject = [PSCustomObject]@{
|
||
|
PSTypeName = 'PSCredentialStore.Certificate.Attribute.Subject'
|
||
|
Country = $Country
|
||
|
State = $State
|
||
|
City = $City
|
||
|
Organization = $Organization
|
||
|
OrganizationalUnitName = $OrganizationalUnitName
|
||
|
CommonName = $CommonName
|
||
|
}
|
||
|
Days = $Days
|
||
|
}
|
||
|
}
|
||
|
end {
|
||
|
}
|
||
|
}
|