dポイントプレゼントキャンペーン実施中!

ドメインに参加しているWindowsXP Proの「コントロールパネル」→「ユーザーアカウント」→「詳細設定」タブ→「パスワードの管理」ボタンをクリックして表示される『ユーザー名およびパスワードの保存』に登録されている内容をスクリプト(vbsまたはjs)を利用して取得したいと考えています。取得する項目は”サーバー”、”ユーザー名”があれば十分です。
なぜスクリプトで取得したいかというと、確認するPCの台数が多いため一台ずつ確認するのではなくログオンスクリプト等を利用したいと考えているからです。

スクリプトで取得する方法をご存知の方がいらっしゃいましたらご教示頂ければ幸いです。
宜しくお願い致します。

A 回答 (5件)

スクリプトはちょっと難しいかな。


VC++ができるんだったら http://eternalwindows.jp/security/credman/credma … を参考にしてみてはどうかな。

参考URL:http://eternalwindows.jp/security/credman/credma …
    • good
    • 0
この回答へのお礼

VC++は門外漢なので苦労しましたが見よう見真似で資格情報を取得できました。後はコンソールアプリケーションにカスタマイズしてスクリプトと組み合わせて実行できるようにしたいと思います。

ありがとうございました。

お礼日時:2010/06/01 21:38

>ご回答頂いた内容から推察すると、この機能についてご存知無い



機能について理解していないのはそちらですね。Windowsのユーザー管理は、そこにアクセスしないと何もできないですよね。ドメインは、ドメインを構成しているサーバー上にあり、そこにアクセスする必要があり、それ以外はすべてローカルユーザーでGUI上では、そこのプロパティから行います。改めて、そのプロパティを説明する事自体、OSについては初心者と言えるでしょう。

URLで指し示した事はNT4.0ドメインの時代から(Nt4.0,Win2000以降)から存在してます(進化していますが)。これらは特にWindowsに限ってではありません。別のリソース管理(NIS、NIS+、LDAP)でも同じです。UNIX系なんてもっと前から、その仕組みはあります。改めて、あなたにしませれていなくても、SEレベルなら誰でも知っていることです。

>『標準エラー出力(この場合コンソール)』

そんな事書いてないですよね。私はあなたの親でも兄弟でも友達でもありません。あうんの呼吸でわかりなさいなんて、SEであるなら失格ですよね。

>ローカルAdministratorでログインするかワークグループ環境で実行したら結果が得

このように列挙する事自体、ドメインとワークグループについて理解していない証拠です。Windowsではドメイン以外は全てワークグループになります。「ローカルユーザー」で実行するか(Admin or Power)、ドメインユーザーでも許可されたドメイン管理者であれば実行可能です。

ローカルの管理者で実行するのが当たり前の事なので、わざわざ断りを入れません。SEレベルなら当たり前のことなので。


>これがどのような機能なのかご存知であれば私が何を求めているかご理解頂けたのではないかと思い

あなたが欲しい情報はわかりますが、私がさししめす事を理解しなければ、あなたが実現したい事は不可能であるし、あなたのやりたい事は、このままの状態であれば、だれもわかりません。と言うより、意味不明な事を言っているので、誰も相手にしません。

それより、”\"がユーザー名に設定できない事はについては何も触れていませんね。都合の悪い事は、だんまりですか?????? いちばんたちが悪いですね。

この回答への補足

ベストアンサーを選ばないと質問を締め切れなくなっているとは驚きました。
回答を無視して受付中のままにしておいてもいいのですが、あなたのあまりの理解力の無さが哀れでしょうがないので回答があれば時間のある限り補足を入力していこうと思います。

>Windowsのユーザー管理は、そこにアクセスしないと何もできないですよね。
何をいっているのでしょうか?前回の補足で紹介した http://support.microsoft.com/kb/281660/ja の内容を理解できているのでしょうか?
このページの【概要】に『ログオンしているユーザーの資格情報以外の資格情報を必要とするリソースへのアクセスをより容易にする新しい機能』と書いてありますよね。
これはすなわち「ログオンしているユーザーの資格情報」だけでアクセスできるリソースに対しては必要の無い機能ということが理解できないのですか?理解できていれば「そこにアクセスしないと何もできない」とは言えないと思うのですが。

>URLで指し示した事はNT4.0ドメインの時代から(Nt4.0,Win2000以降)から存在してます(進化していますが)。
これも何を言っているのでしょうか? 【概要】に「Windows XP では、・・・ 新しい機能が取り入れられています。」と書いてあるのに、なぜ”Windows XPで実装された新しい機能”が「Windows XP より古いOS(Win NTやWin2000)から存在している」と言えるのか不思議です(「進化していますが」という発言に何とでも言い訳できるようにしている姑息さが伺えますが)。

