草庐IT

权限虚拟化

全部标签

c++ - 使用 Windows USB 虚拟 Com 端口识别断开连接事件

我正在开发一个使用虚拟串行端口设备驱动程序与USB设备通信的应用程序。我们遇到过这样一种情况,如果在串口句柄打开时设备被拔掉(或死机),那么在串口句柄关闭后重新连接的唯一方法是拔掉设备,然后再插回。如果我能够足够快地检测到故障,则有潜在的解决方法。问题在于,在这些条件下,以下函数调用不会报告错误:ClearCommErrorGetCommModemStatusReadFile根据我的经验,当设备被拔掉时唯一返回错误的函数是WriteFile。可以理解,我真的不想为了测试端口连接是否仍然有效而编写无意义的数据。我的问题是是否有一些方法可以用来确定端口连接是否仍然有效。如果对我正在做的事情

c - 编写带有更新的 Windows 程序,权限问题

我想创建一个程序Foo.exe登录时出错foo.log.该程序已安装(NSIS安装程序)到C:\ProgramFiles(x86)\Foo\中.在安装过程中,NSIS添加了一个快捷方式(CreateShortCut"$SMSTARTUP\Foo.lnk""$INSTDIR\Foo.exe")来启动Foo.exe当Windows启动时。当Windows在启动后执行我的程序时,它以“非管理权限”启动我的程序。所以我的程序不能编辑C:\ProgramFiles(x86)\Foo\foo.log.解决方法是将可编辑文件存储在另一个目录中,例如在$APPDATA.但真正的问题来了:我在我的程序中

c++ - 如何判断驱动器是否在没有管理员权限的情况下被 BitLocker 加密?

出于我的目的,我只需要知道驱动器的DOS路径的BitLocker加密状态。像这样:enumDriveEncryptionStatus{Unprotected,Protected,Unknown};DriveEncryptionStatus=GetDriveBitlockerEncryptionStatus(L"C:\\");我找到了Win32_EncryptableVolume不幸的是带有此警告的类:TousetheWin32_EncryptableVolumemethods,thefollowingconditionsmustbemet:Youmusthaveadministrato

windows - 关于使用 subst 创建虚拟驱动器

在Windows中使用subst命令创建虚拟驱动器有什么意义。我正在为我的原始源代码目录创建虚拟驱动器,然后使用虚拟驱动器进行编译、编辑等所有操作。它的主要用途是什么?我们不能在我checkout源代码的原始目录上工作吗? 最佳答案 (收集了迄今为止对社区答案的所有评论,因为它们都很好并且切中要点,共同构建了一个很好的答案。随时添加更多信息。-Stephan)这取决于。例如,您的工具链可能对路径有限制——不支持长文件名(MSDOS时代)或不支持超过260个符号的路径(Windows95时代)。通常对于现代工具来说,它是不需要的——v

python - 在没有提升权限的情况下调用二进制文件

为了从Python请求UAC提升权限,当调用外部程序时,您可以这样做ctypes.windll.shell32.ShellExecuteW(None,"runas",my_binary_file_path,"",None,1)但是,假设您的Python脚本正在管理员权限下执行,您如何没有管理员权限调用外部程序? 最佳答案 我更喜欢的一种方法是以shell用户身份运行。首先打开shell进程并复制其token。您可以通过调用GetShellWindow然后调用GetWindowThreadProcessId来获取shell进程PID。

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

c++ - GetSystemInfo 是否为您提供虚拟 CPU 的总数(即超线程)?

GetSystemInfo会给你物理CPU/内核的数量,但我想知道虚拟CPU的总数。IE。在新的Nahelam芯片上,它们有4个内核,但显示为8个cpu。如果GetSystemInfo没有给出这个信息,我需要什么API(我见过一个获取逻辑处理器数量的函数,但它只适用于Vista。我需要支持XP)? 最佳答案 GetLogicalProcessorInformation功能(WindowsVista、WindowsXPProfessionalx64Edition、WindowsXPwithSP3)

windows - 如何检查CD-ROM是真实的还是虚拟的

我正在使用以下WMI查询来枚举我机器上的CD/DVR驱动器:select*fromWin32_CDROMDrive问题:有什么方法可以检测返回的驱动器中哪些是实际的物理CD/DVD驱动器,哪些是虚拟的(例如DeamonTools、MagicDisc)? 最佳答案 我认为没有办法,这是守护进程工具和这类软件的目标。也许如果你能设法获得每个CDROM驱动器的制造商或品牌,你总能看看它是否是“Daemontoolsinc.”。 关于windows-如何检查CD-ROM是真实的还是虚拟的,我们在

windows - 安装和更新 ActiveX 控件需要什么权限?

我们正在开发基于网络的销售点应用程序,虽然它主要在浏览器中运行,但也需要与信用卡读卡器等硬件设备集成。为了提供硬件集成,我们使用ATL在C++中实现了几个简单的ActiveX控件。我们不是经验丰富的Windows开发人员,很难理解ActiveX控件的安装过程和安全模型。显然,这是我们的用户实际能够运行我们的应用程序的先决条件。:)我们正在尝试确定典型的非特权用户(非管理员、非高级用户)所需的最精细和最严格权限集从作为Web应用程序的一部分通过HTTP提供的签名.cab文件安装和更新特定ActiveX控件(与任何ActiveX控件相对)。对于XP(SP2+)和IE6,以及更新的操作系统/

windows - 如何从 Powershell 设置 Windows 服务权限?

我需要授予特定帐户SERVICE_STARTpermissions对于给定的Windows服务。似乎有一些方法可以做到这一点here,但更喜欢PowerShell原生的方法,并且不需要外部工具,例如。通过使用Get/Set-ACLcmdlet,或调用一些.NETAPI。有人知道如何以这种方式做到这一点吗?提前致谢。 最佳答案 为此,我认为您应该考虑使用subinacl.exe,您可以downloadhere.从它的下载站点描述为:SubInACLisacommand-linetoolthatenablesadministrators