【发布时间】:2019-04-03 11:28:45
【问题描述】:
是否可以导入随机生成的密码并将其设置为用户帐户?
以下仅带回以下内容:
无法将“System.String”类型的“Password”值转换为“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 }
【问题讨论】:
-
您需要预先在脚本中创建 SecureString 或将其括在括号中:
-NewPassword ($_.Password | ConvertTo-SecureString -AsPlainText -Force)。另外,我不确定 CSV 文件在您的代码中添加了什么(额外的复杂性除外)。
标签: powershell import passwords export