Вопросы и ответы по лицензированию Microsoft Windows Server




Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу.
PHP-Скрипт автоматической загрузки данных из файла данных в формате CSV в базу данных сайта работающего на WordPress.

В продолжение моей темы: 1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом.
С помощью данного скрипта можно загружать в автоматическом режиме, по расписанию, данные сервисных книжек (ремонтов авто) из 1С:Альфа-Авто Автосалон Автосервис.
Также можно загружать данные в ручном режиме: для этого делается скрытая страница, где размещается специальная кнопка.
Комментарии размещенные внутри скрипта разъяснят логику и порядок действия.
Комментарии с "/////    echo" использовались для отладки.
Дополнительно создана таблица для журналирования результатов загрузки данных.
Скрипт включает в себя защиту от SQL инъекций (думаю безопасность соблюдена в полной мере).
В кратце:
1. Пишется скрипт, который запускает этот.
2. Создается регламентное задание в WordPress, по которому запускается скрипт из п.1. 
3. Этот скрипт осуществляет проверку на существование файла обмена в папке.
4. Если данные не новые, загрузка не производится.
5. Если данные новые, очищается таблица сервисных книжек.
6. Загружаются новые данные.

Собственно сам скрипт:

<?php // Полная загрузка сервисных книжек, создан 2024-01-05 12:44:55

global $wpdb2;
global $failure;
global $file_hist;

/////  echo '<H2><b>Старт загрузки</b></H2><br>';

$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
/////   echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}

$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
/////   echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}

/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
/////   echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
/////    echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist);   ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7];    ////получаем размер файла
$m_mtime_file=$masiv_data_file[9];   ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file

/////   echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
/////   echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
/////   echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);

if ($results)
{   foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));

////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
/////   echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
/////   echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}

////загружаем данные
$table='vin_history';         // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация     // (путь от корня web-сервера)
$delim=';';          // Разделитель полей в CSV файле
$enclosed='"';      // Кавычки для содержимого полей
$escaped='\

