比如,我有管理员账户,我能不能让a用户听声音,b用户不能听声音?
注:此机为专用机,开机不会加载explorer.exe进程,只能使用指定程序,见图方法二。
禁用explorer后,貌似放在startup文件夹内的批处理也不会运行,故不能在进入后自己禁用硬件
请问此机如何解决这个问题?
把你开机运行的那个指定程序,改成一个bat文件,bat文件里的命令为
@echo off
set b=要静音的用户名
for /f %%i in ('whoami') do (set a=%%i)
echo %a%| findstr %b% >nul && (sc stop AudioSrv) || (sc start AudioSrv)
start 要启动的程序.exe
exit
先判断一下当前用户名是不是指定的用户,是的话停止音频服务,其中 sc stop AudioSrv就是静音
大概就是这么个思路,但这个代码我没测试,比如执行是否有权限之类的,会不会UAC阻止了,但思路应该可以参考一下
哈哈哈哈好家伙,这个问题第一次遇见,我想起上周帮同事重装系统,重装完后他就听不到声音了,在他电脑上登录另外一个用户(我们新创建的)然后声音是可以的,后面发现是被禁用了。
就是电脑听不到声音和听到跟硬件驱动有关,还跟服务管理有关的,老兄可以试试MSC那个指令打开服务管理,不想让听到声音的用户设置那个(搜索一下win听不到声音就知道了是哪个了)为手动启动就好啦。
当然我没试过,不过感觉只有这样可行了,注册表里删那些不行的,只跟整个机子有关,所以看到这种的不必为此浪费时间了,时间就是生命,注意防护!!
写一个服务或者写一个批处理(写一个开声音和关闭声音的注册表文件,不同用户导入开或者关.reg,直接操作注册表也行),系统启动时调用(更改注册表,有好几个地方可以设置)
封装成一个服务,开启自启动
windows系统有个强大的组策略管理功能,里面可以设置不同用户的功能权限,比如A用户可以听声音,B用户不可以听声音。