小编Emo*_*Emo的帖子

在Powershell中将SQL查询作为数组返回

我有一个SQL 2008 Ent服务器,服务器DEVSQLSRV上有数据库"DBOne","DBTwo","DBThree".

这是我的Powershell脚本:

$DBNameList = (Invoke-SQLCmd -query "select Name from sysdatabases" -Server DEVSQLSRV)
Run Code Online (Sandbox Code Playgroud)

这产生了我想要的数据库名称列表:

Name
-----
DBOne
DBTwo
DBThree
Run Code Online (Sandbox Code Playgroud)

我一直认为,作为列表返回的任何内容都是Powershell中的数组.但是,当我在Powershell中尝试这个时:

$DBNameList -contains 'DBTwo'
Run Code Online (Sandbox Code Playgroud)

它返回有"False"而不是"True",这让我相信我的列表不是一个真正的数组.

知道我在这里缺少什么吗?

非常感谢!

情绪

sql-server arrays powershell sql-server-2008

8
推荐指数
1
解决办法
2万
查看次数

获取文本doc中每行的字符数

我试图获取文本doc中每行的字符数.我的文档文档的内容是:

1
15
69
124
300
Run Code Online (Sandbox Code Playgroud)

我一直在尝试PS脚本的变种:

get-content c:\serverlist.txt | foreach-object {measure-object -character}
Run Code Online (Sandbox Code Playgroud)

但我能得到的最好的回报是:

行词字符属性
------- -------- -------------- -----------
                                            0
                                            0
                                            0
                                            0
                                            0

不知道我在这里缺少什么,但任何帮助将不胜感激!

谢谢!

powershell

4
推荐指数
1
解决办法
2825
查看次数

使用Powershell复制lastwritetime -ge 3/26/2010 9:00 pm的文件

我需要将一个目录中的文件复制到lastwritetime大于或等于3/26/2010 9:00 pm的另一个目录.我正在使用:

Get-ChildItem C:\pstest\hlstore\folder1\data | where-object {$i.lastwritetime -ge “3/26/2010 9:00 PM”} | Copy-Item -destination c:\pstest\hlstore2\folder1\data
Run Code Online (Sandbox Code Playgroud)

但没有任何反应......

任何帮助将不胜感激.

谢谢!

情绪

powershell-2.0 get-childitem

4
推荐指数
1
解决办法
2万
查看次数

表达式根据另一个字段更改SSRS中值的字符串中的特定值文本颜色

我的SSRS报告中有一个字段,其中包含用逗号分隔的一串数字(来自SQL中的coalesce select).它看起来像12,91,160,171,223.我想在字段中仅更改一个特定值(例如160)的文本颜色,如果该值也在报告的另一个字段中.

我已经有了这个字段属性的Font的表达式.

=iif(Fields!Store_Number.Value.ToString().Contains (Fields!DMHomeStore.Value)= True,"Red","Black")
Run Code Online (Sandbox Code Playgroud)

这会更改整个字段的文本颜色,而不仅仅是字符串中的ONE值.

基本上,如果DMHomeStore= 160,并且Store_Number在其字符串中有160,则在Store_Number字符串中仅使160红色.

fonts expression colors ssrs-2008

3
推荐指数
1
解决办法
2万
查看次数

将用户名和密码传递给get-credential或运行sql查询而不使用Powershell中的invoke-sqlcmd

我正在尝试连接到远程sql数据库,只需在Powershell中运行"select @@ servername"查询.我试图在不使用集成安全性的情况下这样做.我一直在努力使用"get-credential"和"invoke-sqlcmd",但却发现(我认为),你无法将密码从"get-credential"传递给另一个Powershell cmdlet.

这是我正在使用的代码:

add-pssnapin sqlserverprovidersnapin100
add-pssnapin sqlservercmdletsnapin100

# load assemblies
[Reflection.Assembly]::Load("Microsoft.SqlServer.Smo, `
      Version=9.0.242.0, Culture=neutral, `
      PublicKeyToken=89845dcd8080cc91")
[Reflection.Assembly]::Load("Microsoft.SqlServer.SqlEnum, `
      Version=9.0.242.0, Culture=neutral, `
      PublicKeyToken=89845dcd8080cc91")
[Reflection.Assembly]::Load("Microsoft.SqlServer.SmoEnum, `
      Version=9.0.242.0, Culture=neutral, `
      PublicKeyToken=89845dcd8080cc91")
[Reflection.Assembly]::Load("Microsoft.SqlServer.ConnectionInfo, `
      Version=9.0.242.0, Culture=neutral, `PublicKeyToken=89845dcd8080cc91")

# connect to SQL Server

$serverName = "HLSQLSRV03"
$server = New-Object -typeName Microsoft.SqlServer.Management.Smo.Server -argumentList $serverName

# login using SQL authentication

$server.ConnectionContext.LoginSecure=$false;
$credential = Get-Credential
$userName = $credential.UserName -replace("\\","")
$pass = $credential.Password
$server.ConnectionContext.set_Login($userName)
$server.ConnectionContext.set_SecurePassword($credential.Password)
$DB = "Master"

invoke-sqlcmd -query "select @@Servername" -database $DB -serverinstance $servername -username …
Run Code Online (Sandbox Code Playgroud)

powershell cmdlets sql-server-2008

2
推荐指数
1
解决办法
1万
查看次数