Экспорт случайного пароля - импорт и сброс пароля пользователя - PullRequest
0 голосов
/ 30 октября 2018

Можно ли импортировать случайно сгенерированный пароль и установить его для учетной записи пользователя?

Ниже приведено только следующее:

Невозможно преобразовать значение «Пароль» типа «System.String» в тип «System.Security.SecureString".


$testing1 = read-host "Enter name"
$usertesting = Get-Aduser -Filter "DisplayName -eq '$testing1'" 

$fileNameDate = Get-Date
$fileNameDate = $fileNameDate.ToString('MM-dd-yyyy hh-mm-ss')

$Password = New-Object -TypeName PSObject
$Password | Add-Member -MemberType ScriptProperty -Name "Password" -Value { ("!@#$%^&*0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".tochararray() | sort {Get-Random})[0..12] -join '' }
$Password | Export-csv -Path "C:\Output\$fileNameDate.txt" -notypeinformation

$passwordImport = import-csv "C:\Output\$fileNameDate.txt" | ForEach-Object { Set-ADAccountPassword -identity $testing1 -NewPassword $_.Password | ConvertTo-SecureString -AsPlainText -Force }

1 Ответ

0 голосов
/ 30 октября 2018

Мне любопытно, почему вы сохраняете пароль (как csv) и читаете его перед преобразованием в безопасную строку?

Попробуйте это (не проверено)

## Q:\Test\2018\10\30\SO_53064023.ps1

$testing1 = read-host "Enter name"
$usertesting = Get-Aduser -Filter "DisplayName -eq '$testing1'" 

$filenamedate = "C:\Output\{0}.txt" -f (get-date -f 'MM-dd-yyyy hh-mm-ss')

$PassWord = -join ([char[]]"!@#$%^&*0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz" |Get-Random -Count 13)
$Password | Export-csv -Path $fileNameDate -NoTypeInformation

$SecPW = ConvertTo-SecureString -String $PassWord -AsPlainText -Force

Set-ADAccountPassword -identity $testing1 -NewPassword $SecPW 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...