
---前提条件-------
まず、下記の方法にて確認できる情報を、仮に【情報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
・
・
・
-------------

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/scriptcen …
(ダウンロードは英語サイトで、途中で Windows 正規版のチェックが入ります)
ダウンロードした exe ファイルを開いて適当なフォルダに解凍し、ScriptmaticV2.hta ファイルをダブルクリック。
[WMI Namespace] は「root/CIMV2」を選択。
[WMI Class] は「Win32_UserAccount」を選択。
[Language] は「VBScript」を選択。
これでサンプル スクリプトが表示されます。
サンプル スクリプト後半の WScript.Echo の部分にいろんなプロパティが書いてあります。
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
No.1
- 回答日時:
ユーザの情報はWMIを使用すれば取得出来ます。
またはnet userコマンドの出力を使用しても良いと思います。サーバに出力したファイルを送るなら、サーバに共有フォルダを作ってそこにファイルをコピーするのが一番手っ取り早いですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
画像生成AIのプロンプトの作り...
-
vba 正規表現について教えてく...
-
プログラム言語
-
pythonでのローカルファイルか...
-
vba クリップボードクリアにつ...
-
今のプログラミング言語
-
itエンジニアに就職希望で未経...
-
if関数とは?
-
自作scratch アニメの商用利用
-
数学、プログラミング、物理、...
-
趣味がプログラミングだと言っ...
-
COPYコマンドで、最後に1文字...
-
著作権法について
-
CSVファイルの複数行削除
-
プログラム上での行のマージ方法
-
uwscでPauseキーが押されたら、...
-
数行削除してコピーするbatファ...
-
Pythonのエラーメッセージをコ...
-
プログラミングについて
-
Geminiフォーム 画像生成で 人...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PCに保存していた写真を見られ...
-
拡張子をつくる
-
<a href="file:///フォルダ名/...
-
OpenFileDialogを使った後にも...
-
ExcelVBAでリンク先の対象のフ...
-
ExcelのVBProjectがExcelを開く...
-
同名フォルダを作成し、そのフ...
-
Git bashが開かなくなってしま...
-
MkDir パス名が無効です
-
スマホでHTMLファイルを開いて...
-
Excelで外部のファイルの場所を...
-
VBScriptで、ローカルに存在す...
-
メモリマップドファイルは動作...
-
ファイルの作成日時について
-
Outlookで添付ファイルの貼り付...
-
ビデオキャプチャ(VHS to DVD...
-
「~$ファイル名.doc」というフ...
-
秀丸のタグジャンプがうまくで...
-
Excelの関数について教えてくだ...
-
ホームページが編集できなくなった
おすすめ情報