You know you have a LOT of apps. But you want to know about 1 app in particular. You could go to Studio and look. You could peruse the various pieces and parts to and get what you want. Or…. you could just grab it via script. So that is what we gonna do here. We are going to present a grid view of the applications you have published, select one of them, and give you all the information you have room for! And, for an unlimited time offer, export to csv! This requires having setup your Citrix Cloud authentication and using your secureclient.csv to access.
# Get Citrix Application Info
asnp Citrix*
Get-XDAuthentication -ProfileName "default"
$application = Get-BrokerApplication -MaxRecordCount 100000 | Select-Object ApplicationName, Enabled, AssociatedApplicationGroupUids, AllAssociatedDesktopGroupUids | Out-GridView -Title "Applications" -PassThru
$date = Get-Date -Format MMddyyyy
$a = 1
$d = 1
$app = $application.ApplicationName
$appGroupUids = @($application.AssociatedApplicationGroupUids)
$deliveryGroupUids = @($application.AllAssociatedDesktopGroupUids)
$appGroupUidsCounts = ($appGroupUids).Count
$deliveryGroupUidsCounts = ($deliveryGroupUids).count
$ctxAppInfo = [PSCustomObject]@{}
$ctxAppInfo | Add-Member -NotePropertyName "ApplicationName" -NotePropertyValue ($application).ApplicationName -Force
$ctxAppInfo | Add-Member -NotePropertyName "Enabled" -NotePropertyValue ($application).Enabled -Force
if($appGroupUidsCounts -gt 0){
foreach($appGroups in $appGroupUids){
$applicationGroupInfo = (Get-BrokerApplicationGroup -Uid $appGroups)
$applicationGroupNames = ($applicationGroupInfo).ApplicationGroupName
$ctxAppInfo | Add-Member -NotePropertyName "ApplicationGroups-$a" -NotePropertyValue $applicationGroupNames -Force
if($applicationGroupInfo.AssociatedUserNames -ne $null){
$applicationGroupUsers = ($applicationGroupInfo).AssociatedUserNames -join ';'
$ctxAppInfo | Add-Member -NotePropertyName "ApplicationGroupUsers-$a" -NotePropertyValue $applicationGroupUsers -Force
}
$a++
}
}
if($deliveryGroupUidsCounts -gt 0){
foreach($deliveryGroup in $deliveryGroupUids){
$deliveryGroupInfo = Get-BrokerDesktopGroup -Uid $deliveryGroup
$deliveryGroupNames = $deliveryGroupInfo.PublishedName
$deliveryGroupUsers = (Get-BrokerAccessPolicyRule -DesktopGroupName "$deliveryGroupNames")
$dgUserCheck = ($deliveryGroupUsers).AllowedUsers
$ctxAppInfo | Add-Member -NotePropertyName "DeliveryGroupNames-$d" -NotePropertyValue $deliveryGroupNames -Force
if($dgUserCheck -eq "Filtered"){
$deliveryGroupUsers = ($deliveryGroupUsers).IncludedUsers.Name -join ';'
$ctxAppInfo | Add-Member -NotePropertyName "DeliveryGroupUsers-$d" -NotePropertyValue $deliveryGroupUsers -Force
}
if($dgUserCheck -eq "AnyAuthenticated"){
$ctxAppInfo | Add-Member -NotePropertyName "DeliveryGroupUsers-$d" -NotePropertyValue "AnyAuthenticated" -Force
}
$deliveryGroupMachines = Get-BrokerMachine -MaxRecordCount 100000 | Where-Object DesktopGroupName -eq "$deliveryGroupNames"
$deliveryGroupMachineNames = ($deliveryGroupMachines | Select-Object MachineName).MachineName -join ';'
$ctxAppInfo | Add-Member -NotePropertyName "DeliveryGroupMachines-$d" -NotePropertyValue $deliveryGroupMachineNames -Force
$d++
}
}
$ctxAppInfo | Export-Csv C:\scripts\logs\$date-$app-App-Info.csv -Append -NoTypeInformation