我编写了一个脚本,通过运行批处理文件,可以在通过Wi-Fi或有线Internet连接计算机之间进行切换。我写这个是因为我不喜欢每次输入用户名和密码在两者之间切换。以管理员身份运行PowerShell脚本,而无需输入密码
注:我必须启用UAC,所以不幸的是关闭它不是一个选项。
它查看无线适配器的状态。如果它当前已启用,则会关闭无线适配器并启用有线适配器。如果无线没有启用,它将启用和禁用有线。这是代码。
$adapter = Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE -ComputerName . | Where-Object {$_.ServiceName -ne "hamachi"}
function wirelessOn
{
$wireless = Get-WmiObject -Class Win32_NetworkAdapter | Where-Object {$_.Name -like "*Wireless*"}
$wireless.Disable()
$wired = Get-WmiObject -Class Win32_NetworkAdapter | Where-Object {$_.Name -like "*gigabit*"}
$wired.Enable()
}
function wirelessOff
{
$wired = Get-WmiObject -Class Win32_NetworkAdapter | Where-Object {$_.Name -like "*gigabit*"}
$wired.Disable()
$wireless = Get-WmiObject -Class Win32_NetworkAdapter | Where-Object {$_.Name -like "*Wireless*"}
$wireless.Enable()
}
switch -wildcard ($adapter.description){
"*wireless*" {
wirelessOn
}
"*gigabit*" {
wirelessOff
}
}
不幸的是,这个脚本只有正常运行,如果以管理员身份运行,因此整个原因,我写的是没有实际意义。有没有办法让我可以提升管理员权限而无需执行任何操作?
+0
实际上,你问如何运行,而不必应付UAC提升的脚本。这完全否定了UAC的全部观点。如果你能做到这一点,这将是UAC的严重漏洞,你不觉得吗? –
+0
我不这么认为。因为我知道可以通过文本文件或硬编码将凭据传递给UAC。我知道这是可能的,因为我相当确定的服务器一直在等待系统管理员登录并单击“是” –