2
powershell
スクリプトをC#から実行しようとしています。このシステムでスクリプトの実行が無効になっているため、ps1を読み込めません。
最初にExecutionPolicy
をUnrestricted
に設定し、スクリプトは現在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)を参照してください。
は、ローカルマシンにポリシー適用範囲を設定しようとしたことがありますか? 'Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy Unrestricted' – user1432893
'Get-ExecutionPolicy -List'を実行し、結果を使用して質問を編集します。このコマンドは、異なるScopeとそのExecutionPolicy設定を表示します。 –