If ((Get-PSSnapin -Name "Citrix*" -ErrorAction SilentlyContinue | Measure-Object).count -eq 0) {Asnp "Citrix*"} $Farm=Get-XaFarm $Pathor = Split-Path -Parent $MyInvocation.MyCommand.Path For(;;) { write-host "Start" -f yellow $DateFile=(get-date).toString('yyyy-MM') $Path = $Pathor +"\" + $Farm + "_" + $DateFile + "_UsrApp.txt" If(!(Test-Path -Path $path)) {new-item -Path $path –itemtype file;$UserEx = "User;Application;ClientName;Serveur;protocol;logontime;Session;ClientVersion"|Out-File $path -Append} $Date=Get-Date $Date3=$Date.AddMinutes(-1) $Date3=$Date3.ToString("MM/dd/yyyy HH:mm:ss") $Sessions = Get-Xasession -Full|?{$_.LogOnTime -gt $Date3} Write-host "End Get-Xasession" $SessionsCount = (($Sessions|measure-object).count) $UserEx="" If ($SessionsCount -ne "0") { $count=0 Foreach ($Session in $Sessions) { $count++ If ($Count -ne $SessionsCount) {$UserEx += ($Session.AccountName)+";"+($Session.BrowserName)+";"+($Session.ClientName)+";"+($Session.ServerName)+";"+($Session.Protocol)+";"+($Session.LogOnTime)+";"+($Session.ClientVersion)+"`r`n"} else {$UserEx += ($Session.AccountName)+";"+($Session.BrowserName)+";"+($Session.ClientName)+";"+($Session.ServerName)+";"+($Session.Protocol)+";"+($Session.LogOnTime)+";"+($Session.ClientVersion)} } $UserEx $UserEx | Out-File $path -Append } write-host "End" -f yellow write-host "Wait 60 seconds" sleep 60 }