2011-07-19 21 views
4

私たちのアプリケーションをインストールするだけでなく、ファイルをリモートアプリケーションサーバーにコピーしてそこにサービスをインストールするセットアップパッケージを作成しようとしています。私は、カスタムアクションでinstallメソッドをオーバーライドして、ファイルをコピーするためのPowerShellスクリプトを起動させることを考えました。セットアッププロジェクトを使用してリモートサーバーにファイルをコピーする

システムのセキュリティを侵害する可能性の試みを検出した:コードは、PowerShellスクリプトを呼び出すとき残念ながら、私はこのCmdletProviderInvocationExceptionが得ます。あなたを認証したサーバーに連絡できることを確認してください。

PowerShellスクリプトをテストプロジェクトに呼び出すために使用しているコードをコピーできました。これは、Windowsエクスプローラを介してサーバーにログインしているので、私の予想通りです認証する必要があります。私はスクリプトがインストーラによって呼び出されたときにスクリプトが動作しない理由は、インストーラがユーザーを切り替えてアプリケーションをインストールするための管理者権限を取得し、管理者ユーザーが認証されていないことです(私は間違っている可能性があります)。

どのように私はこれを動作させることができるか知っていますか?ここで

は、カスタムアクションコードです:

Runspace runspace = RunspaceFactory.CreateRunspace(); 
runspace.Open(); 

Pipeline pipeline = runspace.CreatePipeline(); 
string scriptLoc = "c:\\sampleLocation"; 
pipeline.Commands.AddScript("&\"" + scriptLoc + "\\script.ps1\""); 

Collection<PSObject> results = pipeline.Invoke(); 

runspace.Close(); 

、ここではスクリプトです:

$RemotePath = "\\SERVER\C$\Shared\Service" 
$Source = "C:\sampleLocation\Service" 

Get-ChildItem $Source -Recurse | Copy-Item -Destination $RemotePath 
+0

どのオペレーティングシステムでセットアップを実行していますか? – JPBlanc

+0

Windows 7および/またはWindows Server 2003で動作する必要があります –

+0

私はそれを理解したと思いますが、それは醜いです。私はバッチファイルを呼び出すカスタムアクションを持っています: runas/netonly/user:DOMAIN \ user "powershell& 'C:\ path \ script.ps1'" これは完全に自動ではない。私はSendKeysを調べるかもしれません(私はダクトテープと紙クリップを使用しているような気がします...) –

答えて

2

ネットワーク上の場所にファイルをコピーするための2つの主要な要件があります。

  • カスタムアクションを実行する必要がありますwithout impersonation
  • ネットワークの場所にEveryoneのフルアクセス許可が必要です

MSIインストールはローカルシステムアカウントで実行されます。したがって、あなたがパーミッションを持っているかどうかは関係ありません。

ネットワークマシンからSYSTEMアカウントにアクセス許可を与えるのは簡単ではないため、最も簡単な方法はEveryoneに完全なアクセス許可を与えることです。これは、共有フォルダを含むマシン上で行う必要があります。 @Cosmin PirvuとMicrosoftのドキュメントによると

+0

Windowsでは7つのMSIインストールが 'LocalSystem'アカウントまたは 'TrustedInstaller'で実行されますか? – JPBlanc

0

LocalSystemアカウントは、サービスコントロールマネージャによって使用される定義済みのローカルアカウントです。ローカルコンピュータ上で広範な権限を持ち、ネットワーク上のコンピュータとして機能します。

共有フォルダがドメインにあるコンピュータにある場合、Everyoneに与えても、クライアントコンピュータに完全なアクセス許可を与えることができます。

enter image description here

関連する問題