>別のリソース管理(NIS、NIS+、LDAP)でも同じです。
なぜこんな発言ができるのでしょうか?この「ユーザー名およびパスワードの保存」機能はユーザー情報等のリソースを一元管理するシステムとは全く違うということが理解できていないようですね。 http://support.microsoft.com/kb/281660/ja の【概要】を理解できていない証拠です。

>>『標準エラー出力(この場合コンソール)』
>そんな事書いてないですよね。
”標準出力”、”標準エラー出力”、”標準入力”、これらの単語を関連付けて思考するのはエンジニアの基本だと思うのですが…。標準出力をリダイレクトさせる”>”をコマンドの出力をファイルに書き出す魔法の記号程度にしか理解していないとしか考えられません。

>ローカルの管理者で実行するのが当たり前の事なので、わざわざ断りを入れません。
あなたがNo1の回答で示した「wmic ・・・」というコマンドがどのような動きをするのかあなた自身が理解できていれば私の「結果を得られなかった」という補足に対して、ローカル管理者で実行しているか確認、示唆することができたと思うのですが・・・。

>それより、”\"がユーザー名に設定できない事はについては何も触れていませんね。都合の悪い事は、だんまりですか??????
これが一番理解できない発言ですね。何度も書きますが http://support.microsoft.com/kb/281660/ja を読んで理解されていますか?
【詳細】の中に

キーを手動で作成するには、次の手順を実行します。

1. [コントロール パネル] の [ユーザー名およびパスワードの保存] を起動します。
2. [追加] をクリックします。
3. 次に示すボックスに適切な情報を入力します。
* [サーバー] : ホスト名、FQDN、ワイルドカードなどを使用します。
* [ユーザー名] : ドメイン\ユーザー名、コンピュータ名\ユーザー名、UPN の形式で入力します。
* [パスワード] : パスワードを入力します。

と書かれているのですが…。
『* [ユーザー名] : ドメイン\ユーザー名、コンピュータ名\ユーザー名、UPN の形式で入力します。』の箇所があなたのブラウザでは黒塗りにでもなっていたのでしょうか?


ここまで http://support.microsoft.com/kb/281660/ja の内容を理解してもらえないとは この文書を作成したMicrosoftのスタッフも浮かばれませんね。

ここまで理解力が無いエンジニア(疑わしいですが)が存在しているとは驚きです。

補足日時:2010/05/22 02:40
    • good
    • 0

No2の続きです。



>(wmic netlogin list /format:HTABLE > a.html)を実行してみましたが「XML 内容が無効です

そちらの環境が書いていないので、動作が正常に完了するかどうかは不明です。こちらではXP pro, Vista , Win7 pro, Windows2003で問題ありませんが?

>表示され標準出力には何

でなくて当たり前です。a.htmlに出力先を変えているので。もしXMLがでるのあれば、最後の /format:HTABLE を外してください。そのXMLはHTMLフォーマットに使われるテンプレートです。

又コマンドプロンプトで

>wmic

とすると、初回はインストールが始まります。デフォルトでは次のようなプロンプトになります。

wmic:root\cli>

ここで
wmic:root\cli> /?

とすると使い方がでます。

wmic:root\cli> netlogin /?
wmic:root\cli> netlogin list /?
wmic:root\cli> netlogin list /format /?

でそれぞれの使いたがでます。このレベルは、教えてもらわなくても使えるようにならないと、会社のシステムを管理するのは無理です。Windowsを管理するのも無理です。ましてやVBS、JSでスクリプトを作って、社員の皆さんに使ってもらうレベルまでの域には達していません。Windowsにはヘルプも付いているし、ネットで使い方も検索できます。

それと、No2で「ディスクトップにログインした時にシステムが確認しに行くので」としましたが、Vista以降は、アクセスしに行った時に初めて、認証の資格を確認しますので、それ以前とは動作が違います。ログオンスクリプトでマウントしてしまえば、この問題は解決します。

この回答への補足

何か色々と勘違いされているようですね。

【No.2の回答の補足】
>そもそも「パスワードの管理」とは何の事でしょうか?
最初の質問に
”「コントロールパネル」→「ユーザーアカウント」→「詳細設定」タブ→「パスワードの管理」ボタン・・・”
と記述しておりましたのでNo.1の回答の補足では敢えて”「パスワードの管理」”とだけ記述させて頂きました(質問を読んで頂いていればご理解頂けたと思うのですが…)。

