VBSに関して質問です。

インベントリ情報を取得後に、
現在ログインしているユーザーのデスクトップにインベントリ情報を保存したい。
※ファイル名は、「yyyymmddログインユーザー名.txt」
------------------------------
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colItems1 = objWMIService.ExecQuery("Select * from Win32_OperatingSystem",,48)
Set colItems2 = objWMIService.ExecQuery("Select * from Win32_ComputerSystem",,48)
Set colItems3 = objWMIService.ExecQuery("Select * from Win32_ComputerSystemProduct",,48)

For Each objItem in colItems1
Wscript.Echo objItem.Caption 'OS
Wscript.Echo objItem.CSDVersion 'サービスパック
Next
For Each objItem in colItems2
Wscript.Echo objItem.Name 'コンピュータ名
Wscript.Echo objItem.Domain 'ドメイン名
Wscript.Echo objItem.UserName 'ユーザー名
Next
For Each objItem in colItems3
WScript.Echo objItem.Vendor 'ベンダー
WScript.Echo objItem.Name '機種名
WScript.Echo objItem.IdentifyingNumber 'シリアルナンバー
Next
---------------------------------------

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2013/04/29 10:29:33
  • 終了:2013/04/29 18:16:10

ベストアンサー

id:Mook No.1

Mook回答回数1312ベストアンサー獲得回数3912013/04/29 10:59:29

ポイント300pt

こんな感じでしょうか。

Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colItems1 = objWMIService.ExecQuery("Select * from Win32_OperatingSystem",,48)
Set colItems2 = objWMIService.ExecQuery("Select * from Win32_ComputerSystem",,48)
Set colItems3 = objWMIService.ExecQuery("Select * from Win32_ComputerSystemProduct",,48)

ret = ""
For Each objItem in colItems1
    ret = ret & "OS               = " & objItem.Caption & vbNewLine
    ret = ret & "サービスパック   = " & objItem.CSDVersion & vbNewLine
Next

For Each objItem in colItems2
    ret = ret & "コンピュータ名   = " & objItem.Name & vbNewLine
    ret = ret & "ドメイン名       = " & objItem.Domain & vbNewLine
    ret = ret & "ユーザー名       = " & objItem.UserName & vbNewLine
    userName   = objItem.UserName 'ユーザー名
Next

For Each objItem in colItems3
    ret = ret & "ベンダー         = " & objItem.Vendor & vbNewLine
    ret = ret & "機種名           = " & objItem.Name & vbNewLine
    ret = ret & "シリアルナンバー = " & objItem.IdentifyingNumber & vbNewLine
Next

