热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

WMIWin32_Process.Create失败,权限不足-WMIWin32_Process.CreatefailswithInsufficientPrivs

ImtryingtorunasimplecmdutilityonaremoteWindowsserverfromwithinavbscriptbyinvoking

I'm trying to run a simple cmd utility on a remote Windows server from within a Vbscript by invoking the Win32_Process class, like so:

我试图通过调用Win32_Process类在Vbscript中的远程Windows服务器上运行一个简单的cmd实用程序,如下所示:

serverIP = "10.0.0.3"
Set oWMI = GetObject("winmgmts:{impersOnationLevel=impersonate}!\\" & serverIP & "\root\cimv2:Win32_Process")
RunCommand = "cmd.exe /c echo hello >c:\hello.txt"
wscript.echo RunCommand
intReturn = oWMI.Create(RunCommand, Null, Null, intProcessID)  
wscript.echo intReturn
Select Case intReturn
        Case 0 Wscript.Echo "Successful"
        Case 2 Wscript.Echo "Access denied"
        Case 3 Wscript.Echo "Insufficient privilege"
        Case 8 Wscript.Echo "Unknown failure"
        Case 9 Wscript.Echo "Path not found"
        Case 21 Wscript.Echo "Invalid parameter"
        Case Else Wscript.Echo "Unable to execute for unknown reason"
End Select

This always fails with insufficient privs (return code 3).

这总是因为privs不足而失败(返回码3)。

Can anyone see what I'm doing wrong? The script is running from a cmd session invoked as a domain admin, so it should work fine, unless there's something about WMI security that I don't fully understand.

谁能看到我做错了什么?该脚本是从作为域管理员调用的cmd会话运行的,因此它应该可以正常工作,除非有一些我不完全理解的WMI安全性。

There will probably be people who suggest PSEXEC. I am aware of it and may fall back to it. But this seems like a solvable problem as is, and I'd rather not create dependencies on outside executables for this script.

可能会有人建议PSEXEC。我知道它,可能会回到它。但这似乎是一个可解决的问题,我宁愿不为此脚本创建外部可执行文件的依赖项。

I'll mention a few things I've tried.

我会提到一些我尝试过的东西。

  • This fellow says there can be an issue if the profile is not loaded. I have the same problem even if the calling user (a domain admin) is logged into both systems.
  • 这位研究员表示如果未加载配置文件可能会出现问题。即使主叫用户(域管理员)登录到两个系统,我也有同样的问题。

  • In this thread, Richard Mueller notes that one should specify both impersOnationlevel=impersonate and authenticatiOnlevel=Pkt. I tried that. Still no go.
  • 在这个主题中,Richard Mueller指出应该指定impersOnationlevel= impersonate和authenticatiOnlevel= Pkt。我试过了。仍然没有去。

  • On this page it seems that one should specify the NT rights needed within the moniker. I have tried specifying SeInteractiveLogonRight, SeNetworkLogonRight, SeBackupPrivilege, SeRestorePrivilege, SeDebugPrivilege, and SeChangeNotifyPrivilege. Nothing worked.
  • 在这个页面上,似乎应该指定名字对象中所需的NT权限。我已经尝试指定SeInteractiveLogonRight,SeNetworkLogonRight,SeBackupPrivilege,SeRestorePrivilege,SeDebugPrivilege和SeChangeNotifyPrivilege。没有任何效果。

A common thread I have noticed in googling this, is that people are seeing this issue with some target computers but not others. So it seems to me that what's fundamentally missing is a full breakdown of the security privs one would need to accomplish this task. A lollipop will be gratefully sent to whomever can provide such a breakdown definitively!

我在谷歌搜索中注意到的一个共同点是人们看到这个问题与一些目标计算机而不是其他人。因此,在我看来,根本上缺少的是完成此任务所需的安全权限的完全分解。棒棒糖将被感激地发送给任何能够明确提供此类故障的人!

In vain hopes it will increase viewership, I'm going to add the .net tag here, since .net folks often deal with the same WMI issues and may have insight.

徒劳地希望它会增加收视率,我将在这里添加.net标签,因为.net人经常处理相同的WMI问题并且可能有洞察力。

Awww. Bump, this isn't going to become a tumbleweed is it?

噢。凹凸不平,这不会成为风滚草吗?

4 个解决方案

#1


I had the similar problem. The suggestion from http://social.technet.microsoft.com/Forums/en-US/winserverManagement/thread/305557c4-df94-4d92-85bf-a049c83f120c helped me. Shortly: ensure that LOCAL SERVICE and NETWORK SERVICE accounts are granted to "Replace a process-level token" (SeAssignPrimaryTokenPrivilege).

我有类似的问题。来自http://social.technet.microsoft.com/Forums/en-US/winserverManagement/thread/305557c4-df94-4d92-85bf-a049c83f120c的建议对我有所帮助。简而言之:确保将LOCAL SERVICE和NETWORK SERVICE帐户授予“替换进程级令牌”(SeAssignPrimaryTokenPrivilege)。

#2


On this page it seems that one should specify the NT rights needed within the moniker. I have tried specifying SeInteractiveLogonRight, SeNetworkLogonRight, SeBackupPrivilege, SeRestorePrivilege, SeDebugPrivilege, and SeChangeNotifyPrivilege. Nothing worked.

在这个页面上,似乎应该指定名字对象中所需的NT权限。我已经尝试指定SeInteractiveLogonRight,SeNetworkLogonRight,SeBackupPrivilege,SeRestorePrivilege,SeDebugPrivilege和SeChangeNotifyPrivilege。没有任何效果。

