[玩转系统] PowerShell 之谜
作者:精品下载站 日期:2024-12-14 07:52:46 浏览:15 分类:玩电脑
PowerShell 之谜
前几天,我正在为即将召开的 PowerShell + DevOps 全球峰会的会议做准备。正如我通常所做的那样,当我构建连接到远程计算机的演示时,我经常使用本地计算机作为占位符。这应该总是有效吧?所以想象一下当这个命令给我一个错误时我的惊讶:
但是在没有计算机名称的情况下运行 Get-CimInstance 效果很好。使用 Get-WmiObject 连接到本地主机也没有出现任何问题。这很好,因为我的第一个想法是损坏的 CIM 存储库。但结果却是我们通常不会想到的其他事情,因为通常它只是有效的。
由于 Get-WmiObject 可以正常工作并且 Get-CimInstance 在没有远程连接的情况下也可以正常工作,因此我非常确定我的 WMI 设置没有问题。即使远程连接回本地主机,我查询其他任何内容也没有问题。这使得 WSMan 成为嫌疑人。当您使用 CIM cmdlet 查询 WMI 并建立远程连接时,即使“远程”计算机是本地主机,PowerShell 也会创建 WSMan 连接。所以我的第一步是收集更多信息。
我打开了事件查看器,并在“应用程序和服务日志\Microsoft\Windows\Windows 远程管理”下启用了分析日志。完成故障排除后,不要忘记禁用它。
然后我重新运行我的命令。
Get-CimInstance Win32_ComputerSystem -ComputerName $env:Computername
现在来看日志。我逐步了解了这些事件并了解了网络设置以及身份验证过程。最终我看到了 WMI 枚举的开头。
滚动浏览更多事件后,我遇到了此错误:
有趣的。 WMI 希望发送回近 3MB 的数据作为响应。 WSMan 不喜欢这一点,这一点将在下一次活动中得到证实。
最终我得到了无效的 XML 错误。这一切都是有道理的,因为当您使用 WSMan 时,结果会被序列化为 XML 并传输回给您。在我的场景中,我相信 PowerShell 收到了部分响应,但随后该过程被中止,因此 XML 永远不会完成,从而变得无效。
为了最终验证 WSMan 是罪魁祸首,我尝试使用命令行 winrm 实用程序。
显然,我的 WSMan 配置失败了,因此我检查了 WSMan PSDrive 中的设置。
MaxEnvelopeSizeKB 可能是罪魁祸首,所以我提出了它。
Set-Item -Path WSMan:\localhost\maxEnvelopeSizeKB -Value 5000
现在重新运行我的 Get-CimInstance 表达式可以按预期工作。
此时我应该感到满意了,但我想知道为什么我在这门课上获得了这么多数据。我重新尝试了 winrm enum 命令,虽然它没有立即给我一个错误,但它也没有立即给我一个响应。最终命令完成,当我再次检查窗口时,它充满了字节值。幸运的是,我能够向上滚动并看到 OEMLogoBitmap 属性负责。有趣的。
我将 MaxEnvelopeSizeKB 重置回默认值 500,并尝试使用 Get-CimInstance 进行更具选择性的查询。
Get-CimInstance Win32_ComputerSystem -ComputerName $env:Computername -Property Name,Model,TotalPhysicalMemory
这正如预期的那样。但是当我尝试仅获取 OEMLogoBitmap 属性时,我遇到了相同的错误。重置 WSMan 以便获取所有数据,我测量了数组的大小,发现它只有 43KB。序列化必须增加一些开销。事实上我尝试模拟这个过程。
$r = Get-CimInstance win32_computersystem -ComputerName $env:Computername
[xml]$logo = $r.OEMLogoBitmap | convertto-xml
$logo.save("c:\work\logo.xml")
我确信还有比这更多的事情。尽管如此,我最终还是得到了一个大小为 1.8MB 的文件,当默认限制为 500KB 时,这是一个问题。
那么这让我在哪里呢?目前,我将 MaxEnvelopeSizeKB 设置为较高的设置没有问题。我不认为这是一个错误。我也不会将任何责任归咎于决定填充 WMI 属性的供应商。这就是它存在的原因。仅在通过 WSMan 查询类时才会出现问题。当使用 DCOM 连接时,一切正常。我应该指出,即使默认值较低,如果我更有选择性,我也不会有任何问题。
但像你们许多人一样,我可能有点太懒了。尽管将 WMI 查询限制为仅需要的属性绝对是推荐的最佳实践。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag