标签: powershell

Write-SqlTableData:来自数据源的String类型的给定值不能转换为指定目标列的类型位

我正在尝试使用写入表Write-SqlTableData。由于它是公司数据库,因此名称已更改。

环境:

  • Windows 8.1和Powershell 5.0,SqlServer模块21.0.17099

命令:

Write-SqlTableData -DatabaseName 'dbname' -ServerInstance sql1 -TableName tablename -InputData (1,'1346',$false,'CalendarInvite') -Force -SchemaName "dbo"

错误: Write-SqlTableData : Input array is longer than the number of columns in this table.

表格栏:

  • ID:int身份
  • 范围:int
  • ContextID:ntext
  • FeatureEnabled:位
  • 类型:ntext

我不知道为什么会收到错误消息。四个值就足够了,我按列顺序给它们。

我也尝试使用哈希表,但是错误更加令人困惑。

  • 哈希表: @{Scope=1;ContextID='1346';FeatureEnabled=$false;Type='CalendarInvite'}

  • 错误: Write-SqlTableData : The given value of type String from the data source cannot be converted to type int of the specified target column.

我很困惑。我的命令怎么了?


编辑:该命令适用于我的测试SQL(13.0.1601.5),但适用于团队测试SQL(11.0.3156.0)。版本可能重要吗?

sql-server powershell

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

powershell中空数组和null的比较

码:

$arr=@() 
if($arr -ne $null){"NE"} else{"E"} 
if($null -ne $arr){"NE"} else{"E"} 
Run Code Online (Sandbox Code Playgroud)

输出:

E
NE 
Run Code Online (Sandbox Code Playgroud)

这怎么可能 ?

powershell

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

在文件中查找转义字符

我正在尝试在文件中找到回车符(\r)和新行(\n),但以下两个语句不返回任何内容:

Get-ChildItem -recurse | Select-String -pattern "\r" | group path | select name
Get-ChildItem -recurse | Select-String -pattern "\n" | group path | select name
Run Code Online (Sandbox Code Playgroud)

但是,tab(\t)转义字符似乎工作:

Get-ChildItem -recurse | Select-String -pattern "\t" | group path | select name
Run Code Online (Sandbox Code Playgroud)

string powershell design-patterns escaping

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

使用PowerShell更改IIS SSL设置

我是Windows PowerShell的新手.我正在尝试将IIS的默认网站的SSL设置更改 Required SSL = false and client certificate = ignoreRequired SSL = true and client certificate = accept使用PowerShell(我必须将其配置为ansible playbook)我已搜索但未获得任何解决方案.

在此输入图像描述

请帮助.任何线索或解决方案将不胜感激.:) 谢谢

windows iis powershell powershell-2.0 ansible

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

如何在Powershell tr​​y/catch块中放置变量

我的脚本中有一个变量用于我的路径:

$path = "C:\project\"
Run Code Online (Sandbox Code Playgroud)

然后在一个函数我有:

