• ベストアンサー

VBScriptで、ローカルに存在するユーザをサーバに送る方法

---前提条件------- まず、下記の方法にて確認できる情報を、仮に【情報A】とします。 【情報A】 「マイコンピュータ右クリック ⇒ 管理 ⇒ (コンピュータの管理画面より)ローカル ユーザとグループ ⇒ ユーザ」 で確認できる、その時点でPCに存在するローカルのユーザアカウントの情報 ---ここまで------- 管理用ADサーバとクライアント約500台が存在するドメイン環境で、クライアントのログオン時にVBScript(いわゆるログオンスクリプト)を用いて、「端末名(ホスト名)+【情報A】」の形でにテキストファイル等のログ(下記の【ログの例】参照)として管理用ADサーバに送信します。 そしてサーバ側では、全クライアントに存在する全ユーザアカウントを端末別で一覧にて確認する。 このようなことは可能でしょうか?またどのようにすればよいでしょう? ※今回サーバに送信したい情報Aですが、有効になっているユーザアカウントだけでも、全てのアカウントでもOKです。 【ログの例】 ------------- PC001 Administrator Guest user01 user02 user03 PC002 Administrator Guest user01 PC003 Administrator Guest user03 user04 PC004 ・ ・ ・ -------------

  • xi106
  • お礼率16% (2/12)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

質問文にあるログの例は全端末の情報が 1つのファイルにまとまっていますが、それだとスクリプトからの書き込みは失敗します。 他の PC が書き込み途中だったりするとね。 ですのでホストごとにファイルを作成するのが良いでしょう。 ローカルのユーザー取得については pcName = "." Set wmisrv = GetObject("WinMgmts://" & pcName & "/root/cimv2") Set accounts = wmisrv.ExecQuery("SELECT * FROM Win32_UserAccount WHERE localaccount = TRUE") For Each acc In accounts MsgBox acc.Name MsgBox acc.Disabled Next で取得できるので、出力の体裁を整えてファイルに書き出してください。 ちなみに Disabled プロパティは、アカウントが無効なら True、有効なら False です。 また、WMI の Win32_UserAccount クラスのその他のプロパティなどを調べたい場合はマイクロソフト製の Scriptmatic 2.0 を使うと簡単に調べられます。 http://www.microsoft.com/japan/technet/scriptcenter/tools/scripto2.mspx (ダウンロードは英語サイトで、途中で Windows 正規版のチェックが入ります) ダウンロードした exe ファイルを開いて適当なフォルダに解凍し、ScriptmaticV2.hta ファイルをダブルクリック。 [WMI Namespace] は「root/CIMV2」を選択。 [WMI Class] は「Win32_UserAccount」を選択。 [Language] は「VBScript」を選択。 これでサンプル スクリプトが表示されます。 サンプル スクリプト後半の WScript.Echo の部分にいろんなプロパティが書いてあります。

その他の回答 (2)

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.3

とりあえず情報Aの取得部分だけならこんな感じでしょうか。 Option Explicit Dim Locator Dim Service Dim Os Dim OsSet Dim Usr Dim UsrSet Dim CompInfo Set Locator = WScript.CreateObject("WbemScripting.SWbemLocator") Set Service = Locator.ConnectServer Set OsSet = Service.ExecQuery("Select * From Win32_OperatingSystem") For Each Os In OsSet CompInfo = CompInfo & vbCrLf & Os.CSName Next Set UsrSet = Service.ExecQuery ("Select * From Win32_UserAccount") For Each Usr In UsrSet CompInfo = CompInfo & vbCrLf & Usr.Name Next CompInfo = CompInfo & vbCrLf MsgBox CompInfo Set UsrSet = Nothing Set Usr = Nothing Set OsSet = Nothing Set Os = Nothing Set Locator = Nothing

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.1

ユーザの情報はWMIを使用すれば取得出来ます。またはnet userコマンドの出力を使用しても良いと思います。 サーバに出力したファイルを送るなら、サーバに共有フォルダを作ってそこにファイルをコピーするのが一番手っ取り早いですね。

