为了账号安全,请及时绑定邮箱和手机立即绑定

如何在没有管理员权限的情况下使用 Powershell 或 C# 重新启动图形驱动程序

如何在没有管理员权限的情况下使用 Powershell 或 C# 重新启动图形驱动程序

C#
牧羊人nacy 2023-09-09 17:14:23
我需要在用户不应具有管理员权限的计算机上自动重新启动图形驱动程序。我的归档选项是使用 powershell 或从 powershell 调用的 C# 代码。这个问题中提到了重新启动图形驱动程序的最简单方法: PowerShell禁用和启用驱动程序 $d = Get-PnpDevice| where {$_.class -like "Display*"}  $d  | Disable-PnpDevice -Confirm:$false  $d  | Enable-PnpDevice -Confirm:$false但我无法使用它,因为它需要管理员权限才能执行。第二种也是更好的方法是使用 win + ctrl + shift + b 热键,它不需要管理员权限。我在这个网站上找到了一个如何组合按下 win 键的好例子:https://github.com/stefanstranger/PowerShell/blob/master/WinKeys.ps1并根据我的需要构建它。我的实际代码是这样的:    $source = @"    using System;    using System.Collections.Generic;    using System.Linq;    using System.Text;    using System.Threading.Tasks;    using System.Runtime.InteropServices;    using System.Windows.Forms;    namespace KeyboardSend    {        public class KeyboardSend        {            [DllImport("user32.dll")]            public static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);            private const int KEYEVENTF_EXTENDEDKEY = 1;            private const int KEYEVENTF_KEYUP = 2;            public static void KeyDown(Keys vKey)            {                keybd_event((byte)vKey, 0, KEYEVENTF_EXTENDEDKEY, 0);            }            public static void KeyUp(Keys vKey)            {                keybd_event((byte)vKey, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);            }        }    }# 163 = ctrl key# 161 = shift key# 66 = b key如果我尝试除了 win + e 之外的其他组合来打开资源管理器,它就可以正常工作。但是,如果我想输入 win + ctrl + shift + b ,它什么也不做,并且会自行关闭,并且不会显示错误消息。我错过了什么吗?
查看完整描述

1 回答

?
眼眸繁星

TA贡献1873条经验 获得超9个赞

对于未来的读者。代码运行良好,但我公司 AD 中的组策略导致执行失败。

不管怎样,我的主管决定采用一种不同的方式来测试数百个组策略的错误。


查看完整回答
反对 回复 2023-09-09
  • 1 回答
  • 0 关注
  • 104 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信