function DoWork {
    try 
    {
        C:\project\myapp.exe /silent
    }
    catch 
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

我想用变量替换try块中的字符串文字.我已经尝试将$ {path}放在那里,并且($ path +"myapp.exe/silent")以及其他组合,但我似乎仍然得到错误.

用路径变量替换文字路径的正确方法是什么?

string powershell

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

在关键/值对中拆分hastable

如何从特定键/值对开始拆分哈希表?

我有以下哈希表,只是更长:

Name               Value
----               -----
Name               Alpha
Age                    2
Position           Trick
Start date      01-01-31
End date         Unknown
Name               Corax
Age                   21
Position           Sneak
Earnings          40'000
End Date         Unknown
Name               Horus
Age                   22
Position            Dead
Why               Heresy
End date        03-30-30

我尝试Group-Object但失败了.

我特别想把它与名字分开,除名字,年龄和位置之外的一切都不一致.

我的实际问题是我想在为什么 = 异端时解析名称年龄的哈希表,不幸的是,数据的原始来源是字符串列表,这就是我将其转换为哈希表的原因.

powershell hash split hashtable

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

Powershell无法正确呈现我的脚本帮助

我有一个Powershell脚本,在它的开头有一个很大的帮助,用Get-Help命令显示- https://gist.github.com/MarkKharitonov/91698caf8c695902eacde2b6c7825bf1

我提供帮助的方式有两个问题.特别是与该.EXAMPLE部分.这是帮助的缩写版本(请参阅脚本完整版的超链接和帮助):

<#
.SYNOPSIS
    Runs a WinDBG command or a script file.

...

.NOTES
    The default is to scan for images using the .imgscan /l. One has to check first with the WinDBG GUI to see if this is necessary, because this is a time consuming operation.

.EXAMPLE
    Please, find below a PowerShell session transcript showing the script invoked with the -Command parameter:

    PS D:\tmp\cantestr52 - 06-09-2017> cat C:\Users\mkharitonov\runcdb.config.ps1
    $Sosex = "E:\Utils\sosex\64\sosex.dll"
    $CDB = "e:\Program …
Run Code Online (Sandbox Code Playgroud)

powershell

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

使用输出运算符在powershell中命名.txt文件

我正在尝试创建一个变量,它将使用powershell中的输出运算符命名文本文件.第一个例子是通常在没有变量(有效)的情况下完成的事情,第二个例子是我尝试这样做的方式(它不起作用).

例I:

"hello" >> janice.txt
Run Code Online (Sandbox Code Playgroud)

我们可以看到,示例I的结果将是一个名为janice.txt的文本文件

例II.

$i = "janice"
"hello" >> $i.txt
Run Code Online (Sandbox Code Playgroud)

我期望从示例II得到的结果将是一个名为:janice.txt的文本文件,就像第一个示例一样,因为变量$ i存储字符串"janice".

Powershell正在执行命令而没有错误,但没有创建.txt文件.我试图弄清楚为什么它不起作用,如果有的话,它是完全无关紧要的.

这是我第一次提出问题,所以如果它是罗嗦而且含糊不清,我会事先道歉.

windows powershell

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

Powershell哈希表导出为CSV

我正在尝试创建一个CSV导出文件,其中包含数据电子表格中的所有行,其中显示了搜索电子表格中的ID。

我现在已经设法通过PowerShell创建了搜索元素,但是在将数据导出为CSV格式时遇到了麻烦。

以下是一些示例表,实际数据最多包含8个值(包括ID列),但保证仅前三个值可被填充。

数据表

+------+---------+---------+---------+---------------------+ | ID | Value 1 | Value 2 | Value 3 | Value 4 | +------+---------+---------+---------+---------------------+ | 1234 | London | Serial1 | HP | Laptop User | | 2345 | Moscow | Serial7 | | HR Application | | 1234 | London | Serial9 | | Finance Application | | 3456 | Madrid | Serial4 | HP | Laptop User | +------+---------+---------+---------+---------------------+

搜索电子表格

+------+ | ID | +------+ | 1234 | | 2345 | …

csv powershell hashtable export-to-csv powershell-4.0

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

PowerShell"get-childitem2"大小超过~3.5gb

此链接指向Get-Childitem2,该功能允许遍历260个字符的限制.

https://gallery.technet.microsoft.com/scriptcenter/Get-ChildItemV2-to-list-29291aae#content.

这是一个非常好用的功能,然而,它误报文件大小超过~3.5GB,这是我运行它的全部原因.我很难承认我只是不够好找到并修复代码,所以它准确地报告文件大小超过~3.5GB.

我想它在这里的某个地方; 因为似乎没有'nFileSizeHigh'选项:

                    } Else {
                    $Object.Length = [int64]("0x{0:x}" -f $findData.nFileSizeLow)
                    $Object.pstypenames.insert(0,'System.Io.FileInfo')
                }
Run Code Online (Sandbox Code Playgroud)

我选择了Robocopy和AlphaFS,因为我对它们都有各种各样的问题.文件大小问题示例:

get-childitem C:\ Temp\Huge :(正确的大小,以字节为单位)

3166720000 - sp1_vl_build_x64_dvd_617403.iso
5653628928 - server_2016_x64_dvd_9327751.iso
4548247552 - it_English_-3_MLF_X19-53588.ISO

get-childitem2 C:\ Temp\Huge:

3166720000 - sp1_vl_build_x64_dvd_617403.iso
1358661632 - server_2016_x64_dvd_9327751.iso
253280256 - it_English_-3_MLF_X19-53588.ISO

powershell get-childitem

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