2017-01-19 6 views
0

PowerShellスクリプトがあります。これはサーバー上で手動で実行したので動作します。しかし、私たちのサーバーのC#コードからうまく動作するようにはできません。それはコードを使って2つの他のコンピュータで動作しますが、実行する必要のあるサーバでは動作しません。私たちのサーバーのいずれかでC#コードからPowerShellスクリプトを実行できません

スクリプトを実行するコード: https://blogs.msdn.microsoft.com/kebab/2014/04/28/executing-powershell-scripts-from-c/

コードは上の動作するので:私は他のバリエーションを試してみましたが、我々はPowerShellのv1.0を実行しているし、それがソリューションをサポートdoes notの

var process = new Process();   
process = Process.Start("C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\Powershell.exe", "C:\\CC\\Script\\script.ps1"); 

に2台のコンピュータが、私たちはそれを使う必要があるサーバ上ではなく、私は実行ポリシーをチェックしました。そしてそれらはすべて "RemoteSigned"でした。

他にも何ができますか?別のコードセットと違いがありますか?PowerShell v1.0では、代わりに使用できるコードの良い例がありますか?違いを生む可能性のある他のポリシー

事前にのthnx PowerShellを管理者権限で

+1

エラーメッセージが表示されますか? – stuartd

+0

私は正確なエラーメッセージatmを持っていません。しかし、私はC#コードで標準エラーを表示し、プロセスが開始されていないと言いました。スクリプトそのものは、プロセス情報を含むフォルダを作成しますが、フォルダは作成されません。したがって、スクリプトはまったく実行されません。それでも私はキャッチブロックで例外を取得せず、終了コードは私に "1"を与えます。 –

+0

スクリプトが実行されているアカウントに、そのサーバーに適切な権限がありますか?サーバーのイベントログに適用できるものは何ですか? – stuartd

答えて

1

このコマンドを使用:

Set-ExecutionPolicy Bypass -Force 

ともC#1に正しい、それを渡すためにスクリプトのパスについての世話をします。

+0

それは私が決してサーバー上でやっていないことです。特にバイパスではありません。 – Joey

+0

これは私たちの顧客のサーバーの1つであり、決してそのような変更を受け入れることはありません。実行ポリシーはローカルで試しても同じですが、動作するので必要ありませんか? –

+0

グローバルレベルで実行するのではなく、引数 "-ExecutionPolicy C:\\ CC \\ Script \\ script.ps1"をバイパスしてコマンドを一回実行するだけで、ポリシーをバイパスしますこの単一のセッションのためだけに。 –

関連する問題