New-MSIDClientSecret.ps1
<# .SYNOPSIS Generate Random Client Secret for application registration or service principal in Azure AD. .EXAMPLE PS C:\>New-MSIDClientSecret Generates a new client secret 32 characters long. .EXAMPLE PS C:\>New-MSIDClientSecret -Length 64 -Base64Encode Generates a new client secret 64 bytes long and then base64 encodes it. #> function New-MSIDClientSecret { [CmdletBinding()] [OutputType([securestring])] param ( # Specifies the number of random characters or bytes to generate. [Parameter(Mandatory = $false)] [int] $Length = 32, # Generate a binary key and encode it to base64. [Parameter(Mandatory = $false)] [switch] $Base64Encode ) if ($Base64Encode) { [securestring] $Secret = ConvertTo-SecureString (ConvertTo-Base64String ([byte[]](Get-Random -InputObject ((([byte]::MinValue)..([byte]::MaxValue)) * $Length) -Count $Length))) -AsPlainText -Force } else { [char[]] $Numbers = (48..57) [char[]] $UpperCaseLetters = (65..90) [char[]] $LowerCaseLetters = (97..122) [char[]] $Symbols = '*+-./:=?@[]_' [securestring] $Secret = ConvertTo-SecureString ((Get-Random -InputObject (($UpperCaseLetters + $LowerCaseLetters + $Numbers + $Symbols) * $Length) -Count $Length) -join '') -AsPlainText -Force } return $Secret } |