From eb4ea93ac3a1bc1bb395ee0d74d72b08b3fe8190 Mon Sep 17 00:00:00 2001 From: Martin Pool Date: Wed, 12 Mar 2003 03:08:28 +0000 Subject: Import Samba Testing Framework code from private CVS module. (This used to be commit 0effe832a48f0c51d50675558cc2744e815d68c7) --- source3/stf/osver.py | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100755 source3/stf/osver.py (limited to 'source3/stf/osver.py') diff --git a/source3/stf/osver.py b/source3/stf/osver.py new file mode 100755 index 0000000000..68601fa7bb --- /dev/null +++ b/source3/stf/osver.py @@ -0,0 +1,55 @@ +#!/usr/bin/python +# +# Utilities for determining the Windows operating system version remotely. +# + +from samba import srvsvc + +# Constants + +PLATFORM_UNKNOWN = 0 +PLATFORM_WIN9X = 1 +PLATFORM_NT4 = 2 +PLATFORM_NT5 = 3 # Windows 2000 + +def platform_name(platform_type): + + platform_names = { PLATFORM_UNKNOWN: "Unknown", + PLATFORM_WIN9X: "Windows 9x", + PLATFORM_NT4: "Windows NT", + PLATFORM_NT5: "Windows 2000" } + + if platform_names.has_key(platform_type): + return platform_names[platform_type] + + return "Unknown" + +def platform_type(info101): + """Determine the operating system type from a SRV_INFO_101.""" + + if info101['major_version'] == 4 and info101['minor_version'] == 0: + return PLATFORM_NT4 + + if info101['major_version'] == 5 and info101['minor_version'] == 0: + return PLATFORM_NT5 + + return PLATFORM_UNKNOWN + +def is_domain_controller(info101): + """Return true if the server_type field from a SRV_INFO_101 + indicates a domain controller.""" + return info101['server_type'] & srvsvc.SV_TYPE_DOMAIN_CTRL + +def os_version(name): + info = srvsvc.netservergetinfo("\\\\%s" % name, 101) + return platform_type(info) + +if __name__ == "__main__": + import sys + if len(sys.argv) != 2: + print "Usage: osver.py server" + sys.exit(0) + info = srvsvc.netservergetinfo("\\\\%s" % sys.argv[1], 101) + print "platform type = %d" % platform_type(info) + if is_domain_controller(info): + print "%s is a domain controller" % sys.argv[1] -- cgit