SHARE
TWEET

UAG App Set AuthList

a guest Apr 6th, 2013 38 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. $ErrorActionPreference = "Stop"
  2.  
  3. $SecureString = ConvertTo-SecureString -String "\`d.T.~Vb/{41BAA34C-B0E6-41D0-8F2B-CB3901AAF6A8}\`d.T.~Vb/" -AsPlainText -Force
  4. $Creds = New-Object system.Management.Automation.PSCredential("domain\os2uag_connector", $SecureString)
  5. $SessionOpt = New-PSSessionOption -OperationTimeout (30*60*1000)
  6. $Session = New-PSSession -ComputerName "server-uag01" -Credential $Creds -SessionOption $SessionOpt
  7.  
  8. Invoke-Command -Session $Session -ScriptBlock {Import-Module "c:\Scripts\UAGFunctions.ps1"}
  9. Invoke-Command -Session $Session -ScriptBlock {Set-UAGConfig -BackupDir "c:\EGFBackups" -UAGActivatorPath "c:\Scripts\UAGActivate.exe" }
  10.  
  11. $ScriptBlock = {
  12.         #Имя приложения, отображаемое на портале
  13.         $AppName = "\`d.T.~Ed/{6F6D86D8-3492-4328-B606-7B983F64826F}.VM Name\`d.T.~Ed/"
  14.         #DN пользователя в AD (я использую Active Directory Repository, для других репозиториев эти атрибуты могут отличаться)
  15.         $UserDN = "\`d.T.~Ed/{D6BCE08A-3CA4-4480-9482-4635B5083573}.Distinguished Name\`d.T.~Ed/"
  16.         $UserCanArr = @($UserDN.split(",") | where {$_ -notlike "dc=*"} | foreach {$_.Substring(3)})
  17.         $UserCanArr = @(for($i=($UserCanArr.Count-1);$i -ge 0; $i--) { $UserCanArr[$i] })
  18.         #User Canonical String без домена (это тоже особенность Active Directory Repository в UAG)
  19.         $UserCanStr = [string]::Join('\', $UserCanArr)
  20.         #Получаю список авторизации для приложения
  21.         $authlist = Get-UAGAuth -AppName $AppName
  22.  
  23.         $Создаю новый объект
  24.         $userObj = New-Object System.Object
  25.         #DN
  26.         $userObj | Add-Member -Name ID -MemberType NoteProperty -Value $UserDN
  27.         #Тип - 1 (пользователь)
  28.         $userObj | Add-Member -Name IsUser -MemberType NoteProperty -Value "1"
  29.         #Это имя репозитория (не имя домена, а именно репозитория аутентификации)
  30.         $userObj | Add-Member -Name Repository -MemberType NoteProperty -Value "domain.com"
  31.         #User Canonical name
  32.         $userObj | Add-Member -Name UserName -MemberType NoteProperty -Value $UserCanStr
  33.         #Разрешить - 1 (для блокирования видимо 0)
  34.         $userObj | Add-Member -Name Allow -MemberType NoteProperty -Value "1"
  35.         #добавляю к исходному список (hash-таблица, в которой в качестве ключа используется DN) нового пользователя
  36.         $authlist[$userObj.ID] = $userObj
  37.  
  38.         #Устанавливаю список авторизации для приложения
  39.         Set-UAGAuth -AppName $AppName -UserArray $authlist
  40. }
  41.  
  42. #Выполняю скрипт-блок, подготовленный ранее
  43. Invoke-Command -Session $Session -ScriptBlock $ScriptBlock
  44. #Здесь можно активировать, но в моем случае активация конфигурации происходит чуть позже
  45. #Invoke-Command -Session $Session -ScriptBlock { Activate-UAGConfig }
  46.  
  47. $Session | Remove-PSSession
RAW Paste Data
Top