Note if you were trying to use the privilege strings listed above (directly from the NT rights), that won't work. You should use the moniker privileges shown in table 6.8 of WMI Security Settings

请注意,如果您尝试使用上面列出的权限字符串(直接来自NT权限),那将无效。您应该使用WMI安全设置的表6.8中显示的名字对象权限

(But, if you're already a domain admin and you're just trying to cmd.exe echo > file, that's almost certainly not the issue)

(但是,如果您已经是域管理员,并且您只是尝试使用cmd.exe echo>文件,那几乎肯定不是问题)

#3


Do you find more info about error at log event at server side. This help to diagnose access right fault, or try monitoring access using FileMon.

您是否在服务器端的日志事件中找到有关错误的更多信息。这有助于诊断访问权限错误,或尝试使用FileMon监控访问。

#4


Check out this detailed page on MS Technet excerpted from the book "Advanced Vbscript for Microsoft Windows Administrators" Specifically it is "Chapter 6: Remote Scripting By Don Jones and Jeffery Hicks" and contains details on ensuring the target device is properly configured for remote scripts.

查看MS Technet上的详细页面,摘自“Microsoft Windows管理员高级Vbscript”一书。具体来说,它是“第6章:Don Jones和Jeffery Hicks的远程脚本”,并包含有关确保为远程脚本正确配置目标设备的详细信息。

Also check out c:\winnt\system32\WBEM\logs\wmiprov.txt I bet you're seeing something like this:

还看看c:\ winnt \ system32 \ WBEM \ logs \ wmiprov.txt我打赌你看到的是这样的:

(Mon Jun 01 16:57:19 2009.2x) : ***************************************
(Mon Jun 01 16:57:19 2009.2x) : Could not get pointer to binary resource for file:
(Mon Jun 01 16:57:19 2009.2x) : C:\WINNT\system32\DRIVERS\wmiacpi.sys[MofResource](Mon Jun 01 16:57:19 2009.2x) : 
(Mon Jun 01 16:57:19 2009.2x) : ***************************************

推荐阅读
  • 本文介绍了SIP(Session Initiation Protocol,会话发起协议)的基本概念、功能、消息格式及其实现机制。SIP是一种在IP网络上用于建立、管理和终止多媒体通信会话的应用层协议。 ... [详细]
  • CentOS下ProFTPD的安装与配置指南
    本文详细介绍在CentOS操作系统上安装和配置ProFTPD服务的方法,包括基本配置、安全设置及高级功能的启用。 ... [详细]
  • Web动态服务器Python基本实现
    Web动态服务器Python基本实现 ... [详细]
  • 在Qt框架中,信号与槽机制是一种独特的组件间通信方式。本文探讨了这一机制相较于传统的C风格回调函数所具有的优势,并分析了其潜在的不足之处。 ... [详细]
  • 本文详细介绍了 Java 中 org.w3c.dom.Node 类的 isEqualNode() 方法的功能、参数及返回值,并通过多个实际代码示例来展示其具体应用。此方法用于检测两个节点是否相等,而不仅仅是判断它们是否为同一个对象。 ... [详细]
  • Centos7 Tomcat9 安装笔记
    centos7,tom ... [详细]
  • 在运行于MS SQL Server 2005的.NET 2.0 Web应用中,我偶尔会遇到令人头疼的SQL死锁问题。过去,我们主要通过调整查询来解决这些问题,但这既耗时又不可靠。我希望能找到一种确定性的查询模式,确保从设计上彻底避免SQL死锁。 ... [详细]
  • 本文详细介绍了如何在Oracle VM VirtualBox中实现主机与虚拟机之间的数据交换,包括安装Guest Additions增强功能,以及如何利用这些功能进行文件传输、屏幕调整等操作。 ... [详细]
  • 本文详细介绍了如何正确设置Shadowsocks公共代理,包括调整超时设置、检查系统限制、防止滥用及遵守DMCA法规等关键步骤。 ... [详细]
  • 本文详细介绍了如何搭建一个高可用的MongoDB集群,包括环境准备、用户配置、目录创建、MongoDB安装、配置文件设置、集群组件部署等步骤。特别关注分片、读写分离及负载均衡的实现。 ... [详细]
  • 本文详细介绍了在Linux操作系统上安装和部署MySQL数据库的过程,包括必要的环境准备、安装步骤、配置优化及安全设置等内容。 ... [详细]
  • 在尝试启动Java应用服务器Tomcat时,遇到了org.apache.catalina.LifecycleException异常。本文详细记录了异常的具体表现形式,并提供了有效的解决方案。 ... [详细]
  • 如题:2017年10月分析:还记得在没有智能手机的年代大概就是12年前吧,手机上都会有WAP浏览器。当时没接触网络原理,也不 ... [详细]
  • 驱动程序的基本结构1、Windows驱动程序中重要的数据结构1.1、驱动对象(DRIVER_OBJECT)每个驱动程序会有唯一的驱动对象与之对应,并且这个驱动对象是在驱 ... [详细]
  • 本文介绍了 Oracle SQL 中的集合运算、子查询、数据处理、表的创建与管理等内容。包括查询部门号为10和20的员工信息、使用集合运算、子查询的注意事项、数据插入与删除、表的创建与修改等。 ... [详细]
author-avatar
穿过a黑夜_440
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有