Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $id_offset = 300000
- $homedir_root = "/home/example.com"
- $login_shell = "/bin/bash"
- $search_bases = @("OU=Organisation,DC=example,DC=com", "CN=Users,DC=example,DC=com")
- Write-Host "Using id offset ${id_offset}"
- foreach ($search_base in $search_bases) {
- Write-Host "`nGenerating Unix attributes for user/group objects in ${search_base}"
- foreach ($ad_user in Get-ADUser -Filter * -SearchBase $search_base -Properties PrimaryGroupID) {
- $sid_uid = [int]"$($ad_user.SID)".split('-')[7]
- $username = $ad_user.SamAccountName
- $uid = $id_offset + $sid_uid
- $primary_group_gid = $id_offset + [int]$ad_user.PrimaryGroupID
- if ($uid -eq $id_offset -Or $primary_group_gid -eq $id_offset) {
- continue
- }
- $homedir = "${homedir_root}/${username}"
- Write-Host "${username}:*:${uid}:${primary_group_gid}:$($ad_user.name):${homedir}:${login_shell}"
- Set-ADUser -Identity $username -Replace @{uidNumber=$uid;gidNumber=$primary_group_gid;unixHomeDirectory=$homedir;loginShell=$login_shell}
- }
- foreach ($ad_group in Get-ADGroup -Filter * -SearchBase $search_base) {
- $sid_gid = [int]"$($ad_group.SID)".split('-')[7]
- $groupname = $ad_group.SamAccountName
- $gid = $id_offset + $sid_gid
- if ($gid -eq $id_offset) {
- continue
- }
- Write-Host "GID for group ${groupname}: ${gid}"
- Set-ADGroup -Identity $groupname -Replace @{gidNumber=$gid}
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement