New-AzureAdClientSecret.ps1
<#
.SYNOPSIS Generate Random Client Secret for application registration or service principal in Azure AD. .EXAMPLE PS C:\>New-AzureAdClientSecret Generates a new client secret 32 characters long. .EXAMPLE PS C:\>New-AzureAdClientSecret -Length 64 -Base64Encode Generates a new client secret 64 bytes long and then base64 encodes it. #> function New-AzureAdClientSecret { [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 } |