我是PowerShell的新手,我有一个脚本来检索一些操作系统属性。它开始......
$ntfsDisableLastAccessUpdate = (Get-ItemProperty HKLM:\System\CurrentControlSet\Control\FileSystem -Name NtfsDisableLastAccessUpdate | Out-String).Split("`n")[2] -replace "\r",""
这似乎可以在本地运行它,但在其他地方运行时会产生以下错误:
Invoke-Expression : The term '���$ntfsDisableLastAccessUpdate' is not
recognized as the name of a cmdlet, function, script file, or operable
program. Check the spelling of the name, or if a path was included, verify
that the path is correct and try again.
At line:1 char:62
+
~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (���$ntfsDisableLastAccessUpdate
:String) [Invoke-Expression], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException,Microsoft.PowerShell.Co
mmands.InvokeExpressionCommand
有什么想法吗?
答案 0 :(得分:1)
���
肯定代表编码问题。这意味着问题在于如何保存文件以及如何读取文件。后者是一个缺失的重要部分。
我不明白为什么你会在本地使用Invoke-Expression
作为你的脚本。 Invoke-Expression
适用于字符串,这是否意味着您在脚本文件中读取字符串?
无论哪种方式from the comments,您都可以删除有问题的字符并继续前进。