Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $ErrorActionPreference = "Stop"
- $SecureString = ConvertTo-SecureString -String "\`d.T.~Vb/{41BAA34C-B0E6-41D0-8F2B-CB3901AAF6A8}\`d.T.~Vb/" -AsPlainText -Force
- $Creds = New-Object system.Management.Automation.PSCredential("domain\os2uag_connector", $SecureString)
- $SessionOpt = New-PSSessionOption -OperationTimeout (30*60*1000)
- $Session = New-PSSession -ComputerName "server-uag01" -Credential $Creds -SessionOption $SessionOpt
- Invoke-Command -Session $Session -ScriptBlock {Import-Module "c:\Scripts\UAGFunctions.ps1"}
- Invoke-Command -Session $Session -ScriptBlock {Set-UAGConfig -BackupDir "c:\EGFBackups" -UAGActivatorPath "c:\Scripts\UAGActivate.exe" }
- $ScriptBlock = {
- #Имя приложения, отображаемое на портале
- $AppName = "\`d.T.~Ed/{6F6D86D8-3492-4328-B606-7B983F64826F}.VM Name\`d.T.~Ed/"
- #DN пользователя в AD (я использую Active Directory Repository, для других репозиториев эти атрибуты могут отличаться)
- $UserDN = "\`d.T.~Ed/{D6BCE08A-3CA4-4480-9482-4635B5083573}.Distinguished Name\`d.T.~Ed/"
- $UserCanArr = @($UserDN.split(",") | where {$_ -notlike "dc=*"} | foreach {$_.Substring(3)})
- $UserCanArr = @(for($i=($UserCanArr.Count-1);$i -ge 0; $i--) { $UserCanArr[$i] })
- #User Canonical String без домена (это тоже особенность Active Directory Repository в UAG)
- $UserCanStr = [string]::Join('\', $UserCanArr)
- #Получаю список авторизации для приложения
- $authlist = Get-UAGAuth -AppName $AppName
- $Создаю новый объект
- $userObj = New-Object System.Object
- #DN
- $userObj | Add-Member -Name ID -MemberType NoteProperty -Value $UserDN
- #Тип - 1 (пользователь)
- $userObj | Add-Member -Name IsUser -MemberType NoteProperty -Value "1"
- #Это имя репозитория (не имя домена, а именно репозитория аутентификации)
- $userObj | Add-Member -Name Repository -MemberType NoteProperty -Value "domain.com"
- #User Canonical name
- $userObj | Add-Member -Name UserName -MemberType NoteProperty -Value $UserCanStr
- #Разрешить - 1 (для блокирования видимо 0)
- $userObj | Add-Member -Name Allow -MemberType NoteProperty -Value "1"
- #добавляю к исходному список (hash-таблица, в которой в качестве ключа используется DN) нового пользователя
- $authlist[$userObj.ID] = $userObj
- #Устанавливаю список авторизации для приложения
- Set-UAGAuth -AppName $AppName -UserArray $authlist
- }
- #Выполняю скрипт-блок, подготовленный ранее
- Invoke-Command -Session $Session -ScriptBlock $ScriptBlock
- #Здесь можно активировать, но в моем случае активация конфигурации происходит чуть позже
- #Invoke-Command -Session $Session -ScriptBlock { Activate-UAGConfig }
- $Session | Remove-PSSession
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement