このシステムではスクリプトの実行が無効になっているため、ps1 をロードできません。質問する

このシステムではスクリプトの実行が無効になっているため、ps1 をロードできません。質問する

powershellC# からスクリプトを実行しようとしています。

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

ベストアンサー1

これは、現在のユーザーが未定義の を持っていることが原因である可能性がありますExecutionPolicy

PowerShell で管理者として以下を試すことができます。

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted

おすすめ記事