向域中的所有活动用户发送锁定或一般消息,跨架构

时间:2017-10-09 16:25:58

标签: powershell citrix

我正在尝试设置一个脚本,该脚本将向域中的所有用户发送消息 - 混合,有些是在Windows 10 Surface Pro上,有些是Citrix VDI。

底部的Citrix Part不是很正确,在启动会话时,我似乎需要将Citrix模块导入DDC,即使我通过PS Session(new-pssession)连接到控制器。 VDI用户桌面上的消息未显示,并且不确定原因......

      $Cred = Read-Host "enter-username e.g. domain\user.name" 
            $computers = Get-Content C:\Scripts\allcomputers.txt #| Where-Object { $_ } 

            #foreach ($computer in $computers) {


             #    Invoke-Command -computername $computer -scriptblock {msg * "INSERT MESSAGE TO STAFF HERE"} -Credential $cred

            }

           # Import-Module Citrix.XenDesktop.Admin?
           # Add-PSSnapin Citrix?


               $s = New-PSSession -cn DDC -Credential DOMAIN\Cred

               Invoke-Command -Session $s -ScriptBlock { $sessions = Get-BrokerSession -UserName DOMAIN\User ;
Send-BrokerSessionMessage $sessions -MessageStyle Information -Title TestTitle -Text TestMessage
               }

               Get-PSSession | Remove-PSSession

如果我在交互式会话中使用脚本块中的命令,则模块似乎没有安装,因此注释掉了2行......:S

1 个答案:

答案 0 :(得分:0)

感谢您的帮助 - 工作代码,它将通过PowerShell向所有Citrix XDT会话发送消息:

$s = New-PSSession -cn CitrixDDC -Credential Domain\Administrator

           Invoke-Command -Session $s -ScriptBlock { import-module 
           Citrix.XenDesktop.Admin; Add-PSSnapin Citrix.*; 

           $sessions = Get-BrokerSession -UserName Domain\* `

           Send-BrokerSessionMessage $sessions -MessageStyle Information -Title 
           TestTitle -Text TestMessage

           }

       Get-PSSession | Remove-PSSession