我是powershell的新手,当前正在研究将PowerShell结果导出到特定数据库的代码,例如ITAMMVCDB.mdf和表名硬件。
我用表创建了这个数据库(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"数据库和名为"硬件"
的表格提前感谢。
答案 0 :(得分: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