1

私はpowershellを初めて使用し、現在、powershellの結果をITAMMVCDB.mdfやテーブル名Hardwareなどの特定のデータベースにエクスポートするコードに取り組んでいます。

このデータベース (SQL Server 2008) をテーブル (すべての属性が varchar(5000) 型であると仮定) で作成し、powershell スクリプトの結果をこのデータベースにエクスポートしようとしました。

[cmdletbinding()]
param (
 [parameter(ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)]
    [string[]]$ComputerName = $env:computername
)            

begin {}
process {
 foreach ($Computer in $ComputerName) {
  if(Test-Connection -ComputerName $Computer -Count 1 -ea 0) {
   $Networks = Get-WmiObject Win32_NetworkAdapterConfiguration -ComputerName $Computer | ? {$_.IPEnabled}
   $OsName = Get-WmiObject Win32_OperatingSystem -ComputerName  $Computer | Select Name, Version
   $Memory = Get-WmiObject Win32_ComputerSystem  -ComputerName  $Computer | Select  TotalPhysicalMemory, Manufacturer, Model , Domain
   $Disk = Get-WMIObject Win32_LogicalDisk  -ComputerName   $Computer  | Select DeviceID,Size  
   $Serial = Get-WMIObject Win32_SystemEnclosure  -ComputerName   $Computer  | Select SerialNumber
   $Processor = Get-WMIObject Win32_Processor  -ComputerName   $Computer  | Select Name
   $Serial = Get-WMIObject Win32_SystemEnclosure  -ComputerName   $Computer  | Select SerialNumber

   foreach ($Network in $Networks) {
    $IPAddress  = $Network.IpAddress[0]

    $os = $OsName.Name 
    $Version=$OsName.Version
    $mem= $memory.TotalPhysicalMemory
    $Manufacturer= $memory.Manufacturer
    $Model= $memory.Model
    $Domain = $Memory.Domain
    $DiskSize = $Disk.Size
    $SerialNo = $Serial.SerialNumber
    $ProcessorSpeed = $Processor.Name
    $SerialNo = $Serial.SerialNumber

    $OutputObj  = New-Object -Type PSObject
    $OutputObj | Add-Member -MemberType NoteProperty -Name ComputerName -Value $Computer.ToUpper()
    $OutputObj | Add-Member -MemberType NoteProperty -Name IPAddress -Value $IPAddress

    $OutputObj | Add-Member -MemberType NoteProperty -Name Name -Value $os
    $OutputObj | Add-Member -MemberType NoteProperty -Name Version -Value $Version
    $OutputObj | Add-Member -MemberType NoteProperty -Name TotalPhysicalMemory -Value $mem
    $OutputObj | Add-Member -MemberType NoteProperty -Name Manufacturer -Value $Manufacturer
    $OutputObj | Add-Member -MemberType NoteProperty -Name Model -Value $Model
    $OutputObj | Add-Member -MemberType NoteProperty -Name DiskSize -Value $Disk
    $OutputObj | Add-Member -MemberType NoteProperty -Name Processor -Value $ProcessorSpeed
    $OutputObj | Add-Member -MemberType NoteProperty -Name SerialNumber -Value $SerialNo
    $OutputObj | Add-Member -MemberType NoteProperty -Name Domain -Value $Domain
    $OutputObj | Export-CSV -Path “C:\y3s1\report.csv”
   }
  }
 }
}            

end {}

私はそれをcsvファイルにエクスポートし、正常に動作しました。上記のコードを変更して、結果を「ITAMMVCDB.mdf」データベースと「ハードウェア」という名前のテーブルにエクスポートするにはどうすればよいですか

前もって感謝します。

4

1 に答える 1

0

SQL Server 2005 以降に含まれている sqlcmd.exe コマンド ライン ユーティリティを、単純な T-SQL BULK INSERT コマンドと共に使用します。

$query = @"
BULK INSERT [ITAMMVCDB.mdf].[dbo].[Hardware] FROM 'C:\y3s1\report.csv' WITH (FIRSTROW = 2, FIELDTERMINATOR = ',', ROWTERMINATOR = '\n')
"@
sqlcmd -S "yourSQLServer" -E -Q $query
于 2012-11-29T11:55:40.843 に答える