脚本完成后有两个变量,但是当我通过管道传输到 SELECT-object 时,只有第一个变量将数据返回到控制台

2023-12-31

我正在尝试使用 WMI 查询多个服务器,但我并不总是能够访问这些服务器。

代码如下。唉,它向控制台返回“访问被拒绝”,但我似乎无法摆脱它。那好吧。

但是,我am捕获我无法连接的服务器,以便我可以告诉其他人查看它们或请求访问。

但是当我运行代码时,它只返回第一个服务器列表;即使 $failed_servers 有值,也不会返回任何内容。如果我告诉两者都通过管道连接到 ogv,则会弹出两个窗口。

为什么“$variable|select”都不起作用?如果我删除 $failed_servers 上的选择,那么它就会显示出来,尽管只是位于成功服务器的正下方。这还可以,但不是很好。

$list = ("servera","serverb","serverc")
$failed_servers = @()
$final = foreach ($server_instance in $list)
{
$errors=@()
gwmi -query "select * from win32_service where name like '%SQLSERVER%'" -cn $server_instance -ErrorVariable +errors -ErrorAction SilentlyContinue
if ($errors.Count -gt 0) {$failed_servers += $server_instance
}
}

$final|select pscomputername, name, startmode, state |where {$_.pscomputername -ne $null}

$failed_servers |select @{N='Failed Servers'; E={$_}}

你所经历的是仅仅是一个display problem:

  • 两者都是你的Select-Object https://learn.microsoft.com/powershell/module/microsoft.powershell.utility/select-object调用产生输出对象4或更少的属性谁的类型没有与之关联的显式格式化数据(据报道Get-FormatData https://learn.microsoft.com/powershell/module/microsoft.powershell.utility/get-formatdata).

  • 这会导致 PowerShell 的 for-display 输出格式化系统 https://learn.microsoft.com/en-us/powershell/scripting/developer/format/formatting-file-overview通过隐式渲染它们Format-Table https://learn.microsoft.com/powershell/module/microsoft.powershell.utility/format-table cmdlet.

  • The 显示列Format-Table用途是锁定基于的属性第一个对象 that Format-Table收到。

  • 所以,your second Select-Object调用,其输出对象不共享任何属性与第一个输出的对象一起,有效地产生无可见输出- 然而,对象are发送到成功输出流并且are可以用来程序化处理.

一个简单的演示:

& {
  # This locks in Month and Year as the display columns of the output table.
  Get-Date   | Select-Object Month, Year
  # This command's output will effectively be invisible,
  # because the property set Name, Attributes does not overlap with
  # Month, Year
  Get-Item \ | Select-Object Name, Attributes
}

输出将如下所示 - 请注意第二条语句的输出实际上是不可见的(除了额外的空行):

Month Year
----- ----
    9 2021


请注意,该问题甚至可能影响single输出不同类型对象的语句(其类型没有关联的格式化数据);例如。:
(Get-Date | Select-Object Year), (Get-Item \ | Select-Object Name)


解决方法:

  • 正在申请| Format-List上面的命令使所有对象可见,但明显改变了显示格式。

  • 脚本内你可以通过管道每个Select-Object管道至Out-Host强制即时、特定于管道的格式化,但是 - 考虑到结果直接发送到host而不是成功的输出流 - 这种技术阻止进一步的编程处理.


未来潜在的改进:

GitHub 问题 #7871 https://github.com/PowerShell/PowerShell/issues/7871建议至少发行一个warning如果输出对象实际上变得不可见。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

脚本完成后有两个变量,但是当我通过管道传输到 SELECT-object 时,只有第一个变量将数据返回到控制台 的相关文章

