Skip to content

Instantly share code, notes, and snippets.

@xoner
Created June 5, 2012 08:51
Show Gist options
  • Save xoner/2873699 to your computer and use it in GitHub Desktop.
Save xoner/2873699 to your computer and use it in GitHub Desktop.
PowerShell module to generate random passwords through System.Web.Membership.GeneratePassword
#
# 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 = ''
}
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