特定のクライアント用の PowerShell スクリプトを作成しています。私はいくつかのデスクトップ マシンでスクリプトをテストし、クライアントのシステムでスクリプトを試しました。次の問題に遭遇しました。
問題#1
良い小さな Do Bee として、私は一連のヘルプ テキストを定義しました。そのため、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 にそれほど大きな違いがあり、認識されない構文の問題があるとは信じられません。他に何かありますか?