【问题标题】:Use qwinsta in PowerShell ISE在 PowerShell ISE 中使用 qwinsta
【发布时间】:2015-04-30 04:38:31
【问题描述】:

我正在尝试将 qwinsta 和 rwinsta 与 powershell 代码一起使用。当我尝试运行它时,我收到一条错误消息“'qwinsta' 一词未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。”我需要能够在多台机器上远程执行此操作,而无需向其他机器添加任何 .dll 或模块。我尝试了终端服务 Powershell 模块,但您需要能够将它放在远程机器上,而我无法做到。

在 powershell ISE 中,我将如何运行 qwinsta?我不想解析信息只是收集它。这是我尝试过的以下代码(我也在这个网站上找到了):

function Get-TSSessions {
    param(
        $ComputerName = "localhost"
    )

    qwinsta /server:$ComputerName |
    #Parse output
    ForEach-Object {
        $_.Trim() -replace "\s+",","
    } |
    #Convert to objects
    ConvertFrom-Csv
}
Get-TSSessions -ComputerName "localhost" | ft -AutoSize

【问题讨论】:

  • 你不能使用完整路径吗?它不应该出现在C:\Windows\System32\qwinsta.exe以外的其他地方。
  • 命令qwinstaquery session 的别名。
  • 我查看了这个问题,但是当我尝试运行它时,我仍然收到相同的错误消息。它无法识别。
  • 您的 PowerShell 版本是什么?你能验证它所在的路径吗?您运行的是 x64 ISE 还是 32 位。这可能是一个因素

标签: powershell command-line remote-desktop


【解决方案1】:

最好的是您正在运行 PowerShell ISE (x86)。当我从那里运行命令qwinsta 时,我得到了和你一样的错误。这当然是假设您拥有 64 位操作系统。

术语“qwinsta”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,或者路径是否 包含,验证路径是否正确,然后重试

检查您的 PowerShell ISE 架构。它就在标题栏中。在这方面,您可以做的一件事是运行“PoweShell ISE”和not“PowerShell ISE (x86)”。检查出现这种情况的原因。 qwinsta 不能用于 32 位 shell。

由于qwinsta.exe 位于 C:\windows\system32 中,因此相对于 ISE x86 的位置将是 C:\Windows\SysWOW64,它不包含该可执行文件。注意:这个推理是推测,逻辑可能有缺陷。

解析 QWINSTA

好好看看这里解析qwinsta的答案:Split text by columns in PowerShell

仅供参考,其中一个是我的。

【讨论】:

  • 嗨,马特,也许我不明白,我自己对 powershell 有点陌生......我正在运行 PowerShell ISE (x86),我的版本是 3.0。我不确定您所说的检查 ISE 架构是什么意思。我确实查看了 Powershell 中的按列拆分文本,我的问题不是解析数据只是试图获取数据。我什至无法得到它。
  • @sk1919 还有其他解决方案,但我建议您运行 64 位 shell 并告诉我会发生什么(没有 x86)。也更新了答案以更清晰。我同意拆分不是您的问题。切换您正在运行的 ISE 是我试图告诉您的内容
  • 好的,谢谢@Matt - 我试过了,它似乎有效。非常感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-05
  • 1970-01-01
  • 2018-08-13
  • 2017-05-20
  • 2012-12-28
  • 1970-01-01
相关资源
最近更新 更多