密码用词和4个生成的字符

时间:2016-11-08 13:24:12

标签: powershell active-directory

我有以下脚本,我想生成一个模式TEMPPW + 3个数字和1个特殊字符的密码。我需要在此脚本中更改什么内容?

#
# Description: Wlacza konta, resetuje hasla i ustawia zmiane hasla przy pierwszym logowaniu.
#
Import-Module ActiveDirectory
Add-Type -AssemblyName System.Web 
# Pobiera liste kont z pliku UserList.txt
# Jeden user na wiersz, bo sie wysypie. 
$users = Get-Content -Path 'G:\Shares\xx xxx\ResetPassword\UserList.txt'
#
ForEach ($user in $users) 
{
$unsecuredpwd = [System.Web.Security.Membership]::GeneratePassword(10, 3)
# Szyfruje haslo, a potem podstawia je w miejsce zmiennej unsecurepwd.
$password = ConvertTo-SecureString -AsPlainText $unsecuredpwd -Force
# Ustawia haslo dla konta.
Get-ADUser $user | Set-ADAccountPassword -NewPassword $password -Reset
# Wymusza zmiane hasla przy logowaniu.
Get-ADUser $user | Set-AdUser -ChangePasswordAtLogon $true
# Wlacza konto.
Enable-ADAccount -Identity $user
Write-Host “uzytkownik: $user”
Write-Host “haslo: $unsecuredpwd”
Write-Host “ `r`n`r`n”
}
Read-Host -Prompt "Nacisnij enter, zeby wyjsc"

2 个答案:

答案 0 :(得分:2)

生成随机3位数字非常简单,使用Get-Random-Minimum参数{/ 1}}:

-Maximum

生成随机“特殊字符”也很简单,我们可以从33到47之间的ASCII范围中抓取其中一个符号(# Maximum is exclusive, largest potential output is 999 $RandomNumber = Get-Random -Minimum 100 -Maximum 1000 ):

! " # $ % & ' ( ) * + , - . /

因此要生成整个密码,我们可以使用字符串格式运算符($RandomSpecialChar = [char](33..47 |Get-random) )并执行:

-f

答案 1 :(得分:0)

好吧,既然马丁不想回答,我会这样做;) 你会想做这样的事情:

$a = 'TEMPW'
$a += -join ((48..57) | get-random -count 3 | % {[char]$_})
$a += -join ((58..64) | get-random | % {[char]$_})