• 締切済み

WSHでのWindows98のUserDomainの取得

WSHについての質問です。 Windows Script V5.6ドキュメントで、"(WshNetworkオブジェクトの)UserDomain プロパティが Windows 98 および Windows ME 上で動作するには、USERDOMAIN 環境変数が設定されている必要があります。この変数は既定では設定されていません。"と記述されています。実際に試してみるとXPでは取得出来ますがWin98では出来ませんでした。Win98でUserDomainを取得するにはどうすればよいか、どなたかご教授願います。

みんなの回答

  • nta
  • ベストアンサー率78% (1525/1942)
回答No.5

Windows9x系のPCではドメインを移動した場合「ネットワーク」「プロパティ」「Microsoftネットワーククライアント」「WindowsNTのドメインにログオンする」の「ドメイン名」を書き換えなければなりません。NTや2000であればドメイン間に信頼関係があればログイン画面のプルダウンでドメインを切り替えて認証が可能になります。  nbtstat -n で確認したときにWORK_GROUPがワークグループになっていますから、ドメイン名の書き換えがなされていないということではないでしょうか。ドメイン名を入力するくらいであれば環境変数に同じドメイン名を書き込むスクリプトを作成してもいいのではないかと思います。

newleaf
質問者

お礼

いろいろとご意見ありがとうございました。とりあえずドメイン毎に使用するユーザーアカウントを変えて、ユーザー名を取得する事でプリンターの切り替えを実現する事にしました。(ちょっとしょぼいけど)

  • nta
  • ベストアンサー率78% (1525/1942)
回答No.4

Windows9x,MeではMyDomain環境変数が設定されないという意味で、そういう仕様になっているようです。 参加しているドメイン名が分かっているのでしたら、起動時に環境変数を設定しておくというのはいかがですか。

newleaf
質問者

補足

自分がやりたいと思っている事を具体的に述べたいと思います。仕事柄ノートPCを抱えて複数の事業所に出向いて仕事をしておりますが、それぞれの事業所はドメインが別になっています。それで、ログオンするドメインを取得して「通常使うプリンター」の設定を、PCの起動時にその事業所のプリンターに設定したいのです。とりあえず勉強の意味も兼ねてWSHの機能で実現したいと思っています。

  • nta
  • ベストアンサー率78% (1525/1942)
回答No.3

nbtstat の結果からみると、このコンピュータはドメインには参加するように設定されていないということですが、 「ネットワーク」「プロパティ」「Microsoftネットワーククライアント」「WindowsNTのドメインにログオンする」が設定されているのでしょうか。  設定されているのにドメイン名がレジストリにないというのは原因が分かりません。レジストリをそのドメイン名で検索すると見つかるでしょうか。

参考URL:
http://www.tsunagi.org/a/tech/techfile/client.html
newleaf
質問者

補足

Microsoftネットワーククライアントの設定は、ドメインにログオンする、となっています。また、レジストリエディターでドメイン名を検索してみてもDomainというキーは見つかりませんでした。 Windows Script V5.6ドキュメントにある「既定では設定されていない」という表現が気になるのですが。モジュールかなにかをダウンロードしてインストールする必要があるのでしょうか?

  • nta
  • ベストアンサー率78% (1525/1942)
回答No.2

そのコンピュータはNTドメインもしくはActive Directory Domainに参加しているのでしょうか。 ドメインに参加していない場合にはDomainのキーはないかもしれません。 ファイル名を指定して実行で nbtstat -n でドメイン名が取得できるでしょうか。

newleaf
質問者

補足

Windows NT 4.0がドメインコントローラーとなっているドメインにログオンしています。 nbtstat -nを実行したところ次のような結果が表示されました。 Node IpAddress: [IPアドレス] Scope Id: [] NetBIOS Local Name Table Name Type Status --------------------------------------------- PC_NAME <00> UNIQUE Registered WORK_GROUP <00> GROUP Registered PC_NAME <03> UNIQUE Registered PC_NAME <20> UNIQUE Registered WORK_GROUP <1E> GROUP Registered USER_NAME <03> UNIQUE Registered GROUPにはワークグループ名が表示されています。

  • nta
  • ベストアンサー率78% (1525/1942)
回答No.1

 ドメイン名はレジストリに書かれているので、これを読み出して環境変数に書き込んではいかがでしょうか。 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP\Domain Windows9x系ではドメインに参加するような設定でも実際はWorkGroupの動作と同じです。

newleaf
質問者

補足

回答ありがとうございます。早速レジストリをチェックしてみましたが、ntaさんが書かれたレジストリキーは見当たりませんでした。試しにレジストリエディターで domain を検索してみたところそれらしいものはひっかかりませんでした。Windows98では無理なのでしょうか?

