【问题标题】:How can I confirm that I do want to disable the network adapter in c#?如何确认我确实要在 c# 中禁用网络适配器?
【发布时间】:2019-12-06 00:10:04
【问题描述】:

我查看了How do I automatically answer "yes" to a prompt in Powershell?,但这些解决方案不起作用。

我尝试将-Force 添加为参数,但出现错误:

Get-NetAdapter : 找不到与参数名称“Force”匹配的参数。

我正在尝试在 c# 中运行以下 powershell 脚本来禁用 WiFi:

using (PowerShell PowerShellInstance = PowerShell.Create())
{
    PowerShellInstance.AddScript($"get-netadapter wi-fi | disable-netadapter");
    PowerShellInstance.Invoke();
}

但是当我这样做时,我得到了错误:

提示用户的命令失败,因为主机程序或命令类型不支持用户交互。主持人试图通过以下消息请求确认:您确定要执行此操作吗? 禁用-NetAdapter 'Wi-Fi'"'

如何通过 c# 告诉脚本我确实希望发生这种情况?

【问题讨论】:

标签: c# powershell


【解决方案1】:

只需将确认设置为 false(您希望它确认)。

using (PowerShell PowerShellInstance = PowerShell.Create())
{
    PowerShellInstance.AddScript($"get-netadapter wi-fi | disable-netadapter -Confirm:$false");
    PowerShellInstance.Invoke();
}

另一种方法,在使用 C# 时,在 Initial Session 状态下将确认首选项设置为None

var sessionState = InitialSessionState.CreateDefault();
sessionState.Variables.Add(new SessionStateVariableEntry("ConfirmPreference", ConfirmImpact.None, ""));

using (PowerShell PowerShellInstance = PowerShell.Create(sessionState))
{
    PowerShellInstance.AddScript($"get-netadapter wi-fi | disable-netadapter");
    PowerShellInstance.Invoke();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-22
    • 1970-01-01
    • 2019-07-11
    • 1970-01-01
    • 1970-01-01
    • 2012-08-05
    相关资源
    最近更新 更多