我写了一个代码以检查是在同一机器上运行的一个过程,是否具有管理员特权.但是它总是返回false. 你能告诉我它怎么了. private static bool HasAdminPrivileges(int processId) { var hProcess = WinApi.OpenProcess(ProcessAccessFlags.QueryInformation, false, processId); var opened = WinApi.OpenProcessToken(hProcess, WinApi.TOKEN_QUERY, out IntPtr hToken); if (opened) { var token = new IntPtr(hProcess.ToInt64() + hToken.ToInt64()); // 64 bit machine only WinApi.CreateWellK
以下是关于 advapi32 的编程技术问答
我需要通过使用TokenStatistics类返回AuthenticationID作为返回的用户,无论我是否已升高. . lemme为您提供更多信息.假设我愿意: var Result = GetTokenInformation(WindowsIdentity.GetCurrent().Token, TOKEN_INFORMATION_CLASS.TokenStatistics, TokenInformation, TokenInfLength, out TokenInfLength); 这将使我能够从令状信息结构中获取AuthenticationID,而无需任何问题.假设由此产生的AuthenticationID是" 00000000-00001234" 现在,如果我右键单击Visual Studio并单击"作为管理员运行",请第二次启动我的代码,结果将是其他的,例如" 0000000000-00001289".但是我需要" 00000000-00001234"
我正在使用golang.org/x/sys/windows/svc软件包中的Windows服务. 到目前为止,一切都很好,很容易开始,我喜欢它. 我已经写了一些自动更新功能,我希望该服务在完成更新后重新启动. 我尝试过产生一个将使用SCM重新启动服务的过程,但是它记录了一个错误消息,这似乎与尝试在运行中以本地系统运行时的控制有关. The service process could not connect to the service controller. 更好/更轻松的方法似乎是os.Exit(1),并将服务设置为Restart on Failure,它可以很好地工作! 唯一的麻烦是,似乎没有使用GO以编程方式配置这些选项的功能. 我已经做了一些挖掘,看起来它们是通过将struct传递到advapi32.dll in advapi32.dll - in golang/sys/blob/master/windows/svc/mgr/config
这是这个问题"中. 我正在调用VB.NET的Winapi加密功能,以确保与共享结果数据的旧产品兼容. 该代码在Windows Server 2012上运行时最近遇到了一个问题.以前是字节数组的字符串变量,我认为它是更正确的功能.它以前如何使用字符串我不知道,但是在修复了原始服务器2012上的问题之后,由于字符串的nte_bad_length,它正在失败. 现在,将字符串转换为字节数组后,代码似乎并不像以前相同的方式加密,也不会解密CryptenCrypt生成的内容. 代码的主要大部分如下: (致电CryptCreatehash,Crypthashdata,CryptderiveKey在此之前) Dim _encoding As System.Text.ASCIIEncoding = New System.Text.ASCIIEncoding() Dim data As String = "Testing123" ''define test Strin
我正在与第三方库(POCO C ++)链接,并从链接器中获取以下未解决的符号错误.它似乎找不到" cryptacquirecontextw"," cryptreleasecontext"和" cryptgenrandom". 根据1>PocoFoundationCLR.lib(RandomStream.obj) : error LNK2019: unresolved external symbol __imp__CryptAcquireContextW@20 referenced in function "public: virtual int __thiscall Poco::RandomBuf::readFromDevice(char *,__int64)" (?readFromDevice@RandomBuf@Poco@@UAEHPAD_J@Z) 1>PocoFoundationCLR.lib(RandomStream.obj) : error LNK2019: unreso
与大多数"传统"页面一样,报告Event 我的信息太少了,无法理解它.我尝试了搜索,但找不到函数用法的好,干净,简单的示例.谁能建议一个? 解决方案 我最终使用了以下方式: HANDLE eventLog; WORD type; const char* msg; // ... snip ... ReportEvent(eventLog, type, 0, 1, NULL, 1, 0, &LPCTSTR(msg), NULL); 似乎足够好. 其他解决方案 好吧,这似乎是一个非常古老的线程,在这里降落在这里寻找报告事件的好例子...但是弄清楚您尚未收到任何答复……并且可能已经找到了解决方案. 您看到"未找到事件ID"的原因是因为EventViewer无法为事件ID显示要显示要显示的文本资源.对不起,如果最后一行听起来很怪异..但这是我对EventLog的了解: - eventlogging有两个方面 在EventLog(或其他用语中创建Eve
我正在尝试在新的Windows Server 2012环境上托管Web应用程序,但是我会收到一个未经确立的错误.该代码已经在我们的代码库中存在多年,并且在任何其他平台上都没有遇到任何问题. 所讨论的代码调用Advapi32.dll的CryptCreateHash函数 - Microsoft Crypto库.调用该函数时,我将返回0表示呼叫失败,随后err.lastdllerror返回错误代码87,即error_invalid_parameter. 正如我在此代码之前已经在各种环境中完美运行的正如我所说的,包括开发人员使用的Windows Server 2012测试机.但是,当放置还运行服务器2012的实时环境(尽管在负载平衡系统的更复杂上下文中)时,我会收到错误.这两个服务器尚未更新为Windows Server 2012 R2,它正在运行OS的开箱即用版. 在使用以下方式为密码提供商创建句柄之后: CryptAcquireContext(hCryptProv,
这是我要做的事情和包括LsaEnumerateAccountRights()的电话似乎很好.返回数组指针和计数的明智值. 我对如何在上获取那些爆炸的字符串感到茫然.请帮助?请问吗? 更新: Nobugz在下面的回答中的辅助功能几乎是正确的,您只需要将长度除以UnicodeEncoding.CharSize即可.多亏了他,我现在可以看到阵列中的第一个字符串.请参阅下面两个代码部分的末尾的更新. 现在,我如何进行指针算术? 更新2.5:请参阅功能代码的答案.我丢失了旧的"错误"代码. 解决方案 找到了它!在此博客文章.现在,以下修订的代码完全工作.它甚至是64位安全! 主代码: IntPtr sid = IntPtr.Zero; int sidSize = 0; StringBuilder domainName = new StringBuilder(); int nameSize = 0; int accountType = 0; Lookup
为了避免注册表重定向到WOW64键,如何翻译使用Microsoft.Win32 apis 的以下代码 public void SetKeyAccessControl( RegistryKey rootKey, string subKeyName, string identity, RegistryRights rights, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AccessControlType accessType) { using (RegistryKey regKey = rootKey.OpenSubKey(subKeyName, true)) { RegistrySecurity acl = new RegistrySecurity(); RegistryAc
我正在尝试使用此代码读取Windows中的文件和目录的访问(在from ctypes import( windll, wintypes, c_char_p, c_void_p, byref ) from win32api import GetCurrentThread from win32security import ( GetFileSecurity, DACL_SECURITY_INFORMATION, ImpersonateSelf, SecurityImpersonation, OpenThreadToken, TOKEN_ALL_ACCESS, MapGenericMask ) from ntsecuritycon import ( FILE_READ_DATA, FILE_WRITE_DATA, FILE_EXECUTE, FILE_ALL_ACCESS ) import pywintypes import winnt TRUE = 1 def CheckAccess(pa
我想获得当前 设置存储在HKEY_Local_Machine\Security\Policy\PolAdtEv中的reg_none中.我可以尝试借助在文章,我在PowerShell中创建了一种类型,如下所示. $MemberDefinition = @' [DllImport("advapi32.dll", SetLastError = true)] public static extern bool AuditEnumerateCategories( out IntPtr ppAuditCategoriesArray, out uint pCountReturned); [DllImport("advapi32.dll", SetLastError = true)] public static extern bool AuditLookupCategoryName( ref Guid pAuditCategory
序列就像以下内容: 使用致电 LsaQueryInformationPolicy() LsaQueryInformationPolicy() LsaQueryInformationPolicy() 获取类别的数量; 对于每个类别: call 致电 AuditEnumerateSubCategories() AuditEnumerateSubCategories() 获取所有子类别的GUID列表; call AuditQuerySystemPolicy() AuditQuerySystemPolicy() 获取子类别的审核政策. 所有这些工作和返回预期,除最后一个外,明智的值.调用AuditQuerySystemPolicy()使我获得"参数不正确"错误.我认为必须有一些细微的透明问题.我可能误解了AuditEnumerateSubCategories()返回的内容,但我很困惑. 您会看到(评论)我试图将AuditEnumerateSubCategories()返回
我正在使用ASP.NET应用程序,我正在尝试模仿用户 我正在用令牌 创建Windows Intednity WindowsIdentity winId = new WindowsIdenty( token ); 这个令牌是通过调用联合国托管代码 获得的 [DllImport("advapi32.dll")] public static extern int LogonUserA(String lpszUserName, String lpszDomain, String lpszPassword, int dwLogonType, int dwLogonProvider, ref IntPtr phToken); 是否有其他方法可以在不使用此advapi32.dll无管理的代码的情况下获得令牌? tks 解决方案 就个人而言,我更喜欢因此,您将使用不管理的代码,但是AFAIK无法直接使用托管代码执行此操作.
我在Windows 7 64bit中的设置Gitforwindows非常好,凭据管理器" Wincred". 然而,当我在吉特巴什(Gitbash)中运行一些命令时,它在控制台中给出以下错误,尽管运行命令: Failed to load advapi32.dll 为什么?如果需要使用凭据管理器设置来完成某些事情,那么我需要关于如何执行这些设置以及每个设置的含义的完整说明. 注意:这个问题我只有某些命令,其他命令正常运行,没有任何错误. 解决方案 如果您使用的是git config --global credential.helper manager 将使用 gcm-core(git-credential-manager-core- ). AS 这里提到的: 这是Windows凭据商店的继任者,用于与GIT的Windows内置凭证存储(wincred)相比,它提供了在任何启用HTTP启用的GIT存储库上工作的单因素身份验证支持,GCM为Azu
我正在为某人编写一个Python3脚本,该脚本通过CTYPES使用Advapi DLL及其logonuserw函数. 运行代码 在 __ init __ 函数 dll_location = find_library("advapi32"); if (dll_location == None): raise FileNotFoundError adv_dll = WinDLL(dll_location); #gets the pointer to the function logonUser = adv_dll.LogonUserW; self.logonUser = logonUser 在登录(用户名,域,密码)功能 中 #Sets the parameters to call the DLL loginType = DWORD(2) loginProvider = DWORD(0) handle = PHANDLE() user = LPCSTR
我正在尝试使用CTYPES API读取Windows凭据保险库,但是我不确定如何将函数结果归还回到可用的ctypes.structure. import ctypes class CREDENTIALS(ctypes.Structure): _fields_ = [ ("Flags", ctypes.c_int), ("Type", ctypes.c_int), ("TargetName", ctypes.c_wchar_p), ("Comment", ctypes.c_wchar_p), ("CredentialBlobSize", ctypes.c_int), ("CredentialBlob", ctypes.c_wchar_p), ("AttributeCount", ctypes.c_int), ("Attributes", ctypes