是什么导致命令提示符无法识别 WBAdmin 程序?
在非提升的命令提示符下,我能够使用 WBAdmin。当我启动提升的命令提示符时,它也可以工作。
在我的程序中,我通过使用 LogonUser 函数获得了一个用户令牌,并从中获取了链接令牌,并具有提升的访问权限。使用 CreateProcessAsUser,我尝试生成具有提升状态的命令提示符。在该命令提示符下,我无法启动 WBAdmin 程序。它说命令未被识别。
C:\Windows\system32>wbadmin 获取状态
'wbadmin' 不是内部或外部命令、可运行程序或批处理文件。
我将我的程序作为服务启动,它在我当前的桌面上启动了一个 cmd 窗口。我还注意到环境设置与我当前登录的帐户不同。
区别在于:
在 CreateProcessAsUser 命令提示符下
APPDATA=C:\Windows\system32\config\systemprofile\AppData\Roaming
LOCALAPPDATA=C:\Windows\system32\config\systemprofile\AppData\Local
TEMP=C:\Windows\TEMP
TMP=C:\Windows\TEMP
USERPROFILE=C:\Users\Default
在使用 Windows 登录屏幕登录的普通用户中
APPDATA=C:\Users\\AppData\Roaming
LOCALAPPDATA=C:\Users\pta\AppData\Local
TEMP=C:\Users\\AppData\Local\Temp
TMP=C:\Users\\AppData\Local\Temp
USERPROFILE=C:\用户\
CreateProcessAsUser 命令提示符缺少以下变量
HOMEDRIVE - HOMEPATH - 登录服务器 - PATHTEXT - USERDOMAIN
这是否意味着用户配置文件未正确加载?我使用以下行以用户身份登录:
LogonUser('username', 'domain', 'password', LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, hUserToken);