我目前有以下脚本:
$SQLServer = "sqldev1"
$SQLDBName = "SPDEV_Printing"
$SqlQuery = "select * from PcBeheerPrinter WHERE PRT_name = 'bwpsc006'"
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Server = $SQLServer; Database = $SQLDBName; Integrated Security = True"
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = $SqlQuery
$SqlCmd.Connection = $SqlConnection
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)
$SqlConnection.Close()
clear
$DataSet.Tables[0]
返回一些控制台输出,如下所示:
PRT_PrintServerName : pcounter
PRT_Name : bwpsc006
PRT_PortNameFull : PCOUNT_bwpsc006
PRT_CAL_SerialNumber :
PRT_ACTIVE : 1
PRT_CAL_RespondToPing : 1
PRT_CAL_NamePinged : bwpsc006
PRT_CAL_FirstSeendate : 8/02/2017 20:55:13
PRT_CAL_LastSeendate : 4/12/2017 11:36:19
PRT_CAL_SNMPPossible : 1
PRT_CAL_Brand :
PRT_ShareName : bwpsc006
PRT_Comment :
PRT_Datatype : RAW
PRT_DriverName : Canon iR-ADV C5045/5051 PCL6
PRT_Location :
PRT_PrintProcessor :
PRT_Published : 0
PRT_Shared : 0
PRT_NumberOfMissedPings : 0
PRT_LastResponsedate : 4/12/2017 11:36:19
PRT_RenderingMode : CSR
我的问题是:如何将这些值中的一些转换为PS变量? 我需要Name,SerialNumber和其他一些(这些将作为示例)最终将它们传输到SharePoint列表。 我还是初学者,无法通过谷歌搜索来解决这个问题。
谢谢!
答案 0 :(得分:2)
使用System.Data.SqlClient.SqlCommand
类时,返回的大多数对象都是datatable
类型。由于$DataSet
的类型为datatable,因此您可以直接使用所有返回的属性 -
$Name = $DataSet.Tables[0].PRT_Name;
$SerialNo = $DataSet.Tables[0].PRT_CAL_SerialNumber
等等。
然后,您可以使用变量$Name
和$Serialno
作为SharePoint列表的输入。
答案 1 :(得分:1)
如果数据类型是object,那么您可以直接使用 select-object ,如:
$DataSet.Tables[0] | Select-object PRT_Name,PRT_CAL_SerialNumber