Parallels RAS PowerShell - Publishing Example

#Establish a connection with Parallels RAS (Replace Administrator with your RAS root account). New-RASSession Administrator
###### FARM CONFIGURATION ######
#Add two RD Session Host servers. $RDS1 = New-RASRDS -Server "rds1.company.dom"
$RDS2 = New-RASRDS -Server "rds2.company.dom"
#Get the list of RD Session Host servers. $RDSList = Get-RASRDS
#Create a RAS RD Session Host group and add both RDS objects to it. $RDSGrp = New-RASRDSGroup -Name "My RDS Group" -RDSObject $RDSList
#Update default settings used to configure RD Session Host agents. Set-RASRDSDefaultSettings -MaxSessions 100 -EnableAppMonitoring $true
###### PUBLISHING CONFIGURATION ######
#Add published folders to be used by different departments. $Fld_Acc = New-RASPubFolder -Name "AccDept" -Description "Accounting"
$Fld_Sales = New-RASPubFolder -Name "SalesDept" -Description "Sales"
#Add published desktops within their respective folders. $Desk_Acc = New-RASPubRDSDesktop -Name "AccPubDesktop" -ParentFolder $Fld_Acc -DesktopSize FullScreen -PublishFrom Group -PublishFromGroup $RDSGrp
$Desk_Sales = New-RASPubRDSDesktop -Name "SalesPubDesktop" -ParentFolder $Fld_Sales -DesktopSize Custom -Width 600 -Height 400 -PublishFrom All
#Add published applications within their respective folders. $App_Acc = New-RASPubRDSApp -Name "AccPubApp" -Target "C:\Windows\System32\calc.exe" -ParentFolder $Fld_Acc -PublishFrom All -WinType Maximized -StartOnLogon
$App_Sales = New-RASPubRDSApp -Name "SalesPubApp" -Target "C:\Windows\System32\notepad.exe" -ParentFolder $Fld_Sales -PublishFrom Server -PublishFromServer $RDS1
#Update default settings used to configure published resources. Set-RASPubDefaultSettings -CreateShortcutOnDesktop $true
#Override shortcut default settings for a specific published application. Set-RASPubRDSApp -InputObject $App_Sales -InheritShorcutDefaultSettings $false -CreateShortcutOnDesktop $false
###### PUB FILTERING CONFIGURATION ######
#Set AD account filters by ID. Add-RASRule -Id $Desk_Acc.Id -ObjType PubItem -RuleName "Rule 1"
$Desk_Acc_Rules = Get-RASRule -Id $Desk_Acc.Id -ObjType PubItem
Set-RASCriteria -Id $Desk_Acc.Id -ObjType PubItem -SecurityPrincipalsEnabled $true -RuleId $Desk_Acc_Rules[0].Id
Add-RASCriteriaSecurityPrincipal -Id $Desk_Acc.Id -ObjType PubItem -RuleId $Desk_Acc_Rules[0].Id -Account "Guests"
#Set AD account filters by object. Add-RASCriteriaSecurityPrincipal -Id $Desk_Acc.Id -ObjType PubItem -RuleId $Desk_Acc_Rules[0].Id -SID "S-1-5-11"
#Set an IP filter (with range) on application. Add-RASRule -InputObject $App_Acc -RuleName "Rule 1"
$App_Acc_Rules = Get-RASRule -Id $App_Acc.Id -ObjType PubItem
Set-RASCriteria -InputObject $App_Acc -RuleId $App_Acc_Rules[0].Id -IPsEnabled $true
Add-RASCriteriaIP -InputObject $App_Acc -RuleId $App_Acc_Rules[0].Id -IPType Version4 -IP "10.0.0.1-10.0.0.12"
#Apply all settings. This cmdlet performs the same action as the Apply button in the RAS console. Invoke-RASApply
#End the current RAS session. Remove-RASSession