WindowsServer2003の判別方法 – プログラミング – Home

通知
すべてクリア

[解決済] WindowsServer2003の判別方法


ラ・ぱるす
 ラ・ぱるす
(@ラ・ぱるす)
ゲスト
結合: 18年前
投稿: 2
Topic starter  

お世話になっております。

WindowsServer2003かどうかを判別したいのですが、
メジャーバージョン、マイナーバージョンが
WindowsXP x64 Edition と同じ5.2のようなのです。

判別方法を教えていただけませんでしょうか?


引用未解決
トピックタグ
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

GetVersionExを使って取得した
OSVERSIONINFO構造体のdwMajorVersion,dwMinorVersionメンバの値からもとめれるんじ
ゃないかなぁと。
http://wisdom.sakura.ne.jp/system/winapi/win32/win38.html


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

すみません、意味不明でした。

>WindowsServer2003

>WindowsXP x64 Edition
とでメジャーバージョン、マイナーバージョンが
同じだからGetVersionExじゃ判定できないってことを聞いていたんですね。orz


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

OSVERSIONINFO構造体のdwBuildNumberメンバを使えばよさげ。

http://journal.mycom.co.jp/column/winxp/077/index.html
http://uchukamen.com/Programming/WindowsVersion/index.htm
より

Windows 2003 Server は 3790
Windows Xp は 2600

らしいです。


返信引用
ISLe
 ISLe
(@ISLe)
ゲスト
結合: 18年前
投稿: 38
 

こんなページが見付かったんですけど、
http://blogs.msdn.com/heaths/archive/2006/02/01/522629.aspx

GetVersionExの引数にOSVERSIONINFOEX構造体を使って、
OSVERSIONINFOEX.wProductTypeの値で判断できるようです。
XP x64は1で、
Server 2003は2か3になるらしい。


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

なんどもすみません。

http://journal.mycom.co.jp/special/2005/xp64/
を読むと、
>今回使用したWindows XP Professional x64 Editionは、バージョン5.2.3790。
>これはWindows Server 2003 Service Pack 1と同じビルドナンバーとなる。
とあります。

ここで、「Service Pack 1と同じ」ってのをみると
もしかすると、szCSDVersionメンバを使って、Service Pack 1かチェックできるので
は?と思いました。

ただ、先の2つのリンク先からSP1があたっていなくても
ビルド番号はXP x64と一緒になるような気もします。

正確な情報を得るのであればMSの人に聞くのがベストでしょうけど。


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

>こんなページが見付かったんですけど、
おおっ!

OSVERSIONINFOEXを使うのですね。
http://msdn2.microsoft.com/en-us/library/ms724833.aspx
<MSDN>
wProductType

Any additional information about the system. This member can be one of the
following values.

Value Meaning

VER_NT_DOMAIN_CONTROLLER The system is a domain controller.
0x0000002

VER_NT_SERVER The system is a server.
0x0000003 Note that a server that is also a domain controller
is reported as VER_NT_DOMAIN_CONTROLLER, not
VER_NT_SERVER.

VER_NT_WORKSTATION The operating system is Windows Vista, Windows XP
0x0000001 Professional, Windows XP Home Edition,Windows 2000
Professional, or Windows NT Workstation 4.0.
</MSDN>

# VC6のMSDN見ててもわからぬわけだ,,,orz


返信引用
ラ・ぱるす
 ラ・ぱるす
(@ラ・ぱるす)
ゲスト
結合: 18年前
投稿: 2
Topic starter  

wProductType の VER_NT_SERVER で判別することができました。
ありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました