2016-11-22 21 views
0

建物全体を回り、ネットワーク内のすべてのPCのシリアル番号とシステム情報を記録するように求められました。私がそれをしていたとき、私はこれを行うためにバッチファイルまたはPowershellスクリプトを書いたことができたことに気付きました。私は「wmic bios get serialnumber」というコマンドを入力し、私のマシンのシリアル番号を教えてくれました。プロセッサ、メモリ、IPアドレス、シリアル番号などの情報をすべて取得し、Excelスプレッドシートに出力する方法はありますか?それはテキストファイルでのみエクスポートすることができます。私は私のサーバーに保存したいと思います。 1つのテキストファイルにすべてを保存する方法がわかりません。バッチファイルに>>%COMPUTERNAME%.txtコマンドで独自のテキストファイルを作成させることができます。バッチファイル/ Powershellスクリプトの出力をExcelスプレッドシートにエクスポートする方法

ご意見やご提案は素晴らしいと思います。 ありがとう!

Get-WmiObject win32_processor | Findstr ('Name') | Format-List 
$env:COMPUTERNAME | Format-List 
wmic bios get serialnumber /Format 
Get-WmiObject -Class Win32_ComputerSystem | Findstr ('Model') | Format-List 
Get-WmiObject -Class Win32_ComputerSystem | Findstr ('Manufacturer') | Format-List 
Get-WmiObject -Class Win32_ComputerSystem | Findstr ('Name') | Format-List 
(systeminfo | Select-String 'Total Physical Memory:').ToString().Split(':')[1].Trim() | Format-List 
Export-CSV -Path C:\Users\ars001\%COMPUTERNAME%.csv | Format-List 
+1

答えは「はい」です。方法があります。 StackOverflowへようこそ。ここでは、スクリプト/コードの問題のトラブルシューティングと修正をお手伝いしますが、あなたのために書くことはできません。 PowerShellでは、 'Get-WMIObject'コマンドレットを使用して' wmic'と同じ情報を取得し、その情報を取得するコンピュータを指定することもできます。一方、 'Export-CSV'コマンドレットは、デフォルトでExcelで開くCSVファイルに結果をエクスポートします。後は君しだい。スクリプトを書いてもうまく動作しない場合は、コード/問題を投稿して投稿してください。 – TheMadTechnician

+0

Get-WmiObject win32_processor | Findstr( 'Name') $ env:COMPUTERNAME wmicのBIOSがシリアル番号を取得する Get-WmiObject -Class Win32_ComputerSystem | Findstr( 'モデル') Get-WmiObject -Class Win32_ComputerSystem | Findstr( '製造元') Get-WmiObject -Class Win32_ComputerSystem |このサイトの書式設定に問題があります。Findstr( 'Name') (systeminfo | Select-String 'Total Physical Memory:')ToString()。Split( ':')[1] .Trim() – Andrew11

+0

。 – Andrew11

答えて

0

[OK]を、あなたは明らかに、少なくとも情報を収集し、どのようなクラス何詳細について必要があると思いますので、私はあなたにこの多くをあげるにコマンドを取得するには、いくつかの努力を...

$Computers = Get-Content C:\Path\To\ComputerList.txt 
[array]$Results = $Record = Get-WmiObject -Class Win32_ComputerSystem -ComputerName $PC | select Model,Manufacturer,Name,TotalPhysicalMemory 
$Results[0] | Add-Member 'Processor' $(Get-WmiObject win32_processor -ComputerName $PC | % Name) 
$Results[0] | Add-Member 'SerialNumber' $(Get-WmiObject bios -ComputerName $PC |% serialnumber) 
ForEach($PC in $Computers){ 
    If(!(Test-Connection $PC -Quiet) -or $PC -eq $env:COMPUTERNAME){Continue} 
    $Record = Get-WmiObject -Class Win32_ComputerSystem -ComputerName $PC | select Model,Manufacturer,Name,TotalPhysicalMemory 
    $Record | Add-Member 'Processor' $(Get-WmiObject win32_processor -ComputerName $PC | % Name) 
    $Results += $Record | Add-Member 'SerialNumber' $(Get-WmiObject bios -ComputerName $PC |% serialnumber) -PassThru 
} 
$Results | Export-Csv c:\Path\To\Output.csv -NoTypeInformation 

次に、パスを編集して、コンピュータのリストをテキストファイルとして保存するだけです。あなたがADモジュールがインストールされている場合は、代わりにその情報のADを照会することができます。

+0

ありがとう!私はちょうどこのスクリプトを始めたばかりですが、私はいくつかの部分で立ち往生しています! – Andrew11

関連する問題