powershell导出随机密码和用户名
我一直在通过下面这样的方式重置用户密码。我的问题是:如何获得下面这样的输出 期望输出:powershell导出随机密码和用户名,powershell,Powershell,我一直在通过下面这样的方式重置用户密码。我的问题是:如何获得下面这样的输出 期望输出: username,password user01,Wkyqnm7l user02,Wfyqrm8l 脚本: import-Csv c:\tmp\users.csv | ` ForEach-Object { $filenamedate = "C:\tmp\{0}.txt" -f (get-date -f 'MM-dd-yyyy hh-mm-ss') $PassWord
username,password
user01,Wkyqnm7l
user02,Wfyqrm8l
脚本:
import-Csv c:\tmp\users.csv | `
ForEach-Object {
$filenamedate = "C:\tmp\{0}.txt" -f (get-date -f 'MM-dd-yyyy hh-mm-ss')
$PassWord = -join ([char[]]"!@#$%^&*0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz" |Get-Random -Count 8)
$Password | Export-csv -Path $fileNameDate -NoTypeInformation
$SecPW = ConvertTo-SecureString -String $PassWord -AsPlainText -Force
Set-ADAccountPassword -Identity $_.dn -Reset -NewPassword $SecPW }
如果DN实际上是DifferentizedName,则可以执行类似于
($\u.DN).Split(“,”)[0]-替换“CN=”
的操作来获取sAMAccountName
如果您希望每个用户有一个文件,那么$fileNameDate
应该在循环中,但您还需要一个变量来标识文件
$charMap=[char[]]"!@#$%^&*0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"
$filenamedate = "C:\tmp\{0}.csv" -f (get-date -f 'MM-dd-yyyy hh-mm-ss')
import-Csv c:\tmp\users.csv | ForEach-Object {
$PassWord = -join ($charMap |Get-Random -Count 8)
$SecPW = ConvertTo-SecureString -String $PassWord -AsPlainText -Force
Set-ADAccountPassword -Identity $_.dn -Reset -NewPassword $SecPW
[pscustomobject]@{
UserName=$_.DN # if the DN is actually the samAccountName
Password=$Password
} | Export-Csv $fileNameDate -NoTypeInformation -Append
}
如果csv中的列
dn
实际上是用户SamAccountName
,而不是区分名称
,则可以使用
$filenamedate = "C:\tmp\{0}.csv" -f (get-date -f 'MM-dd-yyyy hh-mm-ss')
$result = Import-Csv c:\tmp\users.csv |
ForEach-Object {
$PassWord = -join ([char[]]"!@#$%^&*0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz" | Get-Random -Count 8)
$SecPW = ConvertTo-SecureString -String $PassWord -AsPlainText -Force
Set-ADAccountPassword -Identity $_.dn -Reset -NewPassword $SecPW
# output an object
[PsCustomObject]@{
username = $_.dn
password = $PassWord
}
}
$result | Export-Csv -Path $fileNameDate -NoTypeInformation
csv文件是否也包含用户samaccountname?嗨,theo,已经在
$\uDN.dn
变量中添加了用户samaccountname,因此dn
值实际上不是dn?不是dn,已经在$\uDN.Variables中添加了用户samaccountname这比我的示例更快/更好。更少的磁盘I/O=更快的执行。@Theo我有一个问题。你有机会看看吗?