web-dev-qa-db-ja.com

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

C#からpowershellスクリプトを実行してみます。

まず、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=13517 を参照してください。

38
user979033

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

以下を試すことができます:

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted
125
Tom

管理モードでPowerShellを開き、次のコマンドを実行します

Set-ExecutionPolicy RemoteSigned

14
Sunny

PowerShell実行ポリシーは、デフォルトで制限付きに設定されています。 Set-ExecutionPolicyコマンドレットを使用して、PowerShell実行ポリシーを変更できます。スクリプトを実行するには、ポリシーをRemoteSignedに設定します。

PS C:> Set-ExecutionPolicy RemoteSigned以下は、PowerShellの4つの異なる実行ポリシーのリストです。

制限–スクリプトは実行できません。 AllSigned –信頼できる発行元によって署名されたスクリプトのみを実行できます。 RemoteSigned –ダウンロードしたスクリプトは、信頼できる発行元によって署名されている必要があります。無制限–すべてのWindows PowerShellスクリプトを実行できます。

3
Nabeh Nabeh

windows PowerShellを管理者モードで開き、次のコマンドとその作業を実行します。

Set-ExecutionPolicy RemoteSigned

2
akshay jain

このコードをpowershellまたはcmdで実行します

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
0
Harrish