Articles of pipe理员

驱动器盘符和冒号后没有斜杠的path – 它指向什么?

我打错了一个path,而不是c:\foo.txt写了c:foo.txt 。 我预料它要么失败,要么parsing为c:\foo.txt ,而是似乎在当前用户的home文件夹中parsing为foo.txt 。 Powershell返回: PS C:\> [System.IO.Path]::GetFullPath("c:\foo.txt") c:\foo.txt PS C:\> [System.IO.Path]::GetFullPath("c:foo.txt") C:\Users\Administrator\foo.txt PS C:\> [System.IO.Path]::GetFullPath("g:foo.txt") G:\foo.txt 从命令行运行explorer.exe并将以上任何一个结果传递给C:\ Users \ Administrator \ Documents以打开。 我还没有find任何文件,我完全困惑,请解释行为。

列出所有用户在非域系统上的最后一次Windows密码更改

对于连接到AD域控制器的系统,我已经find了这个问题的答案。 但是,这个问题适用于无法连接到域控制器的独立系统。 基本上,气隙系统。 简短而又甜蜜:有没有办法列出每个用户最后一次将非密码空间系统(Windows 7或10)的Windows密码更改为batch file或PowerShell脚本? 我知道,净用户{用户名} | find/我“密码上次设置”将一次为他们做。 然而,每台机器运行多次会很繁琐,而且我们有超过60个这种types的系统。 所以我一直在寻找一种方法来做到这一点,如果可能的话。 作为一个警告,我们没有select在PowerShell中为此安装activedirectory模块。 另外,由于大多数系统都是Windows 7,我们无法访问Windows 10中可用的Bash命令行工具。 任何和所有这方面的帮助表示赞赏。

没有从命名pipe道服务器得到任何回应

我在Windows服务中创build了一个NamedPipe并手动启动服务,或者在系统启动时启动。 编辑: lpszPipename = TEXT("\\\\.\\pipe\\1stPipe"); OVERLAPPED m_OverLaped; HANDLE hEvent; hPipe=CreateNamedPipe (lpszPipename, PIPE_ACCESS_DUPLEX | FILE_FLAG_OVERLAPPED, PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE | PIPE_NOWAIT, PIPE_UNLIMITED_INSTANCES,BUFSIZE, BUFSIZE,0,NULL); m_OverLaped.hEvent=CreateEvent(NULL,TRUE,TRUE,NULL); m_OverLaped.Internal=0; m_OverLaped.InternalHigh=0; m_OverLaped.Offset=0; m_OverLaped.OffsetHigh=0; ConnectNamedPipe(hPipe,&m_OverLaped); 现在我想访问命名pipe道,写一些消息和回应。 LPTSTR lpszPipename = TEXT("\\\\.\\pipe\\1stPipe"); OVERLAPPED m_OverLaped; m_OverLaped.hEvent=CreateEvent(NULL,TRUE,TRUE,NULL); m_OverLaped.Internal=0; m_OverLaped.InternalHigh=0; m_OverLaped.Offset=0; m_OverLaped.OffsetHigh=0; hPipe=CreateFile (lpszPipename, // Gets the Pipename GENERIC_READ | GENERIC_WRITE,// Client only writes to this pipe. 0, […]

内存密集型应用中的内存pipe理

如果您在Windows上使用C ++开发一个内存密集型应用程序,您是否select编写自己的自定义内存pipe理器来从虚拟地址空间分配内存,还是允许CRT控制并为您执行内存pipe理? 我特别关心堆上的小对象的分配和释放造成的碎片。 正因为如此,我认为这个过程将会耗尽内存,尽pipe有足够的内存但是是分散的。

获取随机SIGTRAP信号(在MinGW-gdb中)是内存损坏的标志?

我写了我自己的引用计数的内存pipe理器c + +(为了好玩),我相信它不完美;)。 而现在当我尝试使用它时,我得到了随机的SIGTRAP信号。 如果我注释掉与内存pipe理器有关的每一行,一切运行良好。 获取SIGTRAP-s而不是SIGSEGV是相当奇怪的。 我知道SIGTRAP-s在程序遇到断点时抛出,但没有设置断点。 我在另一个线程读取的exe和DLL的debugging版本必须是最新的。 他们是最新的,所以这不是原因。 有谁知道为什么会发生这种情况?

我的Windows应用程序真正使用多less内存?

我有一个实验程序长期运行的内存,我想知道它是实际的内存占用。 任务pipe理器(在Windows7-64)说,应用程序消耗800 MB的内存,但分配的内存总量,也根据任务pipe理器,是3.7GB。 所有分配的内存总和不等于3.7GB。 我怎样才能确定我的应用程序实际上消耗了多less内存? 推论:任务pipe理器实际上报告什么内存? 它似乎不是所有分配给应用程序本身的内存。

共享Windows主机上的Windows服务

我有不断从源中下载XML并将其保存到数据库的过程 。 我有一个Windows虚拟主机 。 我的问题是我应该使用什么.. WCF或Windows服务或Web服务 。 我不能使用ASP.net,因为它只会在通话中运行…但我需要它运行24/7 。 你可以guyzbuild议我如何devise它? 我写了一个Windows服务,但无法在服务器上运行它。 我的托pipe服务提供商是Hostgator.com

对于totalBytesAvailable,PeekNamedPipe总是返回0

PeekNamedPipe( tmp_pipe, // __in HANDLE hNamedPipe, NULL, // __out_opt LPVOID lpBuffer, 0, // __in DWORD nBufferSize, NULL, // __out_opt LPDWORD lpBytesRead, &totalBytesAvailable, // __out_opt LPDWORD lpTotalBytesAvail, NULL // __out_opt LPDWORD lpBytesLeftThisMessage ); 我写了字节到其他地方的pipe道,但totalBytesAvailable始终为0 ,为什么?

允许Windows屏幕保护程序写入程序文件中的文件

创build屏幕保护程序后,我遇到了一个问题,需要写入程序文件中的文件。 当屏幕保护程序变为活动状态时,它可以成功读取文件,但无法写入文件。 我注意到,当我使用和提升命令提示符运行屏幕保护程序,/ s,屏幕保护程序成功地写入文件。 所以我认为这是一个权限问题。 要查看是否是权限问题,我进去了,改变了Program Files和子文件夹的权限,这样任何人和系统都可以读写,但是仍然没有帮助。 任何想法我应该做什么? 有没有办法强制屏保作为pipe理员运行? 或者我错过了一些重要的权限?

标准用户login时启动pipe理交互式进程

我有一个系统服务,以pipe理员身份创build一个辅助交互过程,以便访问一些与桌面相关的资源,包括无法从服务运行的BlockInput()函数和NVIDIA的NVAPI函数。 当login用户是pipe理员的成员时,以下工作: 设置权限级别,包括SE_TCB_NAME 使用WTSGetActiveConsoleSessionId()获取活动的会话ID 使用WTSQueryUserToken()从会话ID获取login用户 带有TokenLinkedToken的GetTokenInformation() DuplicateTokenEx()与SecurityImpersonation 使用CreateProcessAsUser()启动进程 但是,当我有当前login会话是一个标准的用户而不是pipe理员中的一个,步骤4.失败,大概是因为标准用户没有与它链接的pipe理级别令牌。 这里有什么解决scheme? 我假设我需要得到一个pipe理员用户的令牌,但我该怎么做呢? 如果该用户不是login的用户,它是否仍然可以访问与当前桌面交互的function?