String DateTime变量分析不正确,字符串有效

String DateTime变量分析不正确,字符串有效,string,parsing,powershell,datetime,culture,String,Parsing,Powershell,Datetime,Culture,我正在尝试将变量传递到powershell命令,如下所示: $Today=获取日期 获取SCSMClassInstance-Filter{ClosedDate-eq$Today} 但我得到了这个错误: Get-SCSMClassInstance : ClosedDate_C529833E_0926_F082_C185_294CBC8BB9FD='$Today' -- String was not recognized as a valid DateTime. At line:1 char:1

我正在尝试将变量传递到powershell命令,如下所示:

$Today=获取日期
获取SCSMClassInstance-Filter{ClosedDate-eq$Today}
但我得到了这个错误:

Get-SCSMClassInstance : ClosedDate_C529833E_0926_F082_C185_294CBC8BB9FD='$Today' 
-- String was not recognized as a valid DateTime.
At line:1 char:1
+ Get-SCSMClassInstance -ComputerName $computer $IncidentClass -Filter 
{ClosedDate ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidOperation: (Microsoft.Syste...InstanceComman 
   d:GetSCClassInstanceCommand) [Get-SCClassInstance], UnknownDatabaseException
+ FullyQualifiedErrorId : ExecutionError,Microsoft.SystemCenter.Core.Commands 
   .GetSCClassInstanceCommand
如果我直接传递字符串,无论格式如何,它都可以正常工作:

Get-SCSMClassInstance-Filter{ClosedDate-eq“2015年6月5日星期五上午11:42:33”
获取SCSMClassInstance-Filter{ClosedDate-gt“2015-6-5 11:42:33Z”}
我已经尝试将变量设置为DateTime和字符串,每种可以想象的格式-我已经确保,当解析变量时,它绝对会变成正确的字符串,但没有任何效果

有什么想法吗?

是字符串而不是脚本块。在其他情况下,它使用的是scriptblock,因为scriptblock的字符串形式是块的文本,没有周围的大括号。但是,在这种情况下,需要在过滤器中替换变量。试试这个:

Get-SCSMClassInstance -Filter "ClosedDate -eq ""$Today"""

太简单了!非常感谢!我不得不将整个表达式括在括号中-Get-SCSMClassInstance-Filter(“ClosedDate-eq$Today”),它成功了。