2011-01-20 9 views
3

私は毎日の仕事の多くをpowershellで自動化したいと思っています。私たちが持っているプロセスの1つは、数時間後にイメージングデスクトップです。この操作が完了したら、イメージファイルをサーバーハードドライブからネットワークドライブに移動する必要があります。 PowerShellスクリプトを呼び出してすべてをノックアウトし、問題があるときだけ私に警告する、私のマシン上でサービスとして動作するアプリを書いています。ネットワーク共有上のファイルを移動する

スクリプト用にサーバー上にディレクトリを設定しました。

RunScript(LoadScript(@"\\Server\ServerShare\FileCopy.ps1")); 

doesnの」:

copy-item C:\scripts\myFile1.txt -destination C:\scripts\myFile2.txt 

しかし、私の.Netアプリで、私は私のローカルマシンからスクリプトを呼び出す:私は、サーバーから、私のスクリプト、FileCopy.ps1を呼び出す場合は正常に動作します仕事。これは、C:\ scriptsがローカルマシン上にあるとみなすためです。したがって、私はそれを変更します:

動作しません。それはまだ、ファイルをコピーしません

copy-item \\Server\ServerShare\myFile1.txt -destination \\Server\ServerShare\myFile2.txt 
get-childitem \\Server\ServerShare | format-table name 

、それは、サーバー上のスクリプトディレクトリの内容を返すん:私は、スクリプトに別の行を追加します。

だから私は戻ってサーバーにアクセスし、所定の位置にUNCパスでスクリプトを実行 - PowerShellは問題の根本であるように思わエラー

Copy-Item : Access to the path '\\Server\ServerPath\myFile2.txt' is denied. 

を返します。どのように私はこれを回避することができます任意のアイデア?私は管理者としてサーバーにログオンしています。

答えて

9

スクリプトをadminとして実行することは、ネットワーク共有IIRCでは問題ありません。デフォルトの共有パーミッションは読み取りのみを許可します。これらのパーマは、共有に書き込むことができるように更新する必要があります。

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

+0

許可されました。キースありがとう! – deweycooter

+0

その場合は、これを回答としてマークすることができます。 :-) –

2

私はServer 2003 R2を使用しています。管理者は[セキュリティ]タブの下で完全なアクセス権を持っていましたが、[共有]タブ、権限、およびEveryoneが読み取りアクセスに設定されました。私は管理者と自分自身をフルコントロールとして追加しました。今は人生が良いです!!

関連する問題