42 Comments

  1. capitan
    У датацентра должен быть контракт с Microsoft, по которому он предоставляет услуги, а из полученной выручки рассчитывается за лицензии

    это не касается лицензий терминального доступа

    По крайней мере я не встречал таких предложений от датацентров

    И к тому же например у самого Microsoft есть возможность купить лицензию самостоятельно.

    Об этом спрашивается при создании виртуальной машины

    Ну и про Software Assurance наверное надо рассказать подробнее

    Reply
  2. accounting_cons

    (1) Возможно, вам предлагают оплатить стоимость лицензии терминального доступа. но это не значит, что вы купили лицензию, которую потом можете забрать и использовать для доступа в другом датацентре.

    Reply
  3. capitan

    (2)А я вот как раз вас как специалиста и спрашиваю как поступать в случае описываемом вами — по которому лицензия принадлежит датацентру.

    Я то всегда со всеми своими приходил лицензиями.

    Reply
  4. accounting_cons

    (3)Для компаний, предоставляющих железо и софт в аренду пользователям, есть программа лицензирования Microsoft SPLA (https://www.microsoft.com/ru-ru/licensing/licensing-programs/spla-program?activetab=spla-program%3aprimaryr2).

    Это как должно быть: датацентр через дистрибьтюра заключает с Microsoft соглашение SPLA, по которому получает лицензии и отчитывается об их использовании. Клиентам он выставляет счета за услуги, дистрибьютору платит по факту использования лицензий. Похоже на 1С:ГРМ 🙂

    Как себя ведут датацентры — это уже отдельная история.

    Reply
  5. capitan

    (4)даже датацентр Microsoft ?

    Reply
  6. capitan

    Ну и про

    OLP – самый демократичный вариант покупки

    ооочень спорный вопрос

    Он демократичный для живущих одним днем

    Сегодня вы прикупили 2019 сервер, а завтра вышел 2020 и что будете делать с OLP ?

    Reply
  7. capitan
    У меня 2 организации, как мне распределить покупку лицензий между ними?

    на самом деле если организации аффилированные то возможны варианты

    Reply
  8. accounting_cons

    (7)

    на самом деле если организации аффилированные то возможны варианты

    — аффилированность организаций позволяет передавать лицензии от одной организации к другой, но это другая тема. Тогда надо будет передать и права собственности на компьютеры.

    Reply
  9. accounting_cons

    (6) А какие есть альтернативы? Можно купить OPL c Software Assurance, продлевать эту подписку каждые 2 года, и будет доступ к новым версиям. Вообще, это дорого. Обычно пользователи не спешат переходить на новые версии ПО, всех интересует доступ к старым версиям 🙂

    Reply
  10. accounting_cons

    (5) А он чем отличается? Не знаю, как у них устроено все внутри корпорации, но замечу, что международные корпорации обожают собирать дать со своих дочерних компаний именно в виде лицензионных отчислений.

    Reply
  11. blackhole321

    Неплохо бы добавить информацию о бесплатной редакции Windows Hyper-V Server, а также Windows Nano Server.

    Reply
  12. capitan

    (10)Вообще то Ажур это топовый проект микрософтов или считаете у них лучшие умы в дот нете ?

    Reply
  13. accounting_cons

    (12) И причем здесь Ажур? Они у вас просят принести свой RDS CAL для доступа к серверу?

    Reply
  14. accounting_cons

    (11) Эта статья про лицензирование, то есть как правильно купить лицензии. Эти редакции в обычном канале продаж Microsoft не присутствуют, так что сказать мне нечего.

    Reply
  15. accounting_cons

    Видимо. стоит еще раз акцентировать внимание не том, что покупать лицензии на использование Windows Server нужно тогда, когда у вас есть физический сервер для этих лицензий. Если же вы используете чужое оборудование, правила меняются. В частности, для доступа к Azure в прайс-листе OLP есть своя позиция:

    5S2-00003 AzureSubsSrvcesOpn ShrdSvr SNGL SubsVL OLP NL Annual Qlfd

    Это годовая подписка. Есть возможность помесячной оплаты использования Azure, но это уже в прайс-листе CSP (софт по подписке).

    И это тема отдельной статьи.

    Reply
  16. capitan

    Вспоминается…

    -Вы всегда отвечаете вопросом на вопрос?

    -Кто вам это сказал?

    Я вам задал вопросы как специалисту и автору статьи. Без всяких подколов. Вы их задали мне обратно. Отвечаю.

    1.

    Microsoft Software Assurance — программа поддержки Microsoft, которая призвана помочь заказчикам корпоративных лицензий максимально эффективно использовать приобретенное программное обеспечение.

    https://www.1csoft.ru/publications/8146/14990317/

    Т.е. если ваша компания не собирается через два года накрыться медным тазом, то самым демократичным OLP не факт что будет, это надо просчитывать индивидуально

    2. Терминальный сервер в облаке опять же есть информация что можно придти со своими лицензиями в т.ч. терминальными

    http://www.softmart.ru/ru/content/p856.htm

    3. По поводу аффилированности формально да. Но никто не мешает например внутри УК передать в аренду сервера одному юр.лицу, которое приобретет лицензии. Потому что в нем например числятся все сотрудники

    Reply
  17. accounting_cons

    (16)

    2. Терминальный сервер в облаке опять же есть информация что можно придти со своими лицензиями в т.ч. терминальными.

    Я и не спорю, что можно. Были времена, когда больные со своими лекарствами в больницу ходили 🙂

    Не значит, что так правильно.

    Reply
  18. accounting_cons

    (17)

    (16)

    Т.е. если ваша компания не собирается через два года накрыться медным тазом, то самым демократичным OLP не факт что будет, это надо просчитывать индивидуально

    Посчитайте, посмотрим, что у вас получится.

    Reply
  19. capitan
    Все, что вы хотели знать о лицензировании Microsoft Windows Server

    В заголовке статьи вижу я

    Правильный ответ — хотели знать и хотите дальше ? )

    Reply
  20. chea06

    Жаль не рассмотрены тонкости лицензирования виртуальных машин (https://habr.com/ru/post/321708/)

    Reply
  21. DonAlPatino

    >У меня 2 организации, как мне распределить покупку лицензий между ними?

    > Лицензии на ПО приобретаются организацией – владельцем «железа». Все лицензии – и серверные, и клиентские, должна закупить только эта организация.

    Даже если организации не аффелированы? И мы вот так просто разрешаем использовать купленные на одну организацию лицензии сотрудникам другой организацией? Насколько я помню такая схема раньше была прямо запрещена в лицензионном соглашении. Что-то изменилось?

    Reply
  22. accounting_cons

    (21)Клиентские лицензии CAL всегда разрешали доступ к серверу любого пользователя или компьютера — своего или чужого. Главное, чтобы сам лицензия была записана на владельца этого сервера.

    Reply
  23. DonAlPatino

    (22) Ссылочку на «всегда» можно? А то выходит пара крупных дистрибьютера дурили мне голову…

    Reply
  24. a.doroshkevich

    (14)И всё таки, можете уточнить по Windows Hyper-V Server?

    Понятно, что сервер поддерживает только 1 роль, но, если я установлю туда стороннее ПО (например сервер 1С) это будет нарушением лицензии использования Windows Hyper-V Server?

    Reply
  25. accounting_cons

    (24) Я не знаю. Никогда не сталкивалась.

    Reply
  26. accounting_cons

    (23) По этой ссылке публикуются документы по корпоративному лицензированию:

    https://www.microsoft.com/en-us/licensing/product-licensing/products

    Выбираете русский язык, скачиваете, читаете.

    Reply
  27. accounting_cons

    Все вопросы по лицензированию продуктов Microsoft лучше всего задавать в Инфоцентр Майкрософт, на официальном сайте публикуются контактные телефоны, которые туда и ведут.

    Там отвечают бесплатно и наиболее близко к оригиналу, но ссылаться на их ответы как на первоисточник не получится. Чтобы наверняка получить ответ, надо обращаться непосредственно в Microsoft.

    Reply
  28. accounting_cons
  29. user811342

    Здравствуйте, я вот что хочу узнать по вопросу

    Если у меня 2 сервера, должен ли я покупать в 2 раза больше клиентских лицензий?

    Передо мной сейчас открыты одни из скучнейших документов микрософта MicrosoftProductTerms и ServicesProviderUseRights и я в нём пытаюсь найти подтверждение вашего ответа. Таких фраз прямых в этих документах нет, разве что на стр. 11:

    Для получения доступа с другого Лицензированного сервера Клиентские лицензии не требуются.

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

    Reply
  30. accounting_cons

    Там это в явном виде не сказано, как не сказано и обратное.

    Сайт Microsoft

    https://www.microsoft.com/ru-ru/licensing/product-licensing/client-access-license

    см. картинки, на которых явно видно, что пользователь может иметь доступ к двум серверам с одним CAL’ом.

    Reply
  31. TorLink

    Апну если можно.) Вдруг кто знает ответ. Запарился искать на просторах.((

    По поводу этого пункта «Редакция Windows Server 2019 Essentials не может использоваться для терминального доступа.»

    А это точно? Потому что РДП там работает. Может речь про работу в качестве терминального сервера? А стандартные 2 сеанса РДП можно использовать?

    И вот тут возникает вопрос, а какие ограничения? Везде пишут, что только для администрирования, т.е. пользоваться там браузером, офисом, 1С низя. А админить можно.

    Т.е. один и тот же юзер, один и тот же сеанс, хочешь работать в 1С, заходи через тимвьюер, хочешь админить, заходи по RDP. Так получается?

    Или что скрывается под магическим «You can only connect to it via Remote Desktop for administrative purposes.»

    Reply
  32. PLAstic

    Пункт 5 ставит крест на многолетних контрактах, а ведь там много плюсов. Взять хотя бы переход на новые версии, что невозможно в OLP.

    *очень давно ходил на MSS/MLS, сейчас мало помню выгоды трёхлетних контрактов, но она была существенна.

    Reply
  33. accounting_cons

    (32)

    зять хотя бы переход на новые версии, что невозможно в OLP.

    — возможно, если купите Software Assurance.

    Reply
  34. PLAstic

    (33) В этом случае аргумент «стоимость выше на 80%» исчезает и остаётся только рассрочка на три года, что является как раз плюсом.

    Reply
  35. accounting_cons

    (34) Да, каждому свое. Одним — экономия, другим — удобство. Только OLP позволяют выбор — с SA или без. А остальные OV этого выбора не дают. В этом разница.

    Reply
  36. user1300741

    (9) Ну вот у нас есть терминальные лицензии WinRmtDsktpSrvcsCAL 2016 SNGL OLP NL DvcCAL. Активные, — срок закончится ещё через год, — в 2020году.. Нам понадобилось ещё одну купить. Оба-на! Оказывается, 1 июля 2019 года Майкрософт программу OLP закрыл, и теперь реселлеры утверждают, что следующих лицензий нам нужно купить не менее пяти! Спрашиваю: «Как так? Мы ведь уже покупали, — значит у нас не первая покупка, и нам нужно только докупить одну.» «Нет, — отвечают реселлеры, — ваш номер лицензии относится к программе OLP, а тут новая программа OLV, поэтому это у вас будет первая покупка.» Я: «Майкрософт будет каждый месяц программы закрывать/открывать/переименовывать, а мы каждый раз будем должны не менее пяти штук покупать?» В ответ — молчание.

    Reply
  37. user1300741

    Цитирую:

    С 1 Июля 2019 года компания Microsoft произведет важное изменение в программах лицензирования OLP и Open Value (OV):

    Привычные лицензии OLP без подписки Software Assurance (SA) будут перемещены в программу лицензирования OV, а программа OLP будет закрыта. Цены лицензий и способ оплаты (одним платежом) не изменятся. Слегка изменятся названия лицензий и парт-номера (SKU). Ранее купленные бессрочные лицензии OLP никак не изменятся.

    Мы покупали в 2018 году терминальные лицензии 6VC-03222 как бессрочные. Теперь же в личном профили уже вижу, что они вдруг стали двухгодичными, и срок у них в 2020 закончится. Директор в шоке от такого «бизнеса по-американски».

    Reply
  38. accounting_cons

    (37)Не переживайте, лицензии так и остались бессрочными. 2 года — это срок соглашения OLP. В течение срока действия этого соглашения можно было размещать заказы дозакупки к тому же номеру соглашения без ограничения на количество. Теперь этого делать нельзя. В остальном все осталось так, как было.

    Reply
  39. user1300741

    Мне вот ещё одно не понятно. Программа OLP ещё летом была закрыта, а тут собеседники всё ещё её преимущества и недостатки рассматривают.

    Reply
  40. accounting_cons

    (39)Она не то чтобы закрыта, она мигрировала внутрь Open Value. И только для рынка РФ. Для остальных стран она по-прежнему существует.

    Reply
  41. GrafB

    Подскажите, а что за лицензия DSP OEI 5 Clt Device CAL? как её установить?

    Reply
  42. accounting_cons

    (41)У нее есть, наварное, полное наименование? Например, такое: Microsoft Windows Server CAL 2019 Russian 1pk DSP OEI 5 Clt Device CAL.

    Если это так, то это лицензия клиентского доступа на 5 устройств (OEM). Она не устанавливается, не активируется. Она просто должна быть для легального доступа к ресурсам сервера.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *