Страница 1 из 2

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

Добавлено: Вт окт 13, 2020 7:11 am
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

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

Добавлено: Вт окт 13, 2020 7:13 am
Scrat2005
.тхт -файл - обычный построчный список SamaccountName
user1
user2
user3

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

Добавлено: Вт окт 13, 2020 11:04 am
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

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

Добавлено: Вт окт 13, 2020 12:32 pm
Scrat2005
Спасибо большое. Попробую. Но такой вариант я вроде пробовал. Сейчас проверю...

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

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

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

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

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

Добавлено: Вт окт 13, 2020 1:51 pm
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

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

Добавлено: Вт окт 13, 2020 4:43 pm
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 
    }

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

Добавлено: Вт окт 13, 2020 5:42 pm
Scrat2005
Спасибо, понял. А если сюда добавить
if ($user.LogonWorkstations -ne $null) and ($user.LogonWorkstations -notlike $comps), дублирование все равно будет?

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

Добавлено: Вт окт 13, 2020 6:00 pm
Scrat2005
чето я затупил. Можно же и тот скрипт в соседней теме использовать....е-мое