FilePath = WScript.CreateObject("WScript.Shell").SpecialFolders("Desktop") _
         & "\" & Replace(FormatDateTime(Now, 2),"/","") _
         & Replace(userName, "\", "_")  & ".txt"
CreateObject("Scripting.FileSystemObject").CreateTextFile( FilePath ).Write ret

その他の回答(1件)

id:Mook No.1

Mook回答回数1312ベストアンサー獲得回数3912013/04/29 10:59:29ここでベストアンサー

ポイント300pt

こんな感じでしょうか。

Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colItems1 = objWMIService.ExecQuery("Select * from Win32_OperatingSystem",,48)
Set colItems2 = objWMIService.ExecQuery("Select * from Win32_ComputerSystem",,48)
Set colItems3 = objWMIService.ExecQuery("Select * from Win32_ComputerSystemProduct",,48)

ret = ""
For Each objItem in colItems1
    ret = ret & "OS               = " & objItem.Caption & vbNewLine
    ret = ret & "サービスパック   = " & objItem.CSDVersion & vbNewLine
Next

For Each objItem in colItems2
    ret = ret & "コンピュータ名   = " & objItem.Name & vbNewLine
    ret = ret & "ドメイン名       = " & objItem.Domain & vbNewLine
    ret = ret & "ユーザー名       = " & objItem.UserName & vbNewLine
    userName   = objItem.UserName 'ユーザー名
Next

For Each objItem in colItems3
    ret = ret & "ベンダー         = " & objItem.Vendor & vbNewLine
    ret = ret & "機種名           = " & objItem.Name & vbNewLine
    ret = ret & "シリアルナンバー = " & objItem.IdentifyingNumber & vbNewLine
Next

FilePath = WScript.CreateObject("WScript.Shell").SpecialFolders("Desktop") _
         & "\" & Replace(FormatDateTime(Now, 2),"/","") _
         & Replace(userName, "\", "_")  & ".txt"
CreateObject("Scripting.FileSystemObject").CreateTextFile( FilePath ).Write ret
id:dawakaki No.2

だわかき回答回数797ベストアンサー獲得回数1222013/04/29 13:18:35

Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colItems1 = objWMIService.ExecQuery("Select * from Win32_OperatingSystem",,48)
Set colItems2 = objWMIService.ExecQuery("Select * from Win32_ComputerSystem",,48)
Set colItems3 = objWMIService.ExecQuery("Select * from Win32_ComputerSystemProduct",,48)

str = ""
For Each objItem in colItems1
    str = str & "OS:" &  objItem.Caption
    str = str & "サービスパック:" &  objItem.CSDVersion
Next
For Each objItem in colItems2
    str = str & "コンピュータ名:" &  objItem.Name
    str = str & "ドメイン名:" &  objItem.Domain
    str = str & "ユーザー名:" &  objItem.UserName
Next
For Each objItem in colItems3
    str = str & "ベンダー:" &  objItem.Vendor
    str = str & "機種名:" &  objItem.Name
    str = str & "シリアルナンバー:" &  objItem.IdentifyingNumber
Next

path = WScript.CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\"
fname = Replace(FormatDateTime(Now, 2), "/", "") & Replace(userName, "\", "_") & ".txt"
CreateObject("Scripting.FileSystemObject").CreateTextFile(path & fname).Write str
  • id:Mook
    よく堂々と盗作回答できるものだ・・・。
    キャプチャ取得の上、規約違反通知しておきました。

    だわかき の盗作回答(2013/04/29 13:18:35)
    (しかも中身を理解しないで userName を対応していないから仕様通り動かないし。)
    -----------------------------------------
    Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
    Set colItems1 = objWMIService.ExecQuery("Select * from Win32_OperatingSystem",,48)
    Set colItems2 = objWMIService.ExecQuery("Select * from Win32_ComputerSystem",,48)
    Set colItems3 = objWMIService.ExecQuery("Select * from Win32_ComputerSystemProduct",,48)

    str = ""
    For Each objItem in colItems1
    str = str & "OS:" & objItem.Caption
    str = str & "サービスパック:" & objItem.CSDVersion
    Next
    For Each objItem in colItems2
    str = str & "コンピュータ名:" & objItem.Name
    str = str & "ドメイン名:" & objItem.Domain
    str = str & "ユーザー名:" & objItem.UserName
    Next
    For Each objItem in colItems3
    str = str & "ベンダー:" & objItem.Vendor
    str = str & "機種名:" & objItem.Name
    str = str & "シリアルナンバー:" & objItem.IdentifyingNumber
    Next

    path = WScript.CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\"
    fname = Replace(FormatDateTime(Now, 2), "/", "") & Replace(userName, "\", "_") & ".txt"
    CreateObject("Scripting.FileSystemObject").CreateTextFile(path & fname).Write str
    -----------------------------------------
  • id:cx20
    用途にもよると思いますが、
    ログオンしているコンピュータの情報を確認したいということでしたら、
    以下のツールを用いることで、デスクトップに情報を表示してくれます。
    (設定により、WMI で追加情報を取得したり、Excel ファイルやテーブルに出力することも可能です。)

    <参考情報>
    ■ BgInfo - Sysinternals
    http://technet.microsoft.com/ja-jp/sysinternals/bb897557.aspx
    ■ Windows管理者必携ツール「Sysinternals」 - BgInfoを使いこなす:ITpro
    http://itpro.nikkeibp.co.jp/article/COLUMN/20120601/399982/
    ■ BgInfoツールでマシン情報をデスクトップに表示させる- @IT
    http://www.atmarkit.co.jp/fwin2k/win2ktips/1105bginfo/bginfo.html

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません