我正在使用https://github.com/mj1856/SimpleImpersonation来模拟管理员,因此我可以通过非管理员用户运行的应用程序对Windows服务进行更改。这可以在Windows 7上正常运行。在Windows 10上,我必须右键单击该应用程序,然后单击以管理员身份运行才能运行。否则,当我的应用尝试修改服务时,我将收到错误代码5(拒绝权限)。模仿似乎正在工作。 UAC已关闭。我不知道下一步该怎么做。
答案 0 :(得分:0)
您尚未发布任何您的代码,因此我将在此处进行有根据的猜测,并建议您尝试LogonType.NewCredentials。这将使LogonUser调用缓存凭据,以便稍后将其用于模拟。
答案 1 :(得分:0)
之所以不起作用,是因为我打开了UAC。我已经在Windows中禁用它并重新启动,但是显然这还不够。我必须创建注册表项
var tabTriggerBtns = document.querySelectorAll('.tabs li button');
tabTriggerBtns.forEach(function(tabTriggerBtn, index){
tabTriggerBtn.addEventListener('click', function(){
var tabTrigger = this;
var tabTriggerData = tabTrigger.getAttribute('data-tab-trigger');
var tabContent = document.querySelector('.tab-content');
var currentTabData = document.querySelector('.tab-content[data-tab-content="' + tabTriggerData + '"]').classList.add('is-open');
if(tabContent !== currentTabData) {
tabContent.classList.toggle('is-open');
}
if(tabTrigger.classList.contains('is-active')) {
tabTrigger.classList.remove('is-active');
}
else {
tabTriggerBtn.classList.remove('is-active');
tabTrigger.classList.add('is-active');
}
});
});
然后重新启动以真正禁用UAC。
作为对其他开发人员的说明,我无法使用c#进行模拟,但也无法使用powershell和psexec进行模拟,这使我找到了解决方案{{3}}。
答案 2 :(得分:0)
SimpleImpersonation(我是作者)是the Windows LogonUser
API的托管包装。它本身没有任何魔术,而是可以帮助您轻松使用该API。
使用此库时,您传递的LogonType
与LogonUser文档中引用的匹配。每种登录类型都有不同的行为,该行为由操作系统控制。例如,如果您使用的是LogonType.Interactive
,那就是将LOGON32_LOGON_INTERACTIVE
传递到LogonUser
API中以执行交互式登录。
交互式登录使用UAC进行管理操作。建议不禁用它。同样不是LogonUser
在交互式会话期间返回 restricted 令牌。对于交互式登录,您无法解决该问题,但可以根据自己的操作尝试其他登录类型之一。
另请参阅: