Устанавливаем GUI на Windows Server Core

    В прошлом нашем посте мы рассказали как готовим стандартные клиентские виртуальные машины и показали на примере нашего нового тарифа с Ultralight windows vds за 99 рублей, как мы создавали стандартный образ Windows Server 2019 Core.

    В службу поддержки стали поступать заявки как работать с Server 2019 Core без привычной графической оболочки. Мы решили показать работу с Windows Server 2019 Core и как установить на него GUI.



    Не повторяйте это на рабочих машинах, не используйте Server Core как рабочий стол, отключите RDP, обезопасьте свою информационную систему, именно безопасность — это главная фишка «Core» инсталляции.

    В одной из следующих наших статей мы рассмотрим таблицу совместимости программ с Windows Server Core. В этой статье мы затронем то, как установить оболочку.

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




    1. Сложный, но наиболее экономичный способ


    В Server Core из коробки нет привычного нам explorer.exe, чтобы облегчить нам жизнь, мы скачаем explorer++. Он заменяет все, что умеет оригинальный explorer. Рассматривался только explorer++, но подойдет почти любой файловый менеджер, в том числе Total Commander, FAR Manager и другие.

    Скачиваем файлы.

    Сначала нам нужно скачать файл на сервер. Это можно сделать через SMB (общую папку), Windows Admin Center и Invoke-WebRequest, он работает с параметром -UseBasicParsing.

    Invoke-WebRequest -UseBasicParsing -Uri 'https://website.com/file.exe' -OutFile C:\Users\Administrator\Downloads\file.exe


    Где -uri это URL файла, а -OutFile полный путь куда его скачивать, указывая расширение файла и

    C помощью Powershell:

    На сервере создаём новую папку:

    New-Item -Path 'C:\OurCoolFiles\' -ItemType Directory

    Расшариваем общую папку:

    New-SmbShare -Path 'C:\OurCoolFiles\' -FullAccess Administrator 
    -Name OurCoolShare

    На вашем ПК папка подключается как сетевой диск.


    Через Windows Admin Center создаем новую папку выбрав пункт в меню.



    Переходим в общую папку и жмем кнопку отправить, выбираем файл.


    Добавляем оболочку в планировщик.

    Если вы не хотите запускать оболочку вручную при каждом входе в систему, то нужно добавить её в планировщик задач.

    $A = New-ScheduledTaskAction -Execute "C:\OurCoolFiles\explorer++.exe"
    $T = New-ScheduledTaskTrigger -AtLogon
    $P = New-ScheduledTaskPrincipal "local\Administrator"
    $S = New-ScheduledTaskSettingsSet
    $D = New-ScheduledTask -Action $A -Principal $P -Trigger $T -Settings $S
    Register-ScheduledTask StartExplorer -InputObject $D

    Без планировщика можно запустить через CMD:

    CD C:\OurCoolFiles\Explorer++.exe

    Способ 2. Запускаем родной Explorer



    Remember, no GUI

    Server Core App Compatibility Feature on Demand (FOD), вернет в систему: MMC, Eventvwr, PerfMon, Resmon, Explorer.exe и даже Powershell ISE. Подробнее можете ознакомиться на MSDN. Существующий набор ролей и компонентов он не расширяет.

    Запустите Powershell и введите следующую команду:

    Add-WindowsCapability -Online -Name ServerCore.AppCompatibility~~~~0.0.1.0

    Затем перезагрузите сервер:

    Restart-Computer



    После этого вы сможете запускать даже Microsoft Office, но потеряете примерно 200 мегабайт ОЗУ навсегда, даже если в системе нет активных пользователей.


    Windows Server 2019 c установленным Features on Demand


    Windows Server 2019 CORE

    На этом всё. В следующей статье мы рассмотрим таблицу совместимости программ с Windows Server Core.

    Предлагаем обновлённый тариф UltraLite Windows VDS за 99 рублей с установленной Windows Server 2019 Core.
    UltraVDS
    0.00
    Хостинг виртуальных серверов (VDS, VPS)
    Share post

    Comments 24

      +3
      Invoke-WebRequest на Windows Server Core не работает из-за отсутствия Internet Explorer’a.

      А (New-Object -TypeName 'System.Net.WebClient').DownloadFile($Url, $FileName)?
        +1
        Спасибо за наводку, сработало. Так же обнаружилось, что Invoke-WebRequest с параметром -UseBasicParsing тоже может качать файлы. Красивее всего выглядит так:

        Invoke-WebRequest -UseBasicParsing -Uri 'https://website.com/file.webp' -OutFile C:\Users\Administrator\Downloads\file.webp
          0
          У Invoke-WebRequest есть проблема в том, что большие файлы им качать очень медленно: он сначала их помещает в память полностью, потом пишет на диск.
          • UFO just landed and posted this here
              0
              Вот и я не пойму. Я пробовал, но пока так и не понял в чем он лучшего обычного bash
                0
                Тем, что всё объекты:
                1. Не надо заниматься парсингом текста, для вытаскивания значений свойств из результата выполнения команды
                2. Можно у объектов вызывать методы, которые что-то делают
                +1
                Он прост в освоении, ничего не нужно запоминать, все команды человекопонятные и очень единообразные.
                Get-Item, Remove-Item, New-Item, и так во всём.
                Интуитивно понятно что делает Invoke-WebRequest, но что делает curl не ясно, пока не загуглить.
                Плюс там есть классы из .net, что вероятно тоже может пригодиться.
                К примеру, пароль можно конвертировать в SecureString и положить в файл, чтобы все скрипты которые будут вызывать команды на удаленных хостах не запрашивали креды, а парсили пароль как SecureString из файла.
                В этом типе переменной используется локальная соль, украсть такой пароль вместе с файлом невозможно.
                  0
                  А запоминать не надо) Есть автодополнение для всего в оболочке
                    0
                    Что-бы что-то дополнить нужно как минимум примерно знать что ты хочешь написать)
                      0
                      а оно примерно интуитивно) Система «Глагол-Существительное» помогает
                    • UFO just landed and posted this here
                  +1
                  Start-BitsTransfer -Source https://website.com/file.webp -Destination C:\Users\Administrator\Downloads\file.webp
                  0
                    0
                    Я так понимаю память, занимаемая ServerCore.AppCompatibility, таки меньше, чем «обычный» GUI?
                      0
                      Да, меньше, ~800мб на Core, против ~1300мб сервера с GUI, но тут есть нюансы, о которых мы тоже хотим поговорить в следующей статье.
                      0
                      а вот интересно… берем бесплатный хиперви сервер. он также без гуя. ставим на него bb4win например. вот у нас менюшечки, панель задач… ставим прочий софт… и используем как рабочую станцию? :)
                        0
                        Так вроде гиперв и Server Core это сильно не одно и тоже?
                          +1

                          Server Core теперь лицензируется, а Nano вроде стал фичей Datacenter редакции

                        0
                        Резко присоединяюсь к Chugumoto в вопросе об бесплатности и легальности для использования физлицами. Уж очень любопытные варианты использования вырисовываются!
                          0

                          Лицензионное соглашение на Hyper-V Server почитайте и набор доступных к установке ролей и фич посмотрите и 0все на свои места встанет.

                            0

                            https://www.microsoft.com/en-us/Useterms/OEM/HyperVServer2019/All/Useterms_OEM_HyperVServer2019_All_Russian.htm


                            Экземпляр серверного программного обеспечения, запущенный в физической операционной среде, может использоваться для:
                            · предоставления услуг по виртуализации устройств, и/или
                            · запуска программного обеспечения управления операционными средами и их обслуживания на лицензированном сервере.

                            0
                            очень полезная статья, а как произвести очистку системы Windows Server 2019 Core?
                              0
                              Используйте встроенный в систему Dism. Он удалит файлы предыдущих обновлений. Других безопасных способов очистки нет.

                              Dism.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase
                                0
                                спасибо, помогает, а то место исчезает, которого и так мало.

                            Only users with full accounts can post comments. Log in, please.