New submission from John McCrone <john.v.mccr...@gmail.com>:

The method platform.win32_ver() produces the client version for the release 
rather than the server version on a Windows domain controller.

This is easy to recreate on 3.8.5. For example, on a Windows 2012 server 
running as a domain controller, the method produces the following:

>>> import platform
>>> platform.win32_ver()
('8', '6.2.9200', 'SP0', 'Multiprocessor Free')

The product type is 2:
>>> import sys
>>> sys.getwindowsversion().product_type
2

The correct value should not be '8' but rather '2012Server'. From looking at 
the source (platform.py), it appears that we determine if we are on a windows 
server by this check:

if getattr(winver, 'product_type', None) == 3

However, both types 2 (Domain Controller) and 3 (Non-Domain Controller Server) 
are server types (see the documentation for sys.getwindowsversion() 
https://docs.python.org/3/library/sys.html). Therefore, it seems likely to me 
that it should check if the value of product_type is either 2 or 3 instead of 
just 3.

----------
components: Windows
messages: 375285
nosy: jvm3487, paul.moore, steve.dower, tim.golden, zach.ware
priority: normal
severity: normal
status: open
title: platform win32_ver produces incorrect value for release on Windows 
domain controllers
type: behavior
versions: Python 3.8

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue41535>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to