I am working on a PowerCLI script that will filter all sessions within a specific Horizon pool, send a warning message to those filtered sessions via the Session_SendMessage API call, then wait a certain amount of time before logging them off. The filtering and logging off portion does not seem to be the issue, but rather the Session_SendMessage portion. Here is what I have so far:
Connect-HVServer <server>
$Services1 = $Global:DefaultHVServers.ExtensionData
$Sessions = (Get-HVLocalSession).NamesData
ForEach ($Session in $Sessions) {
IF ($Session.DesktopName -eq "TEST") {
Write-Host `n "Connection to TEST found" $Session.Username }
$Services1.Session.Session_SendMessage($session.id, "INFO", "Your session will be logged out in 10 minutes for maintenance. Please save your work!")
}
In order to confirm that $Sessions variable was working correctly I threw in the the Write-Host portion. In the TEST pool I have specified, I do get a return (there is only one session logged into that pool at the moment). The problem is what follows after the API call:
Not entirely sure what I'm doing wrong...
Look at
http://stephenjesse.com/2020/09/16/script-for-automating-desktop-logoffs-in-horizon/
its what I use. I email and send a local message and that seems to be working.. It looks similar I'd compare and also make sure your powercli version is updated.
$global:DefaultHVServers[0].ExtensionData.Session.Session_SendMessage($session.id,$emailSubject,$emailBody)
Thanks for the quick response.
Still no luck. I can confirm that I am on v. 5.1.17763.1007 of PS. Seems that v7 is not plausible (at least from the last time I tried it with PowerCLI due to .NET incompatibilities):
Now I'm seeing this:
Do you recall what version of PS you used at the time of writing this article?