この”「コントロールパネル」・・(省略)・・『ユーザー名およびパスワードの保存』”はワークグループ環境のWinXP Proでは
「スタート」→「ファイル名を指定して実行」→”control userpasswords2”と入力して「OK」クリック→「詳細設定」タブ→「パスワードの管理」ボタンをクリック
で表示できますが、質問に”ドメインに参加しているWindowsXP Pro”と記述しておりましたのでワークグループ環境での表示手順は記述しませんでした。

詳しくは http://support.microsoft.com/kb/281660/ja を参照して頂ければと思います。
ご回答頂いた内容から推察すると、この機能についてご存知無いような気がします。


【No.3の回答の補足】
>>表示され標準出力には何

>でなくて当たり前です。

私がNo1.の回答の補足で
”ご回答頂いた中のコマンド(wmic netlogin list /format:HTABLE > a.html)を実行してみましたが「XML 内容が無効です。」と表示され標準出力には何も表示されませんでした。”
と書いたのは
『標準エラー出力(この場合コンソール)』に「XML 内容が無効です」と表示され『標準出力』をリダイレクトしたファイルa.htmlには何も出力されなかった
という意味で敢えて『標準出力』という表現を使いました。これもご理解頂けなかったようですね。

「wmic netlogin ・・・」の実行についてはドメインに参加しているWinXP Proでは「XML 内容が無効です」と表示される場合があるようです。ローカルAdministratorでログインするかワークグループ環境で実行したら結果が得られました(ただ、この結果は私が欲しい情報ではありませんでしたが・・・)。


長々とご回答頂きましたが、私の最初の質問の
”ドメインに参加しているWindowsXP Proの「コントロールパネル」→「ユーザーアカウント」→「詳細設定」タブ→「パスワードの管理」ボタンをクリックして表示される『ユーザー名およびパスワードの保存』”
を実際にご確認頂き、これがどのような機能なのかご存知であれば私が何を求めているかご理解頂けたのではないかと思います。
※ちなみに各所で”ドメイン”と記述していますがActive Directoryドメインのことです。
今回の質問は”「コントロールパネル」・・(省略)・・『ユーザー名およびパスワードの保存』”に設定されている情報にスクリプトでアクセスするためのAPIに関するクライアント(WinXP Pro)寄りの質問でしたので単に"ドメイン"とのみ記述させて頂きました。

これ以上、有効な回答は得られそうにありませんのでこの質問はクローズさせて頂きます。

補足日時:2010/05/17 23:18
    • good
    • 0

>ユーザー名: HOGE\UserA



”\”はユーザー名文字列として登録も不可能ですが、まるっきり意味を理解していないようです。仮に出来たとして、認証がOkになるためには下記のように入力する事になります。

HOGE\HOGE\UserA

そもそも「パスワードの管理」とは何の事でしょうか? Windowsのサービス(仕組み)などにはそのような物ありません。GUIの事を意味しているのなら、もっとOSの仕組みを勉強しましょう。存在するのはユーザー管理であり、認証の仕組みです。

Windows管理のユーザー名に「ホスト名+ユーザー名」としても、ユーザー管理のユーザー名には「ホスト名+ユーザー名」がユーザー名として登録されているので、あなたのもくろみは、この時点で崩壊しています。

>全社で1000台以上パソコンがあり、離れた拠点もたくさんあるので一台づつ確認するのは困難なのでスクリプトでと考えました。

質問者はどのような立場の人でしょうか? 記載されている内容だとSE(システムエンジニア)とは思えない知識レベルです。ちゃんとしたSEに相談してください。なるべくだったらマイクロソフトのアドミニストレーター(上級)の資格を持っている方か、CCNAの資格を持っているか同等の知識をもっている方がいいです(資格を持っていなくても出来る人は出来るので)。

あなたの知識レベルでは、1000人の人が混乱します。

>ただ、ログオフしてしまうと次回HOGE

ログオフとはディスクトップからのOffだと思いますが、「ネットワークドライブの割り当て」などで(又は動的なマウント)、出てくるログインのダイアログで、認証の保存(文字列の)にチェックをしておくと、次回同じ文字列がダイアログに残っています。それで対処ができるはずです。「ネットワークドライブの割り当て」はお勧めで、ディスクトップにログインした時にシステムが確認しに行くので、そこでディスクトップのログインユーザーと違う資格が必要な場合、ログインを求められます。資格が違うとは、同じユーザー名が、サーバー/クライアントのローカルに存在していた場合(グループも同じ)、パスワードが同じであった場合、認証はOKになります。片方がAdminだと資格が違うので、[HostName]\[user naem]が必要になります。

これはドメインユーザーでも同じです。

又社員教育も必要です。自分がどの種類いのサーバーにアクセスしているのか、ちゃんと認識してもらいましょう。

