PowerShellを使用して日常のタスクの多くを自動化したいと考えています。私たちが行っているプロセスの1つは、数時間後にデスクトップをイメージングすることです。この操作が完了したら、イメージファイルをサーバーのハードドライブからネットワークドライブに移動する必要があります。私は自分のマシンでサービスとして実行するアプリを作成しています。このアプリは、PowerShellスクリプトを呼び出してすべてをノックアウトし、問題が発生した場合にのみ警告を発します。
サーバー上にスクリプト用のディレクトリを設定しました。サーバーからスクリプトFileCopy.ps1を呼び出すと、正常に機能します。
copy-item C:\scripts\myFile1.txt -destination C:\scripts\myFile2.txt
ただし、.Netアプリでは、ローカルマシンからスクリプトを呼び出します。
RunScript(LoadScript(@"\\Server\ServerShare\FileCopy.ps1"));
動作しません。これは、C:\scriptsがローカルマシン上にあると見なすためです。だから、私はそれを変更します:
copy-item \\Server\ServerShare\myFile1.txt -destination \\Server\ServerShare\myFile2.txt
動作しません。スクリプトに別の行を追加します。
copy-item \\Server\ServerShare\myFile1.txt -destination \\Server\ServerShare\myFile2.txt
get-childitem \\Server\ServerShare | format-table name
それでもファイルはコピーされませんが、サーバー上のscriptsディレクトリの内容が返されます。
だから私はサーバーに戻り、UNCパスを配置してスクリプトを実行します-powershellはエラーを返します
Copy-Item : Access to the path '\\Server\ServerPath\myFile2.txt' is denied.
それが問題の根源のようです。これを回避する方法はありますか?管理者としてサーバーにログオンしています。