黒龍's Blog

明日から役立つ無駄知識をあなたに(仮)

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  170  : 記事  0  : コメント  2719  : トラックバック  26

ニュース

わんくま同盟に参加させていただきました。
どうぞよろしくお願いします。

自己紹介

コミュニティ

  • わんくま同盟
    わんくま同盟

書庫

2008年10月30日 #

DFSでオンデマンド認証(適当語)がしたいの続き

どうやら再認証しないのは仕様みたいね・・・。

Windows Server 2003 および Windows 2000 で DFS 配下のリンクにアクセスした時にエラーが表示される

んむーどうしたものやら。

posted @ 19:03 | Feedback (8)

// GetOSVersion.cpp : コンソール アプリケーションのエントリ ポイントを定義します。
//

#include "stdafx.h"
#include "Windows.h"
#include 


#define PLATFORM_ID 0
#define MAJOR_VERSION 1
#define MINOR_VERSION 2
#define BUILD_NUMBER 3
#define HELP 4
#define SYNTAX_ERROR -1

int _tmain(int argc, _TCHAR* argv[])
{
 OSVERSIONINFOA OsVersionInfo;
 OsVersionInfo.dwOSVersionInfoSize = sizeof( OsVersionInfo );
 GetVersionExA( &OsVersionInfo );
 
 
 int resultType = SYNTAX_ERROR;
 if(*++argv != NULL)
 {
  if(**argv == '/')
  {
   std::string command = (*argv+1);
   if(command.compare(_T("Platform")) == 0)
   {
    resultType = PLATFORM_ID;
   }
   else if(command.compare(_T("Major")) == 0)
   {
    resultType = MAJOR_VERSION;
   }
   else if(command.compare(_T("Minor")) == 0)
   {
    resultType = MINOR_VERSION;
   }
   else if(command.compare(_T("Build")) == 0)
   {
    resultType = BUILD_NUMBER;
   }
   else if(command.compare(_T("?")) == 0)
   {
    resultType = HELP;
   }
  }
 }
 else
 {
  resultType = PLATFORM_ID;
 }

 int resultCode = 0;

 switch(resultType)
 {
 case HELP:
  std::cout 
   << "GetOsVersion : OSのバージョンを取得します。" << std::endl 
   << "/? : このメッセージの表示。" << std::endl
   << "/Platform : プラットフォームIDを取得。" << std::endl
   << "/Major : メジャーバージョンを取得。" << std::endl
   << "/Minor : マイナーバージョンを取得。" << std::endl
   << "/Build : ビルドナンバーを取得。" << std::endl;
  return 0;
 case PLATFORM_ID:
  resultCode = OsVersionInfo.dwPlatformId;
  break;
 case MAJOR_VERSION:
  resultCode = OsVersionInfo.dwMajorVersion;
  break;
 case MINOR_VERSION:
  resultCode = OsVersionInfo.dwMinorVersion;
  break;
 case BUILD_NUMBER:
  resultCode = OsVersionInfo.dwBuildNumber;
  break;
 default:
  std::cout 
   << "オプションが不正です。" << std::endl << std::endl
   << "GetOsVersion : OSのバージョンを取得します。" << std::endl 
   << "/? : このメッセージの表示。" << std::endl
   << "/Platform : プラットフォームIDを取得。" << std::endl
   << "/Major : メジャーバージョンを取得。" << std::endl
   << "/Minor : マイナーバージョンを取得。" << std::endl
   << "/Build : ビルドナンバーを取得。" << std::endl;
  return -1;
 }
 std::cout << "Platform is " 
  << (OsVersionInfo.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS ? "Windows" : "WinNT") 
  << ", MajorVersion = " << OsVersionInfo.dwMajorVersion 
  << ", MinorVersion = " << OsVersionInfo.dwMinorVersion
  << ", BuildNumber = " << OsVersionInfo.dwBuildNumber << std::endl;
 return resultCode;
}

posted @ 16:46 | Feedback (7)

DFSでドメインにルートをいくつか作る

\\hoge.localとか

そこにフォルダを切ってターゲットをぶら下げるんだが認証要らないとこもあるのでDFSホストしてるディレクトリのACL、共有のアクセスはEveryoneの読み書きを付与。

\\hoge.local\backupこれは認証なしのターゲットにリンク

(\\smb\backup実際はこういう共有先)

\\hoge.local\sharedこれは制限したいので認証ユーザのみとしたい

(\\smb2\backup実際はこういう共有先)

やりたいこととしては\\hoge.local\sharedにつないだ時点で認証ダイアログが出るような形にしたいのですがすんなりとエラーになってくれやがります

このとき\\smb2\backupなり\\smb2なりにつなぐと認証要求のダイアログが出てきちんとアクセスできます。

やっぱりDFSって認証が必要な単位でルートわけないとだめなんでしょうか?なんかうまい設定方法ないものだろうか…。

posted @ 14:09 | Feedback (1)