2016-12-13 5 views
2

powershellスクリプトをC#から実行しようとしています。このシステムでスクリプトの実行が無効になっているため、ps1を読み込めません。

最初にExecutionPolicyUnrestrictedに設定し、スクリプトは現在PowerShell ISEから実行しています。

さて、これは#私のコードはC:

class Program 
{ 
    private static PowerShell ps; 
    static void Main(string[] args) 
    { 
     ps = PowerShell.Create(); 
     string ps1File = Path.Combine(Environment.CurrentDirectory, "script.ps1"); 
     ExecuteScript(ps1File); 
     Console.ReadLine(); 
    } 

    static void ExecuteScript(string script) 
    { 
     try 
     { 
      ps.AddScript(script); 
      Collection<PSObject> results = ps.Invoke(); 
      Console.WriteLine("Output:"); 
      foreach (var psObject in results) 
      { 
       Console.WriteLine(psObject); 
      } 
      Console.WriteLine("Non-terminating errors:"); 
      foreach (ErrorRecord err in ps.Streams.Error) 
      { 
       Console.WriteLine(err.ToString()); 
      } 
     } 
     catch (RuntimeException ex) 
     { 
      Console.WriteLine("Terminating error:"); 
      Console.WriteLine(ex.Message); 
     } 
    } 
} 

、出力は次のとおりです。実行中のスクリプトは、この システムで無効になっているため

PS1をロードすることはできません。詳細については、about_Execution_Policies( http://go.microsoft.com/fwlink/?LinkID=135170)を参照してください。

+1

は、ローカルマシンにポリシー適用範囲を設定しようとしたことがありますか? 'Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy Unrestricted' – user1432893

+5

'Get-ExecutionPolicy -List'を実行し、結果を使用して質問を編集します。このコマンドは、異なるScopeとそのExecutionPolicy設定を表示します。 –

答えて

0

これは、現在のユーザが定義されていないExecutionPolicyを持っている可能性があります。

次の操作を試みることができる:

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted 
関連する問題