PowerShell: Выбрать не используемые Citrix Xen Desktop VDI

Просмотров: 7636Комментарии: 0
ВкусняшкиWindowsFAQ SolutionВиртуализация

Ёхохо. grin

И как всегда со здоровой на больную голову.

Как никак, а я ИТ инженер grin. Поступила задача от руководства выбрать VDI машины (Citrix Xen Desktop VDI), которые пользователи давно не используют с целью высвобождения и оптимизации ресурсов.

Как можно поступить? 1-й Вариант это запустить Citrix Studio и отобрать машины по Last Connection Time, но с таким списком работать не особо удобно, как с табличкой Excell LOL.

Думаю, что не нужно быть сертифицированным специалистом чтобы с этой задачей справиться.

Этот первый вариант мне не подошел (потому, что не Excell). И мною был быстренько написан PowerShell скрипт, который делает кривенький csv файл с нужными мне данными.

Goole мне помог только с командлетами для XenDesktop.

Для осуществления выборки нужен Get-BrokerDesktop, а в качестве параметров ему нужно передать:

  • -MaxRecordCount количество записей, не больше которых нужно вернуть (по умолчанию 250)
  • -AdminAddress Адрес XenDesktop Сервера
  • Asnp Citrix*
    $header = "LastConnectionTime;MachineName;AssociatedUserUPNs"
    Out-File -FilePath E:\tmp\notusedvdi.csv -InputObject $header -Encoding UTF8
    $members = Get-BrokerDesktop -MaxRecordCount 1000 -AdminAddress srv-xd1 | select LastConnectionTime, MachineName, AssociatedUserUPNs | sort AssociatedUserUPNs
    foreach ($member in $members)
    {
    if($member.LastConnectionTime -lt (Get-Date).AddDays(-90)) 
    {
    if(!$member.LastConnectionTime) {$member.LastConnectionTime = (Get-Date).Date.AddDays(-29200)} 
    if($member.AssociatedUserUPNs){
    $string = $member.LastConnectionTime.ToShortDateString() + ";" + $member.MachineName + "; " + $member.AssociatedUserUPNs
    Out-File -FilePath E:\tmp\notusedvdi.csv -InputObject $string -Encoding UTF8 -Append
    }
    }
    }

    Обратите внимание на строчку

    if(!$member.LastConnectionTime) {$member.LastConnectionTime = (Get-Date).Date.AddDays(-29200)}

    Если к VDI не подключались вообще то LastConnectionTime будет пустой, а мы делаем хит ушами и выставляем очень далекую дату, а именно смещаем ее в прошлый век. Т.е. из сегодня мы вычитаем 29200 дней, т.е. вычитаем около 81 года.

    Вот таким образом я и решаю задачи на PowerShell grin.

    Оставьте комментарий!

    grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

    Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

    Вы можете войти под своим логином или зарегистрироваться на сайте.

    (обязательно)