首页 > 解决方案 > Powershell - 更改返回的 SQL 数据变量的值失败

问题描述

在 Powershell 中,我正在对单行数据进行 SQL 查询。比如说 $data 。

来自查询的响应 System.Data.DataSet 类型。在其中,有一个属性,其中包含我需要的数据。

$data.Tables

ServerName          : Server15
SamAccount          : Admin-Server15
LastPWDReset        : 1/15/2019 12:00:00 AM
LastPWDResetAttempt : 

我不打算用任何东西写回这些数据。相反,我想显示它,并将空的“LastPWDResetAttemp”转换为空白的“NONE”。

我认为它会这样做:

 $data.Tables.lastPWDResetAttempt = "None"

但这给了我一个错误在此对象上找不到属性“lastPWDResetAttempt”。验证该属性是否存在并且可以设置。

我忍不住想我错过了从“数据集”到“字符串”的一些转换。

我尝试过字符串,但这样做时,我得到的只是一串数据,而不是标题。我无法更新或轻松使用任何东西来构建我的最终表格。

我的工作:

$webdata = "" | select ServerName,SamAccount,LastPWDReset,LastPWDResetAttempt
$webdata.ServerName = $data.tables.servername
$webdata.SamAccount = $data.tables.samaccount
$webdata.LastPWDReset = $data.tables.LastPWDReset
$webdata.LastPWDResetAttempt = $data.tables.LastPWDResetAttempt

$webdata.LastPWDResetAttempt = "Never"

作品。我简直不敢相信没有更简单的方法,我也不明白为什么我可以查看数据列表,只是无法设置它。

标签: powershelldbnull

解决方案


我认为这是因为Tables是一个数组并且没有属性LastPWDResetAttempt

您可以尝试以下方法:

$data.Tables[0].Rows[0].LastPWDResetAttempt = "None"

另外,我认为您的解决方法虽然可能包含更多代码行,但实际上是一个更好的解决方案。


推荐阅读