Поскольку в апреле следующего года Microsoft прекращает поддержку Windows XP, меня попросили проверить, на каких компьютерах все еще установлена версия Windows, более ранняя, чем Windows 7. Можно ли с помощью какого-либо запроса Samba узнать версию клиентской ОС?
Вы спрашиваете нас, как приготовить свиные отбивные, если у вас есть только фунт говяжьего фарша. Нет веских причин использовать для этого Samba, IMO.
Если они находятся в домене AD, клиенты сохранили свою версию ОС в атрибуте OperatingSystem своих компьютерных объектов. Используя модуль ActiveDirectory Powershell:
Get-ADComputer -Filter * -Properties OperatingSystem | Select Name, OperatingSystem
Если они не входят в домен AD, проверьте каждый компьютер индивидуально примерно так:
$Creds = Get-Credential
Foreach($_ In Get-Content .\servers.txt)
{
Get-WMIObject Win32_OperatingSystem -ComputerName $_ -Credential $Creds | Select PSComputerName, Caption
}
Или, если вы работаете на предприятии, на котором установлено больше высокопроизводительных инструментов управления, что-то вроде System Center Configuration Manager мгновенно сообщит вам эту информацию.
Как и практически любая другая система мониторинга или управления конфигурацией.
Что-нибудь кроме того, что вы пытаетесь использовать.
Если вам по какой-то причине нужно сделать это из Linux, я бы предложил использовать wmic, который, как я слышал, имеет RPM-пакет:
rpm -ivh wmic-4.0.0tp4-0.x86_64.rpm
wmic -U [domain/]adminuser%password //host "select Caption from Win32_OperatingSystem"
Вот:
Обнаружение ОС nmap (переключатель -o) также, вероятно, подойдет для этого.
Хотя, как говорили другие, лучший способ сделать это зависит от конфигурации вашей системы.