草庐IT

AD安全管理

全部标签

c# - .NET 软件更新管理器

我们正在开发一个支持许多供应商设备的框架应用程序。设备作为框架应用程序中的插件安装。但设备插件不是控制面板的一部分-添加删除程序或MSI安装程序。我们将设备插件下载为zip文件,其中包含XML数据和少量DLL。在.NET中有哪些推荐的解决方案,以便每当设备中有最新更新时,我们的系统可以通过互联网检测并自动更新。ClickOnce似乎是黑盒子。我们需要通知客户设备列表有更新。一个例子可以是Ubuntu更新管理器。 最佳答案 什么意思ClickOnce好像是block框?ClickOnce可以通过询问用户或在后台更新而用户甚至都不知道。

c++ - 安全获取在 Windows API 中运行可执行文件的路径

嘿,我正在尝试获取与我的exe文件位于同一文件夹中的dll的路径。要走的路似乎是使用QueryFullProcessImageName()或GetModuleFileName()之一来获取正在运行的可执行文件的路径,然后使用字符串操作使其成为改为所需库的路径。不幸的是,这两个函数都没有提供提前找出所需缓冲区大小的方法。我试过为nSize参数传递零,但这没有达到预期的效果。执行此操作的最佳实践方法是什么? 最佳答案 在实践中,您可以使用WindowsAPIMAX_PATH作为您的缓冲区大小,也许加1以提高安全性。理论上Windows路

.net - MMC 证书管理单元在哪里导入 "Service account"的证书?

WindowsMMC证书管理单元允许管理员使用“服务帐户”,但服务如何访问这些证书?如果我使用“服务帐户”以管理员身份导入到个人,并且以标准用户身份运行的服务使用System.Security.Cryptography.X509Certificates.X509Store在StoreLocation.CurrentUser(或StoreLocation.LocalMachine)中查找,它不会找到证书。如果我改为以服务帐户登录并从该标准用户帐户将证书导入个人,则服务会找到该证书。管理单元将“服务帐户”的证书放在哪里,服务如何使用.NET类找到它? 最佳答案

windows - 如何防止QtCreator管理Git

每次我在QtCreator中创建一个新文件时,它都会询问我是否要将它添加到Git存储库中,每次我删除一个文件时,它都会询问我是否要删除它。我不需要QtCreator来完成所有这些工作,因为我自己使用TortoiseGit管理Git。此外,QtCreator在这方面不如TortoiseGit方便。那么有什么方法可以阻止QtCreator管理我的Git存储库吗? 最佳答案 可以在“关于插件...”中禁用Git插件。 关于windows-如何防止QtCreator管理Git,我们在StackO

windows - 将上下文菜单添加到 Windows 资源管理器以运行 BAT 文件

有什么方法可以将新条目添加到Windows资源管理器上下文菜单中,该菜单可以以所选文件作为参数运行BAT文件/命令。具体来说,我需要做的是:pscp-pwpasswordE:\File.txtmyname@machine.univ.edu:/home/myname/Files/在Windows资源管理器中右键单击文件并选择菜单项“复制到服务器”。 最佳答案 您需要shell扩展。查看此完整指南:http://www.codeproject.com/KB/shell/shellextguideindex.aspx并且不要忘记“不要在托

windows - 运行非线程安全 Dll 的多个 'instances'?

我有一个dll的源代码还不是线程安全的。dll相当复杂,需要相当长的时间才能使其线程安全。所以我想出了独立运行Dll的几个“副本”的想法。最简单的方法可能是创建N个重命名的Dll副本并为每个线程加载一个单独的Dll。这是可行的解决方案吗?有没有更好的类似方法?是否可能存在一些包装代码?我知道这根本不是一个好的工程解决方案。请不要怪我。但它可能会解决许多问题。编辑2017我已经做到了,而且没有任何问题。伟大的!但请注意以下几点:http://msdn.microsoft.com/en-us/library/2s9wt68x%28v=vs.80%29.aspx如果DLL将任何非本地数据或对

windows - 以除管理员身份之外的任何身份启动 Windows 服务会给出 'Access denied'

我正在安装我正在开发的Windows服务。它设置为作为网络服务运行。当我尝试启动此服务时,我收到一个消息框,告诉我访问被拒绝。但是,网络服务确实可以访问可执行文件以及它所在的整个目录。我也曾尝试将服务作为本地服务和本地系统启动,但两者都收到相同的错误。如果我以管理员身份(这也是我登录的帐户)运行它,我没有收到任何错误并且服务按预期启动。我查看了事件日志,但只有一个条目包含相同的信息:“访问被拒绝。”我检查了procmon以查看它试图访问什么,令我惊讶的是,当服务管理器试图打开我的可执行文件时,访问被拒绝;即使它具有完全访问权限。为什么对可执行文件的访问被拒绝?下面是可执行文件权限的屏幕

windows - 高完整性 token 是否*必须*启用管理员组?

启用UAC并使用管理帐户登录后,您将获得两个token:提升的token;这已启用Administrators组,具有高完整性(即强制性完整性标签SID为S-1-16-12288)并且具有提升类型TokenElevationTypeFull。有限的代币;这已禁用Administrators组,具有中等完整性(S-1-16-8192)并且具有提升类型TokenElevationTypeLimited。这三个因素总是以这种方式匹配吗?也就是说,内核是否要求只有启用Administrators组的token才能具有高完整性和/或TokenElevationTypeFull?是否存在进程不具有

c++ - 在不同的线程上解除分配 BSTR 是否安全?

如果我在一个线程上调用一个返回BSTR的COM方法,那么从另一个线程?COM调用完成后,我将不再在第一个线程上使用BSTR,因此应该不会有任何并发​​问题。但是考虑到COM与线程的关系,我不确定SysFreeString()是否依赖于在同一线程上分配的BSTR。示例代码:BSTRvalue=nullptr;HRESULThr=pComObject->DoSomething(&value);if(FAILED(hr)){returnhr;}std::threadt([value]{//dosomethingwithvalueSysFreeString(value);});t.detach

winapi - 用于虚拟内存管理的新 Windows 8.1 API : `DiscardVirtualMemory()` vs `VirtualAlloc()` and `MEM_RESET` and `MEM_RESET_UNDO`

Windows8.1/Server2012RC2刚刚引入了用于虚拟内存管理的新API:OfferVirtualMemory()、ReclaimVirtualMemory()、DiscardVirtualMemory()、它们的用法非常简单,只需查看它们的名称即可。我无法理解这些API如何针对VirtualAlloc()以及标志MEM_RESET和MEM_RESET_UNDO工作,以及什么是细微差别。对于OfferVirtualMemory(),MSDN说它与VirtualAlloc()+MEM_RESET非常相似,只是它从工作集,并限制对页面的进一步访问。所以,基本上它限制了对页面的访