草庐IT

安全操作

全部标签

windows - 有没有办法使用 PowerShell 检查本地服务器上任意安全主体的管理权限?

网络上的许多示例显示了使用以下方法检查当前用户是否具有管理权限的方法[Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()在特定服务器上运行命令时,是否有类似的方法来检查不是“当前”身份,而是检查任何(本地或域,例如,从Get-ACLcmdlet检索)。我检查了https://learn.microsoft.com/en-us/dotnet/api/system.security.principal.windowsidentity.-ctor?view=netfram

windows - MSI 安装程序,64 位操作系统,写入\windows\system32\inetsrv 文件夹

在WindowsServer200864位上,我需要一个.msi安装程序文件来将一些文件写入\windows\system32\inetsrv文件夹。(这些文件是一些XML模式验证文件,C#XmlReaderSettings.Schema.Add()预计位于该文件夹中)。当安装程序运行时,文件最终位于\windows\SysWOW64\inetsrv文件夹中,而不是它们需要的位置。我试图让安装程序写入\windows\Sysnative文件夹,并且安装程序创建了一个具有该确切名称的文件夹,我没想到这是可能的。参见thispage有关抑制SysWOW64重定向的良好讨论。在Windows

c# - 如何以编程方式访问操作系统中最常用的程序和程序的最新文件?

我需要以编程方式访问Windows操作系统中最近使用的程序列表和最近打开的文件列表。这些是您在Windows中单击“开始”后通常会看到的项目。我希望使用C#,但如果它在托管C++中更好,我也会这样做。 最佳答案 我认为对于文件,您可以访问最近的目录。stringfolderName=Environment.GetFolderPath(Environment.SpecialFolder.Recent);DirectoryInforecentFolder=newDirectoryInfo(folderName);FileInfo[]fi

c++ - 增加 Virtual Bytes 的操作和函数

在Windows中遇到32位进程的一些内存不足问题时,我开始使用性能监视器来记录该进程的某些计数器。虽然虚拟字节数高于私有(private)字节数和工作集是正常的,但我发现在我的情况下存在实质性差异,虚拟字节数远高于私有(private)字节数和工作集设置。哪些特定操作和Win32/CRT函数(在C或C++中)会增加虚拟字节数但不会增加私有(private)字节数和工作集?如果我理解PerformanceMonitor中不同计数器的描述,我想这将是某种共享资源。由于在不同版本的Windows以及同一版本的Windows中的不同应用程序中使用内存计数器的命名约定似乎存在一些(至少可以说)

c++ - I/O 完成端口的异步操作返回 0 字节传输

使用I/O完成端口的异步操作返回0字节传输,尽管I/O操作按预期工作(我的读取缓冲区已满)。BYTEbuffer[1024]={0};OVERLAPPEDo={0};HANDLEfile=CreateFile(_T("hello.txt"),GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_FLAG_OVERLAPPED,NULL);HANDLEcompletion_port=CreateIoCompletionPort(file,NULL,0,0);ReadFile(file,buffer,1024,NULL,&o);在工作线程

windows - 如何确定 MSBuild 中的当前操作系统版本?

是否有返回当前操作系统版本的native或自定义MSBuild任务可用?有没有我可以通过Exec任务调用的二进制文件?或者有其他选择吗?编辑:PeterLang建议使用以下链接:http://www.paraesthesia.com/archive/2009/07/06/getting-the-windows-os-version-in-msbuild.aspx 最佳答案 您可以尝试使用thispost中描述的注册表项查找. 关于windows-如何确定MSBuild中的当前操作系统版本

c++ - RegSetValueEx 线程安全吗?

我怀疑RegSetValueEx是线程安全的,但希望得到社区的一些确认。如果多线程调用,会不会有副作用?RegSetValueExMSDNdocumentation根本没有提到线程安全。 最佳答案 相关Q:IstheWin32Registry‘threadsafe’? 关于c++-RegSetValueEx线程安全吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2847488

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

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

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

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

C++:响应 Windows 注销的清理操作

我想捕捉Windows注销事件,以便进行一些清理。我的WindowProc看起来像这样:switch(uMsg){caseWM_ENDSESSION:caseWM_DESTROY:PostQuitMessage(0);return0;//othermessages}returnDefWindowProc(hwnd,uMsg,wParam,lParam);WinMain中的消息循环如下所示:for(;;){boolbTerminate=false;while(PeekMessage(&msg,NULL,0,0,PM_REMOVE)){if(msg.message==WM_QUIT){bT