无法将System.Object []转换为类型{System.String,System.Management.Automation.ScriptBlock}

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法将System.Object []转换为类型{System.String,System.Management.Automation.ScriptBlock}相关的知识,希望对你有一定的参考价值。

当我在Powershell中使用Invoke-command时,Select-object会在程序中生成错误。

$pc='server1','server2'

$csv = "\mypcc$UsersmeDesktopScriptPC2Length.csv"
$command=Get-ChildItem -Path C:Users -Exclude C:Users*AppData -Recurse -Force -File | 
where Length -gt 300mb | Sort-Object -Property Length -descending | 
Out-String -stream | Select-Object -Property $pc,Directory,Name,$properties | 
Export-Csv -Path $csv -Delimiter ';' -Encoding UTF8 -NoTypeInformation

Invoke-Command -Computername $pc -ScriptBlock {$command}

这是错误代码:

Select-Object : Impossible de convertir System.Object[] dans l’un des types suivants {System.String, System.Management.Automation.ScriptBlock}.
Au caractère C:UsersmeDesktopScriptScanPC.ps1:40 : 22
+ ... ng -stream | Select-Object -Property $pc,Directory,Name,$properties |
答案

最后我发现了我的错误,我的变量没有被声明为“Invoke-Command”。

但是,当我使用Invoke-Command在远程服务器中启动命令时,我在多个服务器上收到此错误:

Impossible de trouver un paramètre correspondant au nom « File ».
+ CategoryInfo          : InvalidArgument : (:) [Get-ChildItem], ParameterBindingException
+ FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
+ PSComputerName        : Server1

我发送的命令是:

Get-ChildItem -Path C:Users -Recurse -Force -File | 
Sort-Object -Property Length -descending | 
Select-Object -Property Directory,Name,$properties | 
Export-Csv -Path \Server2c$scriptLogERfile.csv -Delimiter ';' -Encoding UTF8 - 
NoTypeInformation

当我将Get-Child项目命令启动到Server2并将输出保存到Server2文件时,它工作,但Server1到Server2不工作

以上是关于无法将System.Object []转换为类型{System.String,System.Management.Automation.ScriptBlock}的主要内容,如果未能解决你的问题,请参考以下文章

无法将对象类型“System.Web.Mvc.HtmlHelper` 1 [System.Object]”转换为“System.Web.Mvc.HtmlHelper”

无法将类型“System.Nullable`1”强制转换为类型“System.Object”。LINQ to Entities 仅支持强制转换 EDM 基元或枚举类型。

无法将System.Object []转换为类型{System.String,System.Management.Automation.ScriptBlock}

无法将类型为“Newtonsoft.Json.Linq.JObject”的对象转换为类型“System.Collections.Generic.Dictionary`2[System.String,S

C# - 将列表 System.Object[] 转换为列表 System.Int32[]

C#中的装箱事件