3

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.

それが問題の根源のようです。これを回避する方法はありますか?管理者としてサーバーにログオンしています。

4

2 に答える 2

9

管理者としてスクリプトを実行しても、ネットワーク共有 IIRC では問題ありません。デフォルトの共有許可では、読み取りのみが許可されます。共有への書き込みを許可するには、これらのパーマを更新する必要があります。

net share参考までに、Windows 7 で共有を作成するために を使用している場合は、 を使用して/grant:<users>,CHANGEこれらのアクセス許可をユーザーに付与する必要があります。

于 2011-01-20T21:51:35.653 に答える
2

Server 2003 R2 を使用しています。管理者は [セキュリティ] タブで完全なアクセス権を持っていましたが、[共有] タブ、アクセス許可に移動すると、全員が読み取りアクセスに設定されました。admin と自分自身をフル コントロールとして追加しました。

于 2011-01-21T15:54:16.210 に答える