これらの事を社員に周知徹底させる事もSEの仕事であり、ネットワーク管理者としての仕事です。それで問題になるようであれば、ほとんどのサーバーをドメインに参加させるように働きかけるのもSEなどの管理者の仕事です(大手の会社も10年くらいそのような問題ですったもんだしています)。私のいた会社ではヘルプデスクをWebページで展開しています。ここを見れば解決します。と言う具合です。つまりFAQですね。

簡単にドメインに参加できるようにスクリプトを作成する方が前向きな対処の仕方です。

私のいた会社なんて、最初は某プロトコルの聞いたこともないような独自開発ドメインで、次はNTドメインで、次にNetWareで、その後自由になり、最近やっとActiveDirectoryで統一しようとしています。どうしてもアホな社員がいて文句を言われますがついてこれない人は切りましょう。

上記のもう一つの解決法は、HOGEに特定ユーザーを作成します。そのユーザーをローカルに登録するわけですが、BATファイルを作成します。これをサーバーにアクセスする作業を、このBATファイル実行に変えてもらうわけです。

net use x: \\HOGE\共有名 /user:hoge\ユーザー名 *

最後の”*”はパスワードを聞いてきます。詳細はnet use /?。接続が完了すると、えくすぷろらーからXドライブを見ればいいわけです。これをログオンスクリプトに入れてもいいですね。このバッチファイルをREADME(使い方や変更のし方)と共に配布すればいい訳です。

このBATはVBSやJS、WSHでもできますので、勉強してください。もっと進化させてWMIを使って、接続先がドメインに参加しているのか調査し、今のログインユーザーの情報とマッチングして、認証がNGであれば、コマンドプロンプトにユーザー名及び、パスワードを求めるスクリプトを作成すればいいわけです。スクリプトで実際にユーザー名を渡す時はサーバー名をつければいいわけです。その方が実用的です。

HTAもあるので、勉強してください。
    • good
    • 0

ん~~~~?



どう説明したらいいのでしょう。

ちょこっと勘違いしているかも。ドメインユーザーの情報を取得したいのでしょうか?

それともローカルユーザーを取得したいのでしょうか?

また、ドメインユーザーであれば、NTドメイン(Win2000ドメイン)なのでしょうか? それともADでしょうか?


ローカルユーザー以外であれば、WMIを使うのが最もベターです。もちろんローカルユーザーもWMIで取得可能です。

とりあえず下記のコマンドを実行してみてください。欲しい情報があるはずです。a.htmlに表になってリストされています。

wmic netlogin list /format:HTABLE > a.html

この”netlogin”を ntdomain, sysaccount, group に変更してみてください。
これをCOMを使用してVBS、JS及びWSHから使用します。

http://technet.microsoft.com/ja-jp/library/bb742 …
http://msdn.microsoft.com/en-us/library/aa394572 …
http://technet.microsoft.com/ja-jp/scriptcenter/ …

にサンプルがたくさんあるので見てください。

実はそんなに難しい事をしなくても、コマンドプロンプトで

>net user

でリストがでます。

>ログオンスクリプト等を利用したいと考えているからです。

ドメインユーザーならドメインのリストを取ればいいし、それで「ドメインに参加している」謎だ??????

この回答への補足

回答ありがとうございます。
質問内容が中途半端だったようなので補足させていただきます。

例えばドメインに参加していない(ワークグループ)ファイルサーバー「HOGE」があり、そのサーバーにはユーザー「UserA」が登録されています。
ドメインに参加しているWindows XPからサーバーHOGEに『 \\HOGE 』のようにアクセスするとユーザー名、パスワードを求められますが、その時以下のように入力すればアクセスできると思います。

ユーザー名: HOGE\UserA
パスワード: *****

ただ、ログオフしてしまうと次回HOGEにアクセスした時に同じようにユーザー名、パスワードを要求されてしまいます。そこで「パスワードの管理」に以下のように登録しておくことでユーザー名、パスワードを入力する必要がなくなると思います。

サーバー: HOGE
ユーザー名: HOGE\UserA
パスワード: *****

社内のパソコンには過去のしがらみからこのような設定がたくさんあり、パソコンを交換した後など、以前アクセスできていたサーバーにアクセスできなくなったといった連絡が多々あります。これを避けるためにどのパソコンにどういう設定がされているのかを事前に把握しておきたいと思い質問させて頂きました。また、全社で1000台以上パソコンがあり、離れた拠点もたくさんあるので一台づつ確認するのは困難なのでスクリプトでと考えました。

ご回答頂いた中のコマンド(wmic netlogin list /format:HTABLE > a.html)を実行してみましたが「XML 内容が無効です。」と表示され標準出力には何も表示されませんでした。これは何を表示させるコマンドでしょうか?ご教示頂ければ幸いです。

宜しくお願い致します。

補足日時:2010/05/14 00:07
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!