随机推荐

  • 如何在yii2中进行ajax调用?

    在 yii 1 14 版本中我们使用 CHtml ajax链接 对于 ajax 调用 在 yii2 中怎么样 你可以像这样创建一个ajax链接 Html a Your Link name controller action title gt
  • 缺少带有 .otf 的内容类型标头字体

    我使用 Laravel 框架 但是在 chrome 控制台中发生了这个错误并且font family不工作 无法加载资源 服务器响应状态为 500 缺少 Content Type 标头 In css font face font famil
  • 使用 PyDrive 上传 XLSX 并将其转换为 Google Sheets

    我正在尝试将 xlsx 文件上传到 Google 云端硬盘 我可以上传它 但是 当我们尝试在云端硬盘中打开同一文件时 必须使用 Google 表格打开它 因此 它会创建一个同名的新文件并消耗驱动器空间 我想我需要在上传时更改 MimeTyp
  • 不同IPC机制的使用

    我是一名 C 程序员 我想知道一个实时场景 我们可以使用不同的 IPC 机制 例如 PIPE 命名 共享内存 我大致知道在哪里可以使用套接字和消息队列 但对于 PIPE Named PIPE 和共享内存我没有任何想法 这只是为了了解不同的
  • 如何将elasticquery转换为kibana URL

    我正在使用 kibana 6 仪表板来显示可视化 我有一个如下所示的弹性查询 它需要传入 kibana 仪表板 URL query bool minimum should match 1 should match phrase jt tax
  • 带 VCL 样式的 Inno Setup 语言选择器

    有没有办法将语言选择器 Inno Setup 与VCL样式一起使用 如何 出现 选择安装语言 对话框之前叫做 因此您无法加载对话框的皮肤 作为解决方法 您可以实现自己的 语言 对话框 并从InitializeSetup 这样自定义对话框就会
  • 使用带条件的内连接的 Doctrine 查询生成器

    我想使用 Doctrine 的查询构建器构建以下 SQL select c from customer c join phone p on p customer id c id and p phone phone where c usern
  • SQL 查询用于在 SQL Server 中生成类似输出查询相关表的矩阵

    我有三张桌子 Product ProductID ProductName 1 Cycle 2 Scooter 3 Car Customer CustomerID CustomerName 101 Ronald 102 Michelle 10
  • MySql - 更新字符串部分的方法?

    我正在寻找一种通过 MySQL 查询仅更新字符串的一部分的方法 例如 如果我有 10 条记录 全部包含string作为字段值的一部分 有没有办法改变string to anothervalue通过一个查询对每一行进行查询 IE 对于以下情况
  • 尝试创建 Android 应用程序时出现“无可用目标”该怎么办?

    我正在尝试使用 Eclipse 创建 Android 项目 但 新建 Android 项目 窗口中的 下一步 按钮呈灰色 构建目标部分显示消息 无目标可用 我已经填写了其他所有内容 我还需要准备其他东西才能使其发挥作用吗 您是否确保将and
  • VBA将Excel图表复制到Word作为图片更改图表大小

    我想创建一个宏 从 Excel 复制图表并将其作为图片 最好是增强型图元文件 粘贴到 Word 中 我设置了一个带有表格的 Word 模板文档 该表格在应插入图片的特定单元格中包含书签 然而 使用我当前的代码 插入的图像太大并且弄乱了整个表
  • 前端敏感信息

    我正在构建我的第一个反应应用程序 不确定前端安全性 我正在调用以下第三方库 emailjs sendForm serviceID templateID templateParams userID userId字段属于敏感信息 我对 onSu
  • 如何在 Spring MVC 中针对 HTML 和 JSON 请求以不同方式处理异常

    我在 Spring 4 0 3 中使用以下异常处理程序来拦截异常并向用户显示自定义错误页面 ControllerAdvice public class ExceptionHandlerController ExceptionHandler
  • 设置 env、OSX rbenv 和捆绑包战斗

    所以我刚刚从 ubuntu 切换到 mac 设置环境并不像承诺的那么容易 这是我遵循的过程 安装了 xcode 然后进入首选项并下载command line tools 然后通过运行验证是否安装了正确的版本gcc version i686
  • 如何在另一个字段的计算中使用别名

    有谁知道是否有办法复制所使用的方法这个问题 https stackoverflow com questions 2077475 using an alias in sql calculations使用子查询的别名对 t SQL 中的另一个字
  • Google Maps API v3 仅在页面刷新后加载

    我正在为我正在处理的网页摆弄 Google Maps API 我现在的问题是 地图完全按照我的预期加载 但只有在刷新页面后才加载 如果我不刷新页面 我看到的只是画布 如果我离开页面并返回到该页面 问题仍然存在 因此调用地图似乎是一个问题in
  • Kendo UI:无法将 footerTemplate 添加到网格

    我试图在 footerTemplate 中显示字段的计数 接下来是小提琴 http jsbin com ayuug 8 edit http jsbin com ajoyug 8 edit 但是 如果没有 footerTemplate 它可以
  • 在WIndows Apache 2.4中安装casperJS和phantomJS将数据传递给PHP

    我尝试通过单击运行我的 casperjs 脚本Run网站中的按钮 我的本地设置是 Windows7 上的 PHP 5 5 14 和 Apache 2 4 正常运行 使用 php 页面进行测试 我的问题是 如何正确安装 casperJS 和
  • Primefaces RequestContext scrollTo 不起作用

    Primefaces v3 5 尝试使用RequestContext getContext scrollTo 在 ajax 请求结束时以编程方式滚动到我的表单 XHTML 片段
  • 脚本完成后有两个变量,但是当我通过管道传输到 SELECT-object 时,只有第一个变量将数据返回到控制台

    我正在尝试使用 WMI 查询多个服务器 但我并不总是能够访问这些服务器 代码如下 唉 它向控制台返回 访问被拒绝 但我似乎无法摆脱它 那好吧 但是 我am捕获我无法连接的服务器 以便我可以告诉其他人查看它们或请求访问 但是当我运行代码时 它