C# 如何设置$ConfirmPreference=";无”;以PowerShell为例?
我正在尝试使用C# 如何设置$ConfirmPreference=";无”;以PowerShell为例?,c#,powershell,C#,Powershell,我正在尝试使用C#作为参考运行PowerShell脚本 到目前为止,我得到了: try { using (PowerShell PowerShellInstance = PowerShell.Create()) { PowerShellInstance.AddCommand(scriptPath); var PSOutput = PowerShellInstance
C#
作为参考运行PowerShell
脚本
到目前为止,我得到了:
try
{
using (PowerShell PowerShellInstance = PowerShell.Create())
{
PowerShellInstance.AddCommand(scriptPath);
var PSOutput = PowerShellInstance.Invoke();
if (PowerShellInstance.Streams.Error.Count > 0)
{
foreach (var line in PowerShellInstance.Streams.Error)
{
Console.WriteLine(line);
}
return false;
}
else
{
return true;
}
}
}
catch (Exception ex)
{
return false;
}
这会不断引发异常:
“授权管理器检查失败。”
内部异常:提示用户的命令失败,因为
主机程序或命令
类型不支持用户交互。主机正在尝试
请求确认,并显示以下消息:仅运行
你信任我。虽然来自internet的脚本可能很有用,但此脚本
可能会危害您的计算机。如果您信任此脚本,请使用
Unblock File cmdlet允许脚本在没有此警告的情况下运行
消息是否要运行C:\PowerShellScripts\MyScript.ps1
因此,查看异常
我可以看到,它要求我确认脚本,但没有用户交互的窗口,因此出现了异常
因此,我开始研究如何停止确认文本,并发现
但甚至还加上:
PowerShellInstance.AddScript("$ConfirmPreference = \"None\"");
PowerShellInstance.Invoke();
在执行之前,我的脚本不起作用。那么,是否有一种方法可以使用
C
为我的PowerShell实例设置$ConfirmPreference=“None”
?我认为这与执行策略有关。您可以使用CmdletGet ExecutionPolicy
查询执行策略。你可以:
设置执行策略不受限制
或
我认为这与执行政策有关。您可以使用Cmdlet
Get ExecutionPolicy
查询执行策略。你可以:
设置执行策略不受限制
或
我认为这与执行政策有关。您可以使用Cmdlet
Get ExecutionPolicy
查询执行策略。你可以:
设置执行策略不受限制
或
我认为这与执行政策有关。您可以使用Cmdlet
Get ExecutionPolicy
查询执行策略。你可以:
设置执行策略不受限制
或
虽然接受的答案解决了这个特定问题,但设置
$confirimpact
首选项变量的正确方法是通过会话状态:
var sessionState=InitialSessionState.CreateDefault();
添加(新的SessionStateVariableEntry(“ConfirmPreference”,ConfirmImpact.None,”));
使用(PowerShell shell=PowerShell.Create(sessionState))
{
//执行命令等
}
(这是针对从谷歌搜索结果来到这里的访问者)虽然公认的答案解决了这个特定问题,但设置
$confirimpact
首选项变量的正确方法是通过会话状态:
var sessionState=InitialSessionState.CreateDefault();
添加(新的SessionStateVariableEntry(“ConfirmPreference”,ConfirmImpact.None,”));
使用(PowerShell shell=PowerShell.Create(sessionState))
{
//执行命令等
}
(这是针对从谷歌搜索结果来到这里的访问者)虽然公认的答案解决了这个特定问题,但设置
$confirimpact
首选项变量的正确方法是通过会话状态:
var sessionState=InitialSessionState.CreateDefault();
添加(新的SessionStateVariableEntry(“ConfirmPreference”,ConfirmImpact.None,”));
使用(PowerShell shell=PowerShell.Create(sessionState))
{
//执行命令等
}
(这是针对从谷歌搜索结果来到这里的访问者)虽然公认的答案解决了这个特定问题,但设置
$confirimpact
首选项变量的正确方法是通过会话状态:
var sessionState=InitialSessionState.CreateDefault();
添加(新的SessionStateVariableEntry(“ConfirmPreference”,ConfirmImpact.None,”));
使用(PowerShell shell=PowerShell.Create(sessionState))
{
//执行命令等
}
(这是给从谷歌搜索结果中来到这里的访问者的)我的执行策略已经不受限制了。我认为问题更多地在于
确认首选项
进一步的信息发现文件已被阻止
但手动检查并解除阻止仍然有效。我还将自动执行此操作。谢谢我的执行策略已经是无限制的。我认为问题更多地在于确认首选项
进一步的信息发现文件已被阻止
但手动检查并解除阻止仍然有效。我还将自动执行此操作。谢谢我的执行策略已经是无限制的。我认为问题在于