アプリ版:「スタンプのみでお礼する」機能のリリースについて

---前提条件-------

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




-------------

A 回答 (3件)

質問文にあるログの例は全端末の情報が 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 の部分にいろんなプロパティが書いてあります。
    • good
    • 0

とりあえず情報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
    • good
    • 0

ユーザの情報はWMIを使用すれば取得出来ます。

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

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