Update INFMaker.ps1

This commit is contained in:
2026-01-21 01:42:27 +00:00
parent af074a54c4
commit 5f72f477ca

View File

@@ -1 +1,62 @@
placeholder param(
[Parameter(Mandatory = $true)]
[string]$InputPath,
[Parameter(Mandatory = $false)]
[string]$OutputDir = (Get-Location).Path
)
if (-not (Test-Path -Path $InputPath -PathType Leaf)) {
throw "Input file not found: $InputPath"
}
if (-not (Test-Path -Path $OutputDir -PathType Container)) {
throw "Output directory not found: $OutputDir"
}
$template = @'
[Version]
Signature="$Windows NT$"
[NewRequest]
Subject = "CN=$Placeholder.printer.MBIE.govt.nz;OU=ICT;O=Ministry of Business, Innovation and Employment;L=Wellington;S=Wellington;C=NZ"
X500NameFlags = 0x40000000
Exportable = TRUE
KeyLength = 2048
KeySpec = 1
KeyUsage = 0xA0
MachineKeySet = True
ProviderName = "Microsoft RSA SChannel Cryptographic Provider"
HashAlgorithm = sha256
RequestType = PKCS10
FriendlyName = "$Placeholder.printer.MBIE.govt.nz - 2026"
[EnhancedKeyUsageExtension]
OID=1.3.6.1.5.5.7.3.1 ; Server Authentication
OID=1.3.6.1.5.5.7.3.2 ; Client Authentication
[Extensions]
; If your client operating system is Windows Server 2008, Windows Server 2008 R2, Windows Vista, or Windows 7
; SANs can be included in the Extensions section by using the following text format. Note 2.5.29.17 is the OID for a SAN extension.
2.5.29.17 = "{text}"
_continue_ = "dns=$Placeholder.printer.MBIE.govt.nz&"
_continue_ = "dns=$Placeholder.wd.govt.nz&"
_continue_ = "dns=$Placeholder.ciga.ldap.govt.nz&"
_continue_ = "dns=$Placeholder.printer.MBIE.govt.nz&"
_continue_ = "dns=$Placeholder.wd.govt.nz&"
_continue_ = "dns=$Placeholder.ciga.ldap.govt.nz&"
'@
$invalidChars = [IO.Path]::GetInvalidFileNameChars()
Get-Content -Path $InputPath | ForEach-Object {
$name = $_.Trim()
if ([string]::IsNullOrWhiteSpace($name)) { return }
$safeName = -join ($name.ToCharArray() | ForEach-Object {
if ($invalidChars -contains $_) { '_' } else { $_ }
})
$content = $template.Replace('$Placeholder', $name)
$outPath = Join-Path -Path $OutputDir -ChildPath ($safeName + '.inf')
Set-Content -Path $outPath -Value $content -Encoding ascii
}