【发布时间】:2020-06-27 01:11:31
【问题描述】:
我需要为我的客户开发一个脚本来禁用/启用他笔记本电脑上的 WWAN 卡。
- 客户端应该能够在不提供客户端管理员凭据或帐户的情况下启用/禁用 WWAN 卡
- 应该是用户友好的。就像双击桌面上的启用或禁用快捷方式来打开/关闭一样。
- 避免使用任何可能危及安全的方法,例如禁用所有应用程序对提升凭据提示的需要。 (只想绕过这个脚本)
我有禁用/启用 WiFi 适配器的命令。但是,它要求 powershell 以管理员身份运行,否则访问将被拒绝。
Disable-NetAdapter -Name "Wi-Fi" -Confirm:$false
我尝试了以下没有成功。 (访问被拒绝或 UAC 弹出并提示输入管理员凭据):
- 使用 ExecutionPolicy -Bypass 创建运行 PS 脚本的 .Bat 文件
powershell.exe -executionpolicy bypass -windowstyle hidden -noninteractive -nologo -file "c:\Users\%username%\Desktop\DisableWifi.ps1"
- 在启用“以管理员身份运行”的情况下创建 PS 脚本的快捷方式
- 使用以管理员身份运行的 .Bat 文件创建快捷方式,以启用/禁用网络适配器。
netsh interface set interface Wi-Fi disable
- PS 脚本内的 ExecutionPolicy 绕过
Start-Process powershell.exe -ArgumentList "/noexit", "-executionpolicy bypass","-file C:\Users\$env:UserName\Desktop\DisableWiFi.ps1"
是否允许我的客户无需输入管理员凭据即可通过桌面上的脚本打开/关闭 WWAN 卡?
谢谢!
【问题讨论】:
-
能够绕过脚本中的安全限制将是一个大问题。请通知您的客户,他们的请求是不可能的。
-
您已经违反了通过 ExecutionPolicy 使用 ByPass 的安全规则。你为什么做这个?这样做的唯一原因是公司 ExecutionPlicy 设置为 Restricted 或 RemoteSigned。这意味着他们根本不希望脚本代码运行,或者您需要对脚本进行签名。管理方面的事情,如果不完全禁用 UAC 就无法完成,这是不明智的。更谨慎的做法是将其设置为使用所需凭据运行的计划任务。
-
有专门用于此目的的工具。以管理员身份安装,设置要启用的适配器及其设置的配置文件,然后作为标准用户,他们可以单击当时要启用的配置文件。尝试谷歌搜索“网络设置管理器”
-
是this 你在找什么?
-
“您已经违反了通过 ExecutionPolicy 使用 ByPass 的安全规则” - 我不得不不同意这种说法,因为 PowerShell 执行策略是一项安全功能,不是 i> 安全边界(请参阅 PowerShell 语言的首席设计师 Bruce Payette 在stackoverflow.com/questions/49772982 处接受的答案)。
标签: powershell batch-file uac administrator elevated-privileges