Eu primeiro formatar o script para um estado legível (recuo, quebras de linha)
e despir para apenas adquirir dados.
Sem o seu ambiente, tendo seus ajustes de propriedades como concedidos
## Q:\Test18\SF_940425.ps1
$ComputerList = "RDS1","RDS2","RDS3"
$data = ForEach ($ComputerName in $ComputerList){
$colEvents = Get-WinEvent -ComputerName $ComputerName '
-LogName "Microsoft-Windows-TerminalServices-LocalSessionManager/Operational" |
Where {$_.ID -eq "21"} | Select -Property TimeCreated, Message
Foreach ($Event in $colEvents){
New-Object PSObject -Property @{
ComputerName = $ComputerName
EventTimeCreated = $Event.TimeCreated
EventMessage = ($Event.Message -split "'n")[2]
User = $EventMessage.Substring(6)
}
}
}
$data
$data | Export-Csv '.\ServerUserList.csv' -NoTypeInformation
E fazendo uma análise dos dados posteriormente com as ferramentas:
- Sort-Object (-Unique )
- Group-Object
- Measure-Object
Mas eu tentaria obter uma versão mais atualizada do PowerShell primeiro do que o PSv2 incluído