Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Windows Server 2008/2008 R2 (http://forum.oszone.net/forumdisplay.php?f=97)
-   -   [решено] posh: new-aduser ps1 convert-to-html (http://forum.oszone.net/showthread.php?t=269276)

nokogerra 04-10-2013 07:29 2228317

posh: new-aduser ps1 convert-to-html
 
Доброго времени суток. Использую ad модуль для posh 2, new-aduser командлет.

подключение модуля и функция для генерации рандом пароля
читать дальше »

import-module activedirectory
Function Create-Password {
#How many characters in the password
[int]$passwordlength = 10

#Minimum Upper Case characters in password
[int]$min_upper = 3

#Minimum Lower Case characters in password
[int]$min_lower = 3

#Minimum Numerical characters in password
[int]$min_number = 3

#Minimum Symbol/Puncutation characters in password
[int]$min_symbol = 0

#Misc password characters in password
#[int]$min_misc = ($passwordlength - ($min_upper + $min_lower + $min_number + $min_symbol))
[int]$min_misc = ($passwordlength - ($min_upper + $min_lower + $min_number))

#Characters for the password
$upper = @("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y ","Z")
$lower = @("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y ","z")
$number = @(1,2,3,4,5,6,7,8,9,0)
$symbol = @("!","@","#","%","&","(",")","`"",".","<",">","+","=","-","_")
# $combine = $upper + $lower + $number + $symbol
$combine = $upper + $lower + $number

$password = @()

#Start adding upper case into password
1..$min_upper | % {$password += Get-Random $upper}
#Add lower case into password
1..$min_lower | % {$password += Get-Random $lower}
#Add numbers into password
1..$min_number | % {$password += Get-Random $number}

#Add symbols into password
# 1..$min_symbol | % {$password += Get-Random $symbol}

#Fill out the rest of the password length
1..$min_misc | % {$password += Get-Random $combine}

#Randomize password
Get-Random $password -count $passwordlength | % {[string]$randompassword += $_}
Return $randompassword
}

далее сам скрипт:
Import-Csv -Path "C:\scripts\1.csv" | ForEach-Object {$_.accountpassword=create-password; $p=ConvertTo-SecureString $_.accountpassword -asPlainText -force; New-ADUser -Name $_.name ..... -AccountPassword $p .... -logonworkstations $_.logonworkstations} | ConvertTo-Html name, samaccountname, accountpassword | out-file "c:\usr.html"
#ii c:\usr.html

пользователи создаются успешно, но в html не выводится отчет, вариант с ConvertTo-Html name, samaccountname, accountpassword >"c:\usr.html" тоже не работает.

csv файл такого типа:
name,samaccountname,accountpassword,displayname,logonworkstations
u022-stud-01,u022-stud-01,,u022-stud-01,pws022-stud-01
..........................
пользователи созданы с рандомными паролями но я их не знаю :D

cortes_ 04-10-2013 09:14 2228357

Попробуйте вместо out-file "c:\usr.html" #ii c:\usr.html выполнить Set-Content <PATH_TO_HTML_FILE>

И что значит не выводится? он не формируется/формируется, но неправильно/не выводится в файл

nokogerra 04-10-2013 10:37 2228384

файл формируется но пустой.
set-content вообще не формирует файл, наверное нужен командлет get типа, new-aduser не подходит, но каким образом сюда привязать get - не понятно, get-aduser не получает пароли.

nokogerra 07-10-2013 07:36 2229977

решено:

Function Create-Password {....

}


Function INCRZ() {$global:i++; return $global:PassArray[$global:i]}

# массив паролей

$PassArray=New-Object system.collections.Arraylist;
for ($i=0;$i -lt 10;$i++) {$temppass=create-password; $PassArray.Add($temppass)};
clear
$i=-1;
$y=-1;
Import-Csv -Path "C:\scripts\1.csv" | ForEach-Object {$y++; $p=ConvertTo-SecureString $PassArray[$y] -asPlainText -force; New-ADUser -Name $_.name ....}
Get-ADUser -Filter {cn -like "u022-stud-*"}| select Name, @{Name="Pass"; Expression = {INCRZ}}

Name Pass
---- ----
u022-stud-01 qaT6q7
u022-stud-02 mq5F7A
u022-stud-03 kTDVM3
u022-stud-04 LtTau9
u022-stud-05 53M4Cq
u022-stud-06 b3vZYH
u022-stud-07 qy9jS3
u022-stud-08 Azuj0S
u022-stud-09 FZkQ8M
u022-stud-10 J6RI9h

теперь можно конвертировать в html, нужно лишь знать количество создаваемых пользователей, чтобы указать предел i.


Время: 16:30.

Время: 16:30.
© OSzone.net 2001-