-1

PLC によってトリガーされる PowerShell v1 スクリプトがあります。組み込み PC のデスクトップからネットワーク パスにファイルをコピーする必要があります。

スクリプトを手動で実行すると問題なく動作しますが、スクリプトが PLC によってトリガーされると、次のエラーが発生します。

    + CategoryInfo : NotSpecified: (:) [コピー項目]、IOException
    + FullyQualifiedErrorId : System.IO.IOException,Microsoft.PowerShell.Commands.CopyItemCommand
copy-item : ユーザー名またはパスワードが正しくありません。

なぜこのエラーが発生するのか、ヒントをいただければ幸いです。

4

1 に答える 1

-1

コメントを読んだ後、@ TheIncorrigible1にご協力いただきありがとうございます。問題が見つかりました。

問題は、plc によって開始されたスクリプトが、手動で開始されたスクリプトとは別のユーザーで実行されることでした。

したがって、回避策は、最初に別のスクリプトで正しい資格情報を使用して powershell を起動することです。たとえば、次のようにします。

$usr = 'XXX'

$passwrd = 'XXX'

$securePassword = ConvertTo-SecureString $paswrd -AsPlainText -Force

$credential = 新しいオブジェクト System.Management.Automation.PSCredential $usr、$securePassword

$args = "/スクリプトへのパス"

Start-Process powershell.exe -Credential $credential -ArgumentList ("-file $args")

欠点...プレーンテキストのパスワード...

于 2017-12-19T07:41:50.270 に答える