Articles of WMI

如何使WMI调用失败?

我是一个开发人员,但我有一个问题似乎属于更多的ServerFault类别比StackOverflow。 我们有一个每隔一段时间就会倾倒的生产服务: System.Runtime.InteropServices.COMException:调用被消息filter取消。 (从HRESULTexception:0x80010002(RPC_E_CALL_CANCELED)) 触发此错误的代码是使用WMI获取networking接口MAC地址。 我有replace代码不使用WMI,但我们需要在更改之前/之后validation问题。 我的问题是:我如何人为地重新创build上面生成的错误信息?

Windows WMI获取快照EnabledState

我正在尝试使用WMI获取虚拟机快照的EnabledState。 那就是我尝试获取拍摄快照时虚拟机当前的EnabledState。 到目前为止,我知道如何列出机器的所有快照。 为此我使用: winrm e wmi/root/virtualization/* -filter:"select * from Msvm_VirtualSystemSettingData where SettingType = 5" 这提供了许多关于快照的信息,但是它并没有给我虚拟机的启用状态。 任何想法我怎么能得到的?

PowerShell重置本地pipe理员帐户密码。 5%的失败

我有责任在我的16,000台服务器的环境中更改本地pipe理员帐户密码; 我写了一个PowerShell脚本,但花了太长时间,所以我使用powershell runspace工厂添加了multithreading,将16,000个分解成可pipe理的部分。 有大约5%的错误率(约800台服务器)。 其中,75-100是明确的错误,可能会麻烦(用户名未find,访问被拒绝等),700-725得到错误消息“networkingpath未find”。 然而,ping服务器得到响应,服务器工程师告诉我他们正在运行,我有权访问,PowerShell和WMI都在运行。 我不知道从哪里开始排除故障。 这里是我使用的逻辑和代码: 我使用FQDN,但是我的公司往往会将服务器在DNS中以不同的方式列出到他们的FQDN,并且这两个select将不会彼此解决。 所以servera.production.active.directory将不会parsing到servera.mycompany.com。 此函数确定用于连接和设置密码的有效FQDN,并返回有效的FQDN或空string: function get-validfqdn([string]$server, [string]$domain){ $fqdn = $server + "." + (get_FQDN $domain) $altdn = $server + ".mycompany.com" if(Test-Connection -count 1 -computer $fqdn -quiet -TimeToLive 80){ $valid = $fqdn } elseif{ $valid = $altdn }else{ $valid = "" return $valid } 我尝试使用以下代码执行密码更改,embedded在模块中,并针对正在处理的列表中的每个服务器执行(由于PowerShell运行空间工厂代码,这是一个很长的function)。 function Set-ServerPass([string]$filepath){ $servers = […]

什么构成了一个大的WMI仓库,什么可能导致它增长?

由于不正确的closures似乎与WMI存储库的大小有关,我们的组织正在经历漫长的启动时间。 例如,存储库文件夹大小为50 megs可能导致启动时间增加10分钟,而500 megs可能需要整整一个小时。 有这样一个问题的修补程序 ,但我想追查什么导致存储库增长。 某些软件? 多用户configuration文件? 在某些情况下,几百个不同的用户可能在给定的机器上有configuration文件。 我们不使用漫游configuration文件,我们使用delprof2定期清除这些configuration文件,但是它对这个存储库大小没有任何影响。

SCCM 2007:使用WMI创build新的广告

我正在尝试使用Powershell创build一个新的广告。 我环顾四周,发现了一堆使用WMI的脚本。 在SMS_Advertisement类上使用Set-WMIInstance。 我可以做到这一点! 我的问题是,似乎有另一个类SMS_AdvertisementInfo 。 当我使用SCCM 2007控制台并创build一个新的广告时,这两个类都被更新并且具有新广告的内容。 我需要帮助了解stream程,似乎没有SMS_AdvertisementInfo类的任何文档,每个人都只是引用添加实例到SMS_Advertisement类。 我究竟做错了什么? 下面的代码从现有的代码构build新的广告。 # Get all the advertisements for the specific package $adv = Get-WmiObject -Namespace "root\SMS\$SMSSite" -Query "Select * from SMS_Advertisement WHERE PackageID = '$($pkg.PackageID)'" -ComputerName $SMSServer # Get SMS Parts for creating the new Advertisement: CollectionID, PackageID, Program $collectionID = (Get-WmiObject -Namespace "root\SMS\$SMSSite" -ComputerName $SMSServer […]

RPC服务器不可用。 0x800706BA

我也已经看到RPC服务器不可用消息上的一些类似的线程; HRESULT:0x800706BA。 我已经读了一些,看了这个线程的build议。 两个不同AD网站之间的WMI查询? 虽然有一些有用的提示它不适合我的问题… 我正在使用端点安全平台,并试图将更新策略更新到networking中的端点。 当我尝试从pipe理控制台(虚拟服务器)推送或修改策略时,我看到了不同的结果。 在随机机器上,我得到RPC服务器不可用messge HRESULT:0x800706BA返回。 但在其他人的政策更新几乎立即。 Initaaly我怀疑这是一个防火墙\ GPO(添加addtional规则,以允许WMI \ RPC双向stream量)的问题,但鉴于许多机器可以更新似乎排除这一点,确实我machinwe这是完全连接到networking,过去没有任何政策更新的问题,现在回到RPC错误信息。 我现在处于僵局。 并会提供任何帮助这个问题。 亲切的问候。 RobW。

用winrm / wsman列出所有的WMI类

有没有办法通过一个winrm命令从系统中获取所有的WMI信息? 我可以运行诸如winrm enum wmicimv2 / win32_computersystem这样的命令,它会给我提供如下信息: Win32_ComputerSystem AdminPasswordStatus = 3 AutomaticManagedPagefile = true AutomaticResetBootOption = true AutomaticResetCapability = true BootOptionOnLimit = null BootOptionOnWatchDog = null BootROMSupported = true BootupState = Normal boot … 但有没有办法获得所有的WMI类的列表,除了像事先get-wmiobject -list? 这也将有助于编译一个在戴尔生命周期控制器上监控的东西列表,因为我似乎无法find这些CIM类的列表。

我可以为客户端计算机和terminal服务器创build一个评估为True的WMI筛选器吗?

我有一个GPO,目前只能在客户端计算机上运行(XP,Vista,7等),通过使用WMIfilter进行以下查询: select * from Win32_OperatingSystem where ProductType='1' 我想在这个filter中包含terminal服务器,但最好的terminal服务器检查似乎是在一个不同的类(和命名空间为Server 2008+)。 这需要将第二个(也可能是第三个)查询添加到filter中: Select * From Win32_TerminalServiceSetting Where TerminalServerMode='1' 不幸的是,这些查询看起来和在一起,导致filter总是评估为False,我找不到改变它的选项。 是否有可能得到这一个filter多个查询,或者我需要创build多个filter,因此多个GPO?

DNS的WMI查询显示DNS插件中不存在的根提示。

当我在DNS中遇到一些令人担忧的信息时,我正在为我的networking写一个Powershell脚本。 请记住,我们仍然使用Powershell v2,而不是v3。 所以我必须通过Get-WMI命令来查询DNS。 我写了一个查询来从我们的一个DNS服务器获取所有的Alogging。 我使用的确切命令是: get-wmiobject -computer OURDNS -Namespace roo\MicrosoftDNS -class MicrosoftDNS_AType 这个命令奏效了,但是却给了我一个非常令人震惊的根本暗示: Caption: ContainerName: ..RootHints Description: DnsServerName: OURDNS.ourdomain.com DomainName: biz. InstallDate: IP Address: 195.22.26.253 Name: OwnerName: hmksreiuojy.biz …. 我在那个域名上做了一个whois。 IP地址是正确的。 它被标记为恶意软件网站。 根据上面的原始数据,任何parsing.biz域名的客户都将被定向到该站点。 这不好。 现在我需要摆脱这一点。 但是我在我的DNS服务器上找不到它。 DNSpipe理单元没有任何对此主机名或IP的引用。 服务器属性页面不会在根提示或转发器中列出此主机或IP。 它不在条件转发器容器中。 它也不在文件c:\ windows \ system32 \ dns \ cache.dns中。 那么WMI在哪里得到这个条目? 我该如何摆脱它?

使用WS-Management从Windows PC获取IPv6路由表

我必须使用WS-Management从Windows PC中获取IPv6路由表。 我在linux上使用wsman作为客户端。 我发现Win32_IP4RouteTable WMI类是IPv4,但看起来像WMI不支持IPv6。 有没有办法做到这一点?