2
我嘗試從c#運行powershell
腳本。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'並編輯你的問題和結果。該命令將向您顯示不同的作用域及其ExecutionPolicy設置。 –