Hát az nagyon nem egyszerű. Eddig többféle lekérdezésből előállított különbözeti csv-kből és egyéb dolgokból állt össze a dolog, nem egy script a dolog. Osztálynévsorok, O365, évismétlők új osztálya, osztályváltások, stb. amiből előállt a végső állapot.
Aztán év közben gyártottam scriptet, ami O365-ből a közben érkezett diákot önállóan létrehozza a helyi AD-ben, ahova a Kréta rendszerből kerül be. Egyedül az osztályát kell kiválasztanom a feladott osztálylistából, mert az sajnos nem áll rendelkezésre az O365 azureAD-ben.
Dolgozom még a módszeren, hogy hogy lehetne az osztályt kinyerni. A Kréta export xls-ből a nappalit ki tudom mazsolázni, de a felnőtt és keresztféléves osztályokkal-csoportokkal még bajban vagyok, bár ezzel még túl sokat nem tudtam foglalkozni.
Mindenesetre az ad rész ez, és tökéletesen működik, a jelzett problémával nem találkoztam.
$newadu=@{
SamAccountName = $Username;
UserPrincipalName = $email;
Name = $CommonName;
GivenName = $Firstname;
Surname = $Lastname;
DisplayName = $DisplayName;
EmployeeID = $info;
Path = $OU;
Description = $description;
HomeDrive = $homedrive;
HomeDirectory = $homedirectory;
EmailAddress = $email;
Department = $department;
PasswordNeverExpires = $false;
CannotChangePassword = $false;
AccountPassword = (convertto-securestring $Password -AsPlainText -Force);
OtherAttributes = @{'CN'=$CommonName;'Info'=$info;'thumbnailPhoto'=$tnailphoto}
}
@($newadu.OtherAttributes.Keys) | % {if (-not $newadu.OtherAttributes[$_]) {$newadu.OtherAttributes.Remove($_)}}
New-ADUser @newadu -Erroraction Stop
Add-ADGroupMember -Identity $osztkod -Members $Username
Set-ADUser -Identity $Username -Enabled $True
Set-ADUser -Identity $Username -ChangePasswordAtLogon $True
if (-not (Test-Path "$folder\$Username"))
{
$acl = Get-Acl (New-Item -Path $folder -Name $Username -ItemType Directory)
}
else
{
$acl = Get-Acl -Path "$folder\$Username"
}
$acl.SetAccessRuleProtection($false, $true)
$ace = "$domain\$Username","FullControl", "ContainerInherit,ObjectInherit","None","Allow"
$objACE = New-Object System.Security.AccessControl.FileSystemAccessRule($ace)
$acl.AddAccessRule($objACE)
Set-ACL -Path "$folder\$Username" -AclObject $acl
Blogom: https://logout.hu/blog/upo/index.html | "Az átlagember alvásigénye még 5 perc"