При добавлении в группу, изменить UPN(суффикс)

Обсуждаем проблемы программирования
Scrat2005
Сообщения: 17
Зарегистрирован: Вс окт 11, 2020 2:28 pm

При добавлении в группу, изменить UPN(суффикс)

Сообщение Scrat2005 »

Добрый день! У меня вот такой скрипт. Тоже добавляет в группу, но при этом нужно изменить юзеру суффикс. Так как Офис365 находится в облаке. Он у меня вроде работал первоначально. Потом перестал менять суффикс.
То что я выложил, оно уже сломано немножко и оно естественно уже не работает.
Посмотрите где я ошибаюсь. Сам думаю что в цикле...и с переменными что то я напутал кажись...

Код: Выделить всё

# скрипт добавляет пользователей в группу "Office365" из файла "xxxxx.txt"
# и меняет суффикс домена в attributе Logon или UserPrincipalName всем пользователям из списка.

Import-Module ActiveDirectory

cls
get-content -Path "D:\Documents\Office365\Add_office365.txt" | ForEach-Object {$UserName = $_
	$User = Get-ADUser $UserName 
	if ($User)
	{
		Add-adgroupmember "Office365PP" -Members $UserName
	} else {
		write-host " $UserName - Учетная запись не найдена..."
	
	}
	
	$User = ''
}

foreach ($user in $users){
   $userset = Get-ADUser $UserName 
          # Get-ADUser -filter {(sAMAccountName -eq $sn) -and (Enabled -eq $true)} -Properties UserPrincipalName
   if ($userset -ne $Null)
{
  $new = $userset.UserPrincipalName -replace "kst.contoso.local","contoso.com"

  Set-ADUser $userset -UserPrincipalName $new
} 
  else
{
 # write-host "$sn - Учетная запись не найдена..."
}
	$User = ''
}
Write-Host 'Done!' -ForegroundColor Red
Scrat2005
Сообщения: 17
Зарегистрирован: Вс окт 11, 2020 2:28 pm

Re: При добавлении в группу, изменить UPN(суффикс)

Сообщение Scrat2005 »

.тхт -файл - обычный построчный список SamaccountName
user1
user2
user3
Аватара пользователя
sanglyb
Site Admin
Сообщения: 49
Зарегистрирован: Вт сен 19, 2017 9:32 pm

Re: При добавлении в группу, изменить UPN(суффикс)

Сообщение sanglyb »

Такой вариант должен быть рабочим:

Код: Выделить всё

# скрипт добавляет пользователей в группу "Office365" из файла "xxxxx.txt"
# и меняет суффикс домена в attributе Logon или UserPrincipalName всем пользователям из списка.

Import-Module ActiveDirectory

cls
$users=get-content -Path ".\users.txt"
foreach ($Username in $users){
	$User = Get-ADUser $UserName 
	if ($User){
		Add-adgroupmember "group1" -Members $UserName
		$new = $User.UserPrincipalName -replace "test.loc","test.com"
		Set-ADUser $User -UserPrincipalName $new
	} else {
		write-host " $UserName - Учетная запись не найдена..."
	}
	$User = ''
}
Write-Host 'Done!' -ForegroundColor Red
Scrat2005
Сообщения: 17
Зарегистрирован: Вс окт 11, 2020 2:28 pm

Re: При добавлении в группу, изменить UPN(суффикс)

Сообщение Scrat2005 »

Спасибо большое. Попробую. Но такой вариант я вроде пробовал. Сейчас проверю...
Scrat2005
Сообщения: 17
Зарегистрирован: Вс окт 11, 2020 2:28 pm

Re: При добавлении в группу, изменить UPN(суффикс)

Сообщение Scrat2005 »

Еще раз огромное спасибо за помощь, за терпение. Скрипт Работает!!! Был оказывается у меня такой вариант, только я не туда воткнул
$new = $User.UserPrincipalName -replace "test.loc","test.com"
Set-ADUser $User -UserPrincipalName $new
)))Спасибо.

Scrat2005
Сообщения: 17
Зарегистрирован: Вс окт 11, 2020 2:28 pm

Re: При добавлении в группу, изменить UPN(суффикс)

Сообщение Scrat2005 »

Есть еще один скрипт рабочий, все хорошо. Есть один нюанс.
Суть скрипта такой:
Через политику ГПО в Description компа пишеться строка типа: "USER{tche_27}: Last LogOut 08.11.2019 15:37:22"
Написал скрипт, который берет из этого Description имя хоста и записывает в LogonWorkstations.
скрипт отрабатывает для каждого OU отдельно. Другого варианта не придумал...
Хочется все OU-шки собрать в одну переменную...
Могу создать отдельную тему и выложить этот скрипт...Он большой и страшный )))
Scrat2005
Сообщения: 17
Зарегистрирован: Вс окт 11, 2020 2:28 pm

Re: При добавлении в группу, изменить UPN(суффикс)

Сообщение Scrat2005 »

я дико извиняюсь, совсем забыл, что еще и "привязку" надо добавить вместе с суффиксом.
с обязательной проверкой, что "привязка не пустая... это я пытаюсь сам)))

Код: Выделить всё

$LogonWorkst =  (Get-ADUser  $UserName.SamAccountName  -Properties LogonWorkstations | select LogonWorkstations).LogonWorkstations
     if( ( $LogonWorkst -ne "" ) -and ( $LogonWorkst -ne $null))
$NewLogonWorkst = $LogonWorkst + ",adfs"
    Set-ADUser $UserName.SamAccountName -LogonWorkstations $NewLogonWorkst
Аватара пользователя
sanglyb
Site Admin
Сообщения: 49
Зарегистрирован: Вт сен 19, 2017 9:32 pm

Re: При добавлении в группу, изменить UPN(суффикс)

Сообщение sanglyb »

Мне кажется проверки $logonworks -ne $null - должно хватать. Проверку с "" - можно убрать.
После условия if нужны фигурные скобки.
А лучше добавлять также, как это делается в скрипте из соседней темы, иначе неизбежно будут дубликаты в компьютерах.

Код: Выделить всё

    $comps="adfs"
    $user=get-aduser "$UserName" -properties *
    if ($user.LogonWorkstations -ne $null){
	$compsArray=$comps.split(",")
	$userCompsArray=$user.LogonWorkstations.split(",")
        $compsArray=(($compsArray+$usercompsarray) | sort-object | get-unique) -join ','
        $user.LogonWorkstations = @($adUseruser.LogonWorkstations, $compsArray) -join ','
        Set-ADUser -instance $user 
    }
Scrat2005
Сообщения: 17
Зарегистрирован: Вс окт 11, 2020 2:28 pm

Re: При добавлении в группу, изменить UPN(суффикс)

Сообщение Scrat2005 »

Спасибо, понял. А если сюда добавить
if ($user.LogonWorkstations -ne $null) and ($user.LogonWorkstations -notlike $comps), дублирование все равно будет?
Scrat2005
Сообщения: 17
Зарегистрирован: Вс окт 11, 2020 2:28 pm

Re: При добавлении в группу, изменить UPN(суффикс)

Сообщение Scrat2005 »

чето я затупил. Можно же и тот скрипт в соседней теме использовать....е-мое
Ответить