Guest User

Enable UAG Application

a guest
Apr 6th, 2013
155
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. $ErrorActionPreference = "Stop"
  2.  
  3. Get-PSSession | Remove-PSSession
  4.  
  5. #Пароль для учетной записи, которая подключается удаленно к UAG
  6. $SecureString = ConvertTo-SecureString -String "\`d.T.~Vb/{41BAA34C-B0E6-41D0-8F2B-CB3901AAF6A8}\`d.T.~Vb/" -AsPlainText -Force
  7. $Creds = New-Object system.Management.Automation.PSCredential("domain\os2uag_connector", $SecureString)
  8. $SessionOpt = New-PSSessionOption -OperationTimeout (30*60*1000)
  9.  
  10. #Подключаемся к UAG через PSRemoting
  11. $Session = New-PSSession -ComputerName "server-uag01" -Credential $Creds -SessionOption $SessionOpt
  12.  
  13. #Импортируем модуль с функциями
  14. Invoke-Command -Session $Session -ScriptBlock {Import-Module "c:\Scripts\UAGFunctions.ps1"}
  15. #Устанавливаем глобальные переменные $BackupDir и UAGActivator
  16. Invoke-Command -Session $Session -ScriptBlock {Set-UAGConfig -BackupDir "c:\EGFBackups" -UAGActivatorPath "c:\Scripts\UAGActivate.exe" }
  17. #Бэкапим конфиг
  18. Invoke-Command -Session $Session -ScriptBlock {Backup-UAGConfig}
  19.  
  20. $ScriptBlock = {
  21.     #Заполняем входную информацию для публикации
  22.     $VMID = "\`d.T.~Ed/{6F6D86D8-3492-4328-B606-7B983F64826F}.VM ID\`d.T.~Ed/"
  23.     $AppName = "\`d.T.~Ed/{6F6D86D8-3492-4328-B606-7B983F64826F}.VM Name\`d.T.~Ed/"
  24.     $ProjectID = [int]("\`d.T.~Ed/{6F6D86D8-3492-4328-B606-7B983F64826F}.Cloud\`d.T.~Ed/".Split("_")[0].Substring(1))
  25.     $IPAddress = "\`d.T.~Ed/{90F45712-817A-4429-A5F0-668F26467CFD}.{08BCA15A-22A5-4770-81E7-1D41E21D1CDA}\`d.T.~Ed/"
  26.    
  27.     #Смотрим опубликовано ли уже приложение по имени
  28.     $App = Get-UAGApp -AppName $AppName
  29.     if ($App){
  30.         if ($App.VMID -ne ($VMID.ToString().ToUpper().Replace("-",""))){
  31.             #Если приложение (ВМ) с таким именем опубликовано и VMID различаются, то скорее всего старую ВМ удалил и создали с тем же именем
  32.             #в этом случае отключаем исходное
  33.             Disable-UAGApp -AppName $AppName
  34.             #включаем ярлык, заполняем атрибутами
  35.             Enable-UAGApp -AppName $AppName -AppGUID $VMID -ProjectID $ProjectID -IpAddr $IPAddress
  36.         }
  37.         else{
  38.             #обновляем информацию о приложении
  39.             Set-UAGApp -AppName $AppName -IpAddr $IPAddress -ProjectID $ProjectID
  40.         }
  41.     }
  42.     else{
  43.         $App = Get-UAGApp -VMID $VMID
  44.         if (-not $App){
  45.             #Включаем Unused приложение
  46.             Enable-UAGApp -AppName $AppName -AppGUID $VMID -ProjectID $ProjectID -IpAddr $IPAddress
  47.         }
  48.         else {
  49.             #обновляем информацию о приложении
  50.             Set-UAGApp -AppName ($App.AppPortalName) -AppGUID $VMID -IpAddr $IPAddress -NewAppName $AppName -ProjectID $ProjectID
  51.         }
  52.     }
  53. }
  54. #выполняем скрипт-блок, сформированный ранее
  55. Invoke-Command -Session $Session -ScriptBlock $ScriptBlock
  56.  
  57. $Session | Remove-PSSession
RAW Paste Data