関連するQ&A

  • LuaとWSHについて

    初心者です。 LuaとWSHを使ってスクリプトを作成しています。 Luaの記述でos.executeを使いWSH(.vbs)を実行するのですが、 WSHで得た変数をLua側に渡すことはできますでしょうか? 具体的には(一部抜粋)、 ---Lua側--- os.execute(インプット.vbs) inputxxx = input ---WSH側(インプット.vbs)--- Input = InputBox("数値を入力してください") という記述で、 Luaを実行し、WSH側のインプットボックスで入力した値(input)を Lua側の変数inpuxxxに入れたいです。 どなたかお助け頂けると有難いです。

  • WSHのスタンバイが出来ない

    windowsスクリプトホストを使ってスタンバイ アイコン が出来ません。操作方法を教えて下さい (1)PCはwin me 64MBです。 (2)テキストファイル  の内容  dim objshell   set objshell=wscript.createobject("shell. application")  objshell.suspend c:\suspend.vbsとして保存しました。 (3)windows script 5.6をインストールしました。 (4)エラー表示   <オブジェクトでサポートされていないプロパティ    または メソッドです。>となります。

  • WSHで.RMIファイルを再生

    こんにちは。 OSはWIN2K SP-4,WSHは5.6を使用しています。 c:x.RMIファイルをWSHを利用して再生するには どのようなスクリプト(wscript)を記述すれば よろしいでしょうか? よろしくお願いいたします。

  • Windowsの自動操作マクロ?

    環境変数をGUI画面で設定するのが面倒になってきたので、自動化させたいのですが、WSHなどで、環境変数をセットすることは可能でしょうか? Windows自体を自動で動作できれば便利だと思いますが、一般的にJscriptを用いるべきか、VBScriptを用いるべきかWSHすべきか悩んでいます。 WindowsのGUI設定をスクリプトで自動化することが書いている書籍等はありますか?IEのホームページURLを変更したり、リムーバブルディスクのドライブレターを変更するなどです。

  • WSH or VBの質問

    環境:Windows xp    WSH 5.6 or VB6 アプリケーションが立ち上がっている状態でWSH or VBを使用して、 その起動されているアプリケーションのオブジェクト (項目の名前やオブジェクトの種類:テキストBOX、コンボBOX等など) の情報(プロパティ)を取得する方法を教えて下さい。

  • WSHで「ファイルUID」を取得するには?

    エクスプローラの「列の設定」ダイアログに、ファイルUID という項目があります。ファイルを同一ドライブ内で移動してもこの値は変化しません。属性を変更しても変化せず、重複もないみたいなのでファイルのUnique ID なのだろうと思います。これをWSHから取得するにはどうすればいいのでしょうか? 目下、ファイル名を一旦テキストファイルに取り込んで編集してから戻すというやり方で、複数ファイル名を一括してリネームするスクリプトを書いています。ファイル名に依らずにファイルを識別するために、現在はプロパティの概要項目に、識別文字列を入力しています。この方法はNTFSでしか使えず、エクスプローラの動作も重くなります。 このファイル識別に「ファイルUID」が使えたら、と思うのですが。

  • WSHで プリンタのスクリプト うまくいかない。

    はじめまして、のりといいます。WSH初心者です。 以下のようなログオンスクリプトを組んで、プリンタ設定をしようとしますが、エ ラーが出ます。 <スクリプト prt.vbs> ' Shell Define Dim WshShell Set WshShell = WScript.CreateObject("WScript.Shell") ' Network Define Dim WshNetwork Set WshNetwork = WScript.CreateObject("WScript.Network") ' Setup Printer ' Dim c1Prt1 Dim c1PNam1 ' Setting Printer Class-1 ' c1Prt1= "\\C1DC01\C1MPR2" c1PNam1 = "LP-7700 No.2" WshNetwork.SetDefaultPrinter c1Prt1 <エラーメッセージ> "\\C1DC01\C1MPR2"という名前のプリンタはありません。 ただし、このプリントは存在していて、例えば「ファイル名で実行」で \\C1DC01\C1MPR2をいれるとちゃんとプリンタが出てきます。 以上のことで何かお分かりの方がいましたら、もしくは、このようなプリンタの設定 に関するURLなどご存知でしたら教えてください。 よろしくお願いします。

  • WSHについて教えてください。

    WSHについて教えてください。 コレクションの最初の要素(オブジェクト)のプロパティを参照したいのですが、やり方がわかりません。 例えば以下のようなWMIのクエリの結果のコレクションの要素(オブジェクト)は1つだけしかありません。 ※ネットワークドライブ V: の情報を得る strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_NetworkConnection where LocalName=""V:""",,48) なのにわざわざ For Each objItem in colItems Wscript.Echo "LocalName: " & objItem.LocalName Next のような表現をするのは、いかにも大変です。 For Eachを使わずに、上記の例での colItems の最初の要素(オブジェクト)の LocalName プロパティを取り出すには どのようにコーディングすればいいのでしょうか?

  • メソッドの中のオブジェクト?

    メソッドの中のオブジェクト? オブジェクト志向を勉強しています。WSHも勉強しています。 オブジェクトはメソッドとデータで構成されていると学びました。 下記URLのWshNetworkオブジェクトではメソッドの中に更にオブジェクトがあるように見えます。 メソッドの中にオブジェクト、プロパティの中に更にオブジェクトを持つことがあるんでしょうか? http://www.atmarkit.co.jp/fwin2k/tutor/cformwsh15/cformwsh15_01.html

  • innerHTMLに追記した場合のjs動作

    WSHなどでIEオブジェクトを用いて、 documnet.innerHTML += などでHTMLを動的に生成した場合、 <script>内に記述したものが動作しません。 これはどの様にするべきでしょうか? ※別途HTMLを作成せずに動的なhtml生成での話になります。

専門家に質問してみよう