関連するQ&A

  • Windows Server 2003 ワークグループでのユーザー名について

    現在Windows Server 2003ワークグループで運用しているのですが、私の理解ではサーバ機にクライアントPCに作られているユーザーアカウント名とパスワードを登録すると、サーバ機にネットワーク経由でアクセスする時にユーザー名とパスワードを聞かれることなくアクセスできると思っていたのですが、1台のPCがユーザー名とパスワードを登録していないにもかかわらずアクセスできているのです。 Guestアカウントは無効にしてあります。 サーバ機のコンピュータの管理画面のセッションを見てみるとそのPCはユーザー名がadministratorになっていました。 さらにそのPCのadministratorパスワードは サーバ機にローカルログオンする時のadministratorのパスワードと違うものでした。 そして、そのPCはローカルログオンする時にadministratorというユーザー名は入れていないのです。 なぜアクセスできているのかご存知の方がいらっしゃいましたら、どうぞご教授お願致します。

  • 制限ユーザが作れない

    Windows XPのprofessional 使っています。新しいUser Accountを作ろうと思い、「ユーザーアカウント」の「新しいアカウントを作成する」で名前をつけて次の画面に進み、「アカウントの種類を選びます」に来ました。ところが、他のアカウントを作成する前に、「コンピュータの管理者のアカウントを少なくとも1つ作成してください。」で、「制限」ユーザを選択できないのです。 ○Administrator(コンピュータの管理者、パスワード保護) ○Guest(Guestアカウントはオフです) の二つが現在存在して、Administratorログオンしているのですが、これはいったいどういうことなのでしょうか?Administrator以外に管理者権限を持ったユーザを1人作れということなのでしょうか?

  • windows server 2003 ユーザー

    windows server 2003 R2 Standard Edition でファイルサーバーを構築しています。ワークグループ管理です。クライアントPCが10数台あるのですが、そのうちの数台は、フルコンピュータ名やユーザー名がAdministratorとなっています。コンピュータの管理から登録ユーザー名の一覧をだすと、もちろんユーザー名Administratorがひとつだけあるのですが、それがどのクライアントPCを指しているのかわかりません。 また、その影響で名前がAdministratorになっているものをリモートデスクトップのホストにしようとするとネットワークに属していないとでてしまいます。但しクライアントPCは全て共有ファイルにアクセスできます。 この辺をどう整理していけばいいのでしょうか?再セットアップしなおして登録しなおすしかありませんか? 情報が足りなければ追記します。 宜しくお願いします。

  • XPPro]制限つきアカウントで自動ログオンしたい

    現在Windows XP Pro SP2を使っています。 今存在しているアカウントが、 Administrator<管理者> ユーザ<管理者> Guest<ゲスト>(無効) で、「ユーザ」で自動ログオンされるのですが、 管理者権限をAdministratorのみにし、「ユーザ」を制限つきアカウントにし、自動ログオンさせることはできないのでしょうか。 現在、「ユーザ」アカウントは、制限つきに変更することも削除することもできません。(Administratorでログオンしても・・・) ご存知の方がいましたらよろしくお願いいたします。

  • ユーザーアカウントにログオンできない

    WINDOWSのユーザーアカウントを作り、GUESTの方を管理者にしたのですが、ログインできなくなってしまいました。セーフモードで起動してもAdministratorでログオンできませんでした。解決策をお願いします。

  • ユーザプロファイルについて

    アカウント管理をWindows2003のADで行っております。 サーバー : Windows2003 クライアントPC : WinXP SP2 頻繁に設定変更(デスクトップやプリンター設定など)を行うPCがあります。 このPCは、不特定多数のユーザが利用(個々のADアカウントを利用)してログオンし、 Windowsサーバーにアクセスします。 PCに設定されるユーザプロファイルは、ログインID毎にPCに作成されるため、 PCの設定変更時、ログインID毎に設定変更が必要になり、非常に運用を悩んでます。 サーバ、または、クライアントPCの設定で、ADのアカウントがどんなの場合でも 「特定のプロファイルを利用する」ことは可能でしょうか? ※現在は、Dafault Userに基本となるプロファイルをコピーして運用してます。 また、プロファイルの種類は、「ローカルプロファイル」です。 皆様よろしくお願い致します。

  • AD内ユーザのログオンについて

    初めて投稿します。 <環境> サーバ:Windows2003Server R2 Std SP2 →ADレベル:Windows2003 クライアント:Windows XP Pro SP3 クライアントで以下の作業を実施しました。 ・ログオンアカウント変更:ActiveDirectoryユーザとコンピュータにてリネーム ・メーラ変更:OE→OL2003 作業完了後、全アカウントに対しパスワードリセットし、「次回ログイン時パスワードの変更が必要」にチェックを入れた。 全てのPCでメッセージが正常に表示されるか確認したところ、2台にて正常表示されず。 PC(1) 「ログオンできません。ユーザー名とログオン先を確認して、もう一度パスワードを入力してください。・・・」と表示され、ログオンすらできない。 PC(2) PC(1)とは逆で、メッセージも何も出ずログオンできてしまう。 2台ともクライアント端末の問題も考え、わたしのPCでテストログオンしたところ、状況は同じ。 ADサーバで、別の名前にリネームしたところ正常に「パスワードの変更」を求めるメッセージが表示されたが、元の名前に戻すと同じ状況に戻ってしまう。 なお、ユーザを無効にすると、双方のPCでそれは反映されるのです。 月曜日にはユーザが出社するため、それまでに対策をしたいと思っています。 お手数をおかけしますが、ご教授いただけると幸甚です。

  • Windows XP  ユーザーアカウント 方法

    Windows XP proを使っています。 Administratorとは別にAdministrator 権限を持つユーザーアカウント(SUBAC)が1つあります。 コンピュータの管理者(SUBAC)と表示されます。 以前はAdministratorだけだったので普通の ( クラシックログオンじゃないほう) ログオン時に Windows xp へようこそ」のユーザーリストに Administratorが表示 されていましたが アカウントを作成したら 強制的に? コンピュータの管理者として設定されました。 すると ログオン時に Administrator が表示されなくなったので クラシックログオンにしました。 この追加した ユーザーアカウントを削除したいのですが(SUBAC)は コンピュータの管理者のアカウントなので削除できません。 どうやったら削除できますか? コンピュータの管理者は Administratorだけにしたいのです。 そして制限アカウント1つを作成したいのですが 無理ですか? お願いします。

  • Windows server へのネットワークログイン

    Windows server へのネットワークログイン 現在 サーバー(1台): Windows server 2000 + SQL Server 2000 クライアント(10台): Windows XP SP3 のような環境でPCA社の業務用アプリケーション『商魂・商管』を使用しています。 クライアントで商魂・商管を起動すると自動的にWindowsサーバーとSQLサーバーへ接続/認証が行われ、ログインに成功した場合は使用が可能になります。 ところが最近、クライアントの中の数台が『Administrator』のアカウントで商魂・商管を使用していることが判明しました。そのためサーバー側の『Administrator』アカウントのパスワードが各ユーザー間で共有されています。当然、サーバーに直接『Administrator』としてログインするときと同じパスワードです。パスワードを変更したいのはやまやまなのですが、管理者が『Administrator』パスワードを変更すると、ネットワークで『Administrator』アカウントを使用しているユーザーが商魂・商管を使用できなくなってしまいます。 この状況は最悪なので改善したいのですが・・・ クライアントのローカルアカウントが『Administrator』であっても、サーバーには別ID/パスワードでログインし、問題なく商魂・商管を使用する方法はないでしょうか。ネットワークドライブで可能なことは知っていますが、商魂・商管となると手が出ません。 ユーザー1  クライアントPCのアカウント administrator ← これはこのまま  サーバー上のアカウント administrator ← これをUser1に改めたい ユーザー2  クライアントPCのアカウント administrator ←これはこのまま  サーバー上のアカウント administrator ← これをUser2に改めたい ユーザー3  クライアントPCのアカウント User3 ← これはこのまま  サーバー上のアカウント User3 ← これもこのまま ・ ・ ・ PCA社に問い合わせましたが、アプリケーションの使い方については専門家でも、こういったネットワークの問題についてはわからないこともある、との返答でした。(これはこれで仕方のない話ですが) この問題は解決できないのでしょうか・・・?

  • ローカルAminsグループにドメインAdminを自動で追加したい

    お世話になります。 現在、単一ドメイン(Win2003ActiveDirectory)にてサーバー運用しております。クライアントPCの設定が、基本的な項目を除きまちまちなのですが、管理上ドメインAdminアカウントでクライアントにリモートアクセスし、設定を確認したり等の作業を行なえるようにしたいと思っています。 そこで、全クライアントのローカルAdministratorsグループに、ドメインのAdministrator(またはドメインAdministratorsグループ)を一括設定できる方法はないでしょうか?グループポリシーを確認しましたが、それらしい項目が見当たりませんでした。なにかコマンドで設定できれば、ログオンスクリプトで流すなど可能かと思うのですが。 ちなみに各ユーザーのドメインユーザーアカウントは、各自PCのローカルAdministratorsグループに追加されています。 よろしくお願いします。