Created
June 5, 2012 08:51
-
-
Save xoner/2873699 to your computer and use it in GitHub Desktop.
PowerShell module to generate random passwords through System.Web.Membership.GeneratePassword
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# Manifiesto del módulo 'GenPassword' | |
# | |
# Generado por David Pascual Rocher | |
# | |
# Generado el 12/04/2012 | |
# | |
@{ | |
# Módulo de script o archivo de módulo binario asociado con este manifiesto. | |
ModuleToProcess = 'GenPassword.psm1' | |
# Número de versión de este módulo. | |
ModuleVersion = '1.0' | |
# Id. usado para identificar de forma única este módulo. | |
GUID = '421e1469-0762-4b69-b5ae-8abd5430a7c9' | |
# Autor de este módulo. | |
Author = 'David Pascual Rocher' | |
# Compañía o proveedor de este módulo. | |
CompanyName = 'GNU License 2.0' | |
# Instrucción de copyright de este módulo. | |
Copyright = 'GNU License 2.0' | |
# Descripción de la funcionalidad proporcionada por este módulo. | |
Description = 'Simple Utility to generate a password' | |
# Versión mínima del motor de Windows PowerShell requerida por este módulo. | |
PowerShellVersion = '' | |
# El nombre del host de Windows PowerShell requerido por este módulo. | |
PowerShellHostName = '' | |
# Versión mínima del host de Windows PowerShell requerida por este módulo. | |
PowerShellHostVersion = '' | |
# Versión mínima de .NET Framework requerida por este módulo. | |
DotNetFrameworkVersion = '' | |
# Versión mínima de Common Language Runtime (CLR) requerida por este módulo. | |
CLRVersion = '' | |
# Arquitectura de procesador (None, X86, Amd64 o IA64) que requiere este módulo. | |
ProcessorArchitecture = '' | |
# Módulos que se deben importar en el entorno global antes de importar este módulo. | |
RequiredModules = @() | |
# Ensamblados que se deben cargar antes de importar este módulo. | |
RequiredAssemblies = @() | |
# Archivos de script (.ps1) que se ejecutan en el entorno del llamador antes de importar este módulo. | |
ScriptsToProcess = @() | |
# Archivos de tipo (.ps1xml) que se van a cargar al importar este módulo. | |
TypesToProcess = @() | |
# Archivos de formato (.ps1xml) que se van a cargar al importar este módulo. | |
FormatsToProcess = @() | |
# Módulos para importar como módulos anidados del módulo especificado en ModuleToProcess. | |
NestedModules = @() | |
# Funciones para exportar desde este módulo. | |
FunctionsToExport = '*' | |
# Cmdlets para exportar desde este módulo. | |
CmdletsToExport = '*' | |
# Variables para exportar desde este módulo. | |
VariablesToExport = '*' | |
# Alias para exportar desde este módulo. | |
AliasesToExport = '*' | |
# Lista de todos los módulos empaquetados con este módulo. | |
ModuleList = @() | |
# Lista de todos los paquetes con este módulo. | |
FileList = @() | |
# Datos privados para pasar al módulo especificado en ModuleToProcess. | |
PrivateData = '' | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function GenPassword | |
{ | |
Param( | |
[Parameter(Mandatory = $false)] | |
$Length = 0, | |
[ValidateSet("low", "medium", "high")] | |
[string] $Complexity = "medium" | |
) | |
$lLength = 0 | |
$lNonAlphanumeric = 0 | |
# .net framework 4.0 is needed | |
Add-type -AssemblyName System.Web | |
switch ($Complexity) | |
{ | |
"low" | |
{ | |
if($Length -gt 0) | |
{ | |
$lLength = $Length; | |
} | |
else | |
{ | |
$lLength = 8 | |
} | |
$lNonAlphanumeric = 0 | |
} | |
"medium" | |
{ | |
if ($Length -ge 2) | |
{ | |
$lLength = $Length; | |
} | |
else | |
{ | |
$lLength = 16 | |
} | |
$lNonAlphanumeric = 2 | |
} | |
"high" | |
{ | |
if($Length -ge 4) | |
{ | |
$lLength = $Length | |
} | |
else | |
{ | |
$lLength = 32 | |
} | |
$lNonAlphanumeric = 4 | |
} | |
} | |
[System.Web.Security.Membership]::GeneratePassword($lLength, $lNonAlphanumeric) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment