|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Ограничить количество цифр в генераторе паролей |
|
PowerShell - Ограничить количество цифр в генераторе паролей
|
Старожил Сообщения: 226 |
Добрый день всем!
Есть отличная функция - генератор паролей, со всеми необходимыми настойками. Описание от автора (ник iRon) :
Функция: Function MakeUp-String([Int]$Size = 8, [Char[]]$CharSets = "ULNS", [Char[]]$Exclude) { $Chars = @(); $TokenSet = @() If (!$TokenSets) {$Global:TokenSets = @{ U = [Char[]]'ABCDEFGHIJKLMNOPQRSTUVWXYZ' #Upper case L = [Char[]]'abcdefghijklmnopqrstuvwxyz' #Lower case N = [Char[]]'0123456789' #Numerals S = [Char[]]'!"#$%&''()*+,-./:;<=>?@[\]^_`{|}~' #Symbols }} $CharSets | ForEach { $Tokens = $TokenSets."$_" | ForEach {If ($Exclude -cNotContains $_) {$_}} If ($Tokens) { $TokensSet += $Tokens If ($_ -cle [Char]"Z") {$Chars += $Tokens | Get-Random} #Character sets defined in upper case are mandatory } } While ($Chars.Count -lt $Size) {$Chars += $TokensSet | Get-Random} ($Chars | Sort-Object {Get-Random}) -Join "" #Mix the (mandatory) characters and output string }; Set-Alias Create-Password MakeUp-String -Description "Generate a random string (password)" Может кто подскажет, как правильно это прописать, в самой функции или при её вызове ? Заранее благодарен за советы и подсказки! |
|
Отправлено: 13:42, 30-06-2021 |
Ветеран Сообщения: 1758
|
Цитата Uragan66:
Cоответственно выборку можно помножить на колличество элементов в "пароле", чтобы было возможно например "aaaaa" |
|
Отправлено: 16:42, 30-06-2021 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 226
|
Профиль | Отправить PM | Цитировать Цитата Foreigner:
Вот и хотелось бы добавить в неё ещё и возможность регулирования количества цифр. |
|
Отправлено: 17:11, 30-06-2021 | #3 |
Ветеран Сообщения: 1758
|
Цитата Uragan66:
|
|
Отправлено: 18:43, 30-06-2021 | #4 |
Забанен Сообщения: 793
|
Uragan66, например:
function Get-RandomPass { [CmdletBinding()] param( [Parameter()][Byte]$Length = 8, # немного сэкономим на памяти [Parameter()][ValidateSet('U', 'L', 'N', 'S')][Alias('c')] [Char[]]$CharSets = 'ULNS', [Parameter()][Byte]$NumLimit = 3 ) end { if ($NumLimit -ge $Length) { throw [InvalidOperationException]::new('Вне массива.') } $arr = [Linq.Enumerable]::SelectMany( [Object[]]@{U='A'..'Z';L='a'..'z';N=( # сразу ограничиваем количество цифр Get-Random ('0'..'9') -Count $NumLimit );S=('!'..'z').Where{$_ -notmatch '[0-9a-z]'} }[[String[]]$CharSets], [Func[Object, [Object[]]]]{$args[0]} ).ToArray() -join (Get-Random (( # просто перемешиваем полученный массив Get-Random $arr[0..($arr.Length - $NumLimit - 1)] -Count ($Length - $NumLimit) ) + $arr[($NumLimit * -1)..-1]) -Shuffle) } } Прочую мишуру навесите сами. |
|
Отправлено: 19:28, 30-06-2021 | #5 |
Старожил Сообщения: 226
|
Профиль | Отправить PM | Цитировать Цитата Foreigner:
greg zakharov, спасибо, код хороший, но не получается запустить его ни на версии PS 5.1, на на 7.0. |
|
Отправлено: 14:51, 02-07-2021 | #6 |
Забанен Сообщения: 793
|
|
Отправлено: 18:12, 02-07-2021 | #7 |
Старожил Сообщения: 226
|
Профиль | Отправить PM | Цитировать |
Отправлено: 19:43, 02-07-2021 | #8 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
C/C++ - поиск суммы и количество всех цифр в указанном файле | Ellev | Программирование и базы данных | 1 | 18-06-2013 22:40 | |
Разное - Ограничить количество обращений к жесткому диску | DisPlayBoy | Microsoft Windows 2000/XP | 3 | 21-03-2013 18:49 | |
Разное - Ограничить количество букв для мапа дисков | RUVATA | Microsoft Windows 2000/XP | 3 | 30-10-2010 14:50 | |
Система - Можно ли ограничить количество памяти выделяемой программе? | multy | Программное обеспечение Windows | 0 | 08-09-2010 13:55 | |
Как ограничить количество одновреммено качаемых файлов ? | allalone | Сетевые технологии | 8 | 22-05-2004 03:12 |
|