首先:我发现了很多问题,这些问题可以解决所有问题,但可以绕过UAC。我是一家小企业的IT人员,但这不是我的主要责任。
我的域中有两台机器在启动时经常无法正确连接到域网络。重新启动网络适配器可修复此问题,直到计算机重新启动。不幸的是,其中一台机器是由非管理员使用的,而且是一个技术文盲。
我希望使用powershell脚本来实现这一点。使用这个网站,我创建了脚本和批处理文件来解决这个问题。由于电脑只有一个网络适配器,我就简单地说:互联网.ps1
Get-NetAdapter | Restart-NetAdapter
internet.cmd
@ECHO OFF
SET ThisScriptsDirectory=%~dp0
SET PowerShellScriptPath=%ThisScriptsDirectory%internet.ps1
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Start-Process PowerShell -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File ""%PowerShellScriptPath%""' -Verb RunAs}";
很遗憾,我不完全理解批处理文件中的最后一个命令。因此,我很难研究传递某种形式的用户凭据的命令。这个环境不是很安全。但我一般不想给这个用户域管理员权限,也不想给他们提供一些管理员凭据,这些凭据最终会出现在便签上。无论哪种选择都会招致我那些年纪较大、技术上不识字的同事的麻烦。而且每天都要去打卡是很耗时的。
我正在寻找一个脚本,它可以循环网络适配器,并提供必要的凭据来进行更改,这样非管理员用户就可以修复他们的域和互联网访问,而无需在便利贴上提供管理员凭据。
您可以在Windows中使用任务调度程序来调度任务。安排任务时,可以指定任务运行时要使用的凭据。你可以为这个任务添加一个触发器,让它在计算机启动时运行,也可以简单地允许用户手动启动它
如果您决定走这条路,您可以选中一个复选框,该复选框以尽可能高的权限运行程序。最后一行的全部内容是启动一个以管理员身份运行的新PowerShell窗口,以便它实际上有权重新启动适配器。这意味着您可以去掉几乎整个脚本,只保留实际重新启动适配器的部分。
例如,当您在"任务调度器"中的"操作"选项卡下创建新任务时,可以创建新操作并输入以下内容:
程序/脚本:
PowerShell
添加参数:
-命令"Get-NetAdapter|Restart-NetAdapter">
注意:我不确定情况是否仍然如此,但根据我过去的经验,有时它会在Windows完全加载之前尝试运行。如果它在启动时似乎什么都没做,你可能需要添加一个延迟。你可以通过运行
Start-Sleep
命令来做到这一点。您可以通过执行以下操作将其添加到arguments字段:-Command"Start Sleep 5;Get-NetAdapter|Restart NetAdapter">将数字5替换为您希望它等待的秒数