none
PowerShellで端末情報の取得 RRS feed

  • 質問

  • こんにちは はじめまして

    PowerShellをつかって以下のような作業をしたいと思っています。
     ・数十台あるPC(win-xp)から1台づつ端末の情報を取得したい
     ・取得したい情報は、コンピュータ名、MACアドレス、シリアル番号 等です。
     ・csv形式で1つのファイルに追記していく。
      (つまり、1行に1台分の情報が追記されていく感じです。取得した情報はカンマ区切りで1行に。)

    以前はこんなスクリプトで取得していました。
    (すみません初心者なもので、いろいろなサイトを周ってつぎはぎで作りました・・・)
    -------------------------------------------------------------------
    Set wsh = WScript.CreateObject("WScript.Shell")
    computername = wsh.ExpandEnvironmentStrings("%COMPUTERNAME%") & ","
    username = wsh.ExpandEnvironmentStrings("%USERNAME%") & ","
    Set exe = wsh.Exec("ipconfig.exe")
    Do Until exe.StdOut.AtEndOfStream
      strLine = exe.StdOut.ReadLine
      If InStr(strLine, "IP Address") <> 0 Then
        iColon = Instr(strLine, ":")
        ipaddress = Mid(strLine, iColon + 2)
        ipaddress = Replace(ipaddress, vbCr, "") & ","
      End If
    Loop

    'MACAddress

    Set Locator = WScript.CreateObject("WbemScripting.SWbemLocator")
    Set Service = Locator.ConnectServer
    Set QfeSet = Service.ExecQuery("Select * From Win32_NetworkAdapterConfiguration")
    For Each Qfe In QfeSet
        If Qfe.IPEnabled = True Then
            Ret3 = Ret3 & Qfe.MACAddress &  ","
        End If
    Next
      ・
      ・
    ------------------------------------------------------------------------------------------------
    実は前後に、その端末の管理番号の入力(inputbox)とcsvへの出力処理があります。

    これをPowerShellで、そもそも可能なのかというところすら解らない状態です・・・
    なにかヒント、アドバイスがあればご教授いただきたいと思います。

    宜しくお願いします

    2014年1月9日 0:43

回答

すべての返信

  • 可能です。
    ところで質問者さんは何を尋ねたいのでしょうか? まさか全文をPowerShellで書き直す仕事を依頼したいとか?
    • 回答としてマーク PANDERS 2014年1月9日 5:23
    2014年1月9日 1:40
  • 可能です。
    ところで質問者さんは何を尋ねたいのでしょうか? まさか全文をPowerShellで書き直す仕事を依頼したいとか?

    すみません 言葉足らずでした。

    >・・・まさか全文をPowerShellで書き直す仕事を依頼したいとか?

    やりたい事はまさにおっしゃる通りの事をしたいと思っています。
    「仕事を依頼」とは本心をつかれてしまい返す言葉もございません・・・。

    実は業務上改修が必要になってしまい、どうせ作り直すなら、と思った次第です。
    しかしながら、さすがに厚かましいお願いになってしまいますので可能であれば、なにか
    1つでもヒントになるようなサンプルがあると広げていけるのではと思っています。
    特にわからない所として、取得した情報をカンマ区切りで1レコードにするところです。

    Get-WmiObject Win32_ComputerSystem
    だと、縦に?ずらっと情報が出てきますが、それをどのように加工(処理)すればよいのでしょうか。

    宜しくお願いいたします。

    2014年1月9日 2:54
  • 投稿者です

    勉強不足でした。もう少し学習して内容をまとめます。
    出直させてください・・・
    すみませんが、またよろしくお願いします。

    2014年1月9日 5:22
  • get-help export-csv を見てみるところからですかね!?
    • 回答としてマーク PANDERS 2014年1月10日 8:19
    2014年1月10日 0:13
  • ありがとうございます

    さっそく拝見させていただきました。
    「.NET Framework オブジェクトを~」
    ・・この時点で勉強不足を痛感しました

    がんばります

    2014年1月10日 8:18