问题标签 [advapi32]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 为什么 LsaAddAccountRights 可能返回 STATUS_INVALID_PARAMETER?
这是一些实现非托管 DLL (advapi32) 的 C# 源代码。
运行时的变量值如下:
捕获时,Win32Exception 中的消息是:“参数不正确”
该代码在 Windows Web Server 2008 上运行。我可以验证该帐户确实存在,并且此代码在另一台服务器上运行良好......我不确定这是否可能是由 Windows 2008 SP2 引起的。我在想我忘记安装一些东西,但我想不出什么......
代码来自:http ://weblogs.asp.net/avnerk/archive/2007/05/10/granting-user-rights-in-c.aspx
winapi - 我在哪里可以找到 ReportEvent 函数使用的好例子?
与大多数“旧版”MSDN 页面一样,ReportEvent页面的信息太少,我无法理解它。我试过搜索,但找不到一个好的、干净、简单的函数用法示例。有人可以推荐一个吗?
c# - 在 Windows 2008 上以编程方式创建漫游用户配置文件
问题:
漫游用户通过 LoadUserProfile API 登录和加载配置文件未创建正确的配置文件。这只发生在 Windows 2008 下(UAC 关闭和打开)。使用标准 Windows 登录的登录可以正常工作,并且相同的代码在 Windows 2003 上也可以正常工作。
日志:
- http://drop.io/6t2b3f3 通过命令创建的用户配置文件服务的 ETL: logman -start profile -p {eb7428f5-ab1f-4322-a4cc-1f1a9b2c5e98} 255 3 -ets 该文件需要由有权访问的人分析来源,并希望这将阐明为什么配置文件总是作为临时加载。
环境:
- Windows 2008 模式域/林
- 服务器 fs001 - Windows 2008 Standard SP2 x86 盒子
- 在 fs001“共享”上共享文件,Everyone+SYSTEM 可以完全控制共享和 ntfs。
重现:
- 创建域用户 tuser1 并将漫游配置文件设置为 \fs001\Share\tuser1\profile
- 在 fs001 上以任何域管理员和本地管理员帐户运行此程序(如果 UAC 以管理员身份运行),临时用户配置文件加载到 c:\users\temp* 而不是 c:\users\tuser1
ETL 可能是最好的方法,它将提供最快的诊断。用户配置文件服务 svchost 实例的 Procmon 和系统级别的跟踪登录并没有透露太多关于出了什么问题(如果需要,我可以提供更多信息,但这是一个死胡同)。Windows 2003 上的 userenv.log 会有所帮助,但 ETL 只能由 MSFT 的人员进行分析。
有任何想法吗?
谢谢,亚历克斯
}
windows - 获取远程注册表项的安全信息?
根据API function 的文档GetNamedSecurityInfo
,它可以从以下对象获取信息:
- NTFS 文件系统上的本地或远程文件或目录
- 本地或远程打印机
- 本地或远程 Windows 服务
- 网络共享
- 注册表项
- 信号量、事件、互斥体和可等待计时器
- 文件映射对象
- 目录服务对象
但我需要的是从远程计算机上的注册表项中获取信息。能GetNamedSecurityInfo
以某种方式获得吗?
c# - 我成功地从 C# 调用了 advapi32 的 LsaEnumerateAccountRights()。现在我如何解组它返回的 LSA_UNICODE_STRING 数组?
它是指向结构数组的指针LSA_UNICODE_STRING
。我发现了一些相反的代码,即LSA_UNICODE_STRING
从 C# 字符串创建一个。您可以在下面的帮助程序代码部分中看到这一点。
我所拥有的并包括调用LsaEnumerateAccountRights()
似乎工作得很好。为数组指针和计数返回合理的值。
我不知道如何得到那些爆破的字符串。请帮忙?请问好看吗?
更新: nobugz 在他下面的答案中的辅助函数几乎是正确的,您只需将长度除以UnicodeEncoding.CharSize
. 感谢他,我现在可以看到数组中的第一个字符串。请参阅下面两个代码部分末尾的更新。
现在,我该怎么做指针算术?
更新 2.5:查看功能代码的答案。我丢失了旧的“错误”代码。
c# - 如何冒充其他用户?
我正在开发一个 ASP.net 应用程序,我正在尝试模拟用户
我正在创建一个带有令牌的 windowsIdentity
这个令牌是通过调用非托管代码获得的
有没有其他方法可以在不使用此 advapi32.dll 非托管代码的情况下获取令牌?
tks
c# - 从 C# 调用 AuditQuerySystemPolicy() (advapi32.dll) 返回“参数不正确”
顺序如下:
LsaOpenPolicy()
使用(未显示)打开策略句柄- 调用
LsaQueryInformationPolicy()
获取类别数量; - 对于每个类别:
- 调用
AuditLookupCategoryGuidFromCategoryId()
将枚举值转换为 GUID; - 调用
AuditEnumerateSubCategories()
以获取所有子类别的 GUID 列表; - 调用
AuditQuerySystemPolicy()
以获取子类别的审计策略。
- 调用
所有这些工作并返回预期的、合理的值,除了最后一个。打电话AuditQuerySystemPolicy()
给我一个“参数不正确”的错误。我在想一定有一些微妙的解组问题。我可能误解了究竟AuditEnumerateSubCategories()
返回了什么,但我很难过。
你会看到(注释)我试图从指针中取消引用返回AuditEnumerateSubCategories()
指针。这样做或不这样做都会产生相同的结果。
代码:
c++ - 这个(C/C++)程序在做什么?
它使用以下参数调用这些 API 函数 (advapi32.dll):
不知道会怎样
有人有想法么?
c# - 什么是 RevertToSelf()?- C#.net
我不明白RevertToSelf()
.net 应用程序中的作用。检查 MSDN 定义,它将定义读取为
那么当前用户上下文是否会通过停止客户端的上下文更改为系统管理员上下文?通过调用 RevertToSelf() 我的代码会在系统管理员模式下运行吗?
更新
好的,如果我在 ASP.NET 应用程序中调用 RevertToSelf() 会发生什么?让我们考虑一下我没有开始任何模仿。因此,如果我调用 RevertToSelf() 会恢复到应用程序池标识吗?
python - 是什么让这个安全描述符变坏了?
我正在尝试使用此代码读取 Windows 中文件和目录的访问权限(按照Tim Golden 对 os.access 提出的补丁的模式,使其从 Windows 上的 ACL 中读取):
但是,每次我运行它时,我都会得到这个:
我应该如何将 SecurityDescriptor 传递给 AccessCheck?
编辑:将 DACL_SECURITY_INFORMATION 更改为 DACL_SECURITY_INFORMATION | GROUP_SECURITY_INFORMATION | OWNER_SECURITY_INFORMATION 给了我这个: