0

特定のクライアント用の 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 にそれほど大きな違いがあり、認識されない構文の問題があるとは信じられません。他に何かありますか?

4

1 に答える 1

1

$PSVersionTableビルド バージョンではなく、の出力を比較します。特にPSVersion物件は面白いです。あるマシンに PS1 があり、別のマシンに PS2 があると思います。拡張機能は.ps1、PowerShell のバージョンに関係ありません。

この推測は、ブロック コメントが機能せず、パラメーター属性も機能しないことに気付くことで補強されます。

于 2012-04-19T20:14:22.597 に答える