我正在为特定客户端编写 PowerShell 脚本。我在我们的几台台式机上测试了该脚本,并在客户端系统上尝试了该脚本。我遇到了以下问题:
问题 #1
作为一个优秀的小蜜蜂,我定义了一堆帮助文本,所以当你运行Get-Help
我的脚本时,它会给你详细的帮助。我使用了以下语法:
<#
Get-Help
.SYNOPSIS
C> FileWatcher.ps1 -FilePath <FileName> -SenderEmail Bob@Foo.com ^
-ToEmail Joe@Bar.com -SmtpServer smtp.foo.com
.DESCRIPTION
Blah, blah, blah...
#>
在我的机器上,它可以工作,这被认为是评论。但是,在客户端的机器上,一旦它看到C>
它认为是重定向的,就会产生一个错误。去掉#>
and<#
并#
在每行前面加上这个问题就解决了这个问题,给我们带来了问题 #2。
问题 #2
我定义了一堆这样的参数:
Param (
[ValidateScript({Test-Path $_ -PathType 'Leaf'})]
[Parameter(
Position=0,
HelpMessage="File you want to watch")]
$FilePath = "\\rke032\QuickCon\wincommlog.000",
[String]
[Parameter(
blah, blah, blah
PowerShell 咳嗽[ValidateScript({Test-Path $_ -PathType 'Leaf'})]
说它不是一个有效的类型。
正如我所说,我们在各种 Windows 机器上对此进行了测试。我有一台 Windows XP 机器。它是 PowerShell 版本 # 6.0.6002.1811。在另一台运行 Windows 7 的计算机上,PowerShell 版本为 6.1.7600。
在给我们这些错误的客户端机器(Windows 2008 Server)上,版本是 6.0.6001.18000。
我们通过打开一个 PowerShell 窗口来运行 Powershell 脚本,然后输入脚本的名称。ExecutionPolicy 设置为无限制。该脚本的末尾有一个 *.ps1 后缀。我不敢相信修订版 6.0.6002 和 6.0.6001 之间存在无法识别的语法问题之间的巨大差异。还有其他事情吗?