问题标签 [winrm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
208 浏览

c# - 从 c# Management.Automation.Runspaces 远程启动 Powershell 脚本

我正在尝试远程执行传递对象参数的 powershell 脚本。我已经成功地做到了这一点,但现在我只想启动脚本,断开我的远程会话并让 powershell 脚本继续在远程机器上执行。不幸的是,我一直无法做到这一点。

到目前为止,这是我的代码,它成功运行了远程 powershell 脚本,但是如果我处理我的会话,powershell 脚本也会停止执行:

即使断开远程会话,我如何才能启动 .ps1 脚本并让它继续运行?

0 投票
2 回答
2974 浏览

windows - Ansible 运行远程 exe 文件

如何使用 Ansible 在远程 Windows 机器上执行 exe 文件?我使用了原始、脚本和命令模块,但问题是,exe 文件在不同的会话中运行,并且无法在远程计算机的桌面上看到应用程序 UI。

第二个问题是 exe 执行后 ansible playbook 没有前进。

我们可以在活动桌面会话中运行 exe 吗?

0 投票
1 回答
1481 浏览

powershell-2.0 - 使用 powershell 在系统列表上测试 winrm 连接性

我想测试 winrm 是否在服务器列表上运行。

winrm id -r:servername 适用于单个系统,但我想递归测试 csv 或文本文件中的列表。

输出到一个文件,每个文件都说“工作”或“不工作”。

我该怎么做呢?

谢谢大家。

编辑:
到了一个点,我正在传递一个 vm 和管道列表,直到我成功地将 winrm 连接输出到文件并在控制台中显示失败。

get-vm |where {$ .powerstate -like "PoweredOn"}|get-vmguest |where {$ .guestfamily -like "windowsGuest"}|foreach {winrm id -r:$_.hostname} |Out-File c: \脚本\winrmtest.txt

在我的输出文件中,我得到了像 identifyResponse ProtocolVersion = http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd ProductVendor = Microsoft Corporation ProductVersion = OS: 6.1.7601 SP: 1.0 Stack: 2.0这样的输出

对于成功的连接,在控制台上我得到以下失败信息:

错误号:-2144108526 0x80338012 客户端无法连接到请求中指定的目的地。验证目标上的服务是否正在运行并且正在接受请求。请查阅在目的地(最常见的是 IIS 或 WinRM)上运行的 WS-Management 服务的日志和文档。如果目标是 WinRM 服务,在目标上运行以下命令来分析和配置 WinRM 服务:“winrm quickconfig”。WSManFault 消息 = 客户端无法连接到请求中指定的目标。验证目标上的服务是否正在运行并且正在接受请求。请查阅在目标(最常见的是 IIS 或 WinRM)上运行的 WS-Management 服务的日志和文档。如果目标是 WinRM 服务,

需要将所有输出连同响应所针对的来宾 vm 的名称一起放入文件中。

0 投票
1 回答
320 浏览

c# - 如何将参数传递给 IIS 中托管的 WinRM 插件 (PowerShell)

我正在研究 PowerShell 管理单元,我计划将它作为 WSMan 模块的插件托管在 IIS 上。我想知道如何将附加参数从 web.config 传递到管理单元?

这里详细介绍:

托管 PS 管理单元的应用程序的 Web.config 文件:

这里 PSSessionConfiguration 的实现:

0 投票
1 回答
6196 浏览

windows - ANSIBLE Windows winrm 401

我按照 Ansible 网站上的说明进行操作,但是当我尝试与 Windows 节点通信时,仍然遇到一个简单的“win_ping”命令问题:

Ansible
版本:1.8.2

Windows 机器
操作系统:Windows Server 2012 标准
Powershell:v3.0

我得到的错误:

我需要这方面的帮助,谢谢。

---- 更新 ---
我在 windows 节点上启动了这个 powershell 命令:

然后现在我收到以下错误

0 投票
1 回答
2075 浏览

powershell - IPV4 过滤器阻止目标收听

我已经在多台机器上启用了 WinRM,为了提供强大的安全性,我们一直在 IPV4 过滤器中设置谁可以调用它们。我遇到了一个奇怪的问题,源机器是 10.48.136.100。运行 WINRM 的目标计算机是 10.48.134.200。

在目标机器上,我将 IP 过滤器设置为 10.48.136.1-10.48.136.200。理论上,10.48.136.100机器应该可以完美连接到10.48.134.200。

但事实并非如此。追查问题后,我发现目标机器甚至没有监听。如果我将 IPV4 过滤器更改为 *,那么目标机器将监听。如果我将 IPV4 过滤器更改为 10.48.136.1-10.48.136.200、10.48.134.1-10.48.134.255 (即包括源范围和目标范围),那么目标再次监听我使用下面的命令来检查WINRM 是否正在监听

在目标机器上

  1. 网络统计-atn | 找到“5985”
  2. winrm 枚举 winrm/config/listener

在源机器上,我正在使用

测试-WSMan -ComputerName 10.48.134.200

对我来说,IPV4过滤器是限制那些可以连接到我的机器(即WINRM请求的来源),那么为什么目的机器的IP地址也需要在范围内呢?

笔记:

  1. 此网络是一个平面网络,在 10.48.134.* 和 10.48.136.* 网络之间没有防火墙。

  2. 在目标机器上,我尝试了 127.0.0.1 以查看这是否可能是一些奇怪的“回调”问题,并且没有解决问题。

  3. 在源和目标上,IPV6 在网络堆栈上都被禁用,并且两台机器都是 Win2008 服务器。WinRM 中没有定义 IPV6 过滤器

如果有人知道为什么目标 IP 地址必须在 IPV4 范围内以便目标收听,我将不胜感激。

0 投票
1 回答
508 浏览

amazon-web-services - 在 Windows (AWS) 上安装 jenkins slave 会出现 java 堆分配错误

我正在使用jenkins 食谱在 AWS 上设置 Windows 从站。在本地(virtualbox 上的 vagrant),它正确收敛,但是在使用 chef-provisioning 和雾驱动程序在 aws 上配置新机器时,我遇到以下错误:

chef-provisioning 的堆栈跟踪:

厨师运行堆栈跟踪

我尝试了不同版本的 chef-client 来解决这个问题,但这并没有帮助。我不确定问题是否出在詹金斯食谱、厨师供应或其他方面。

因为詹金斯食谱在运行相同操作系统(win 2012 R2)的本地流浪机器上工作,我认为这可能是厨师供应雾的问题。

0 投票
1 回答
3805 浏览

windows - 使用 Ansible 在 Windows 客户机上映射网络驱动器

我正在尝试使用 Ansible 在 Windows 客户机上自动执行一些任务,但在映射网络驱动器时遇到了一些问题。

我要做的是映射驱动器,对其做一些事情(在我的示例中,我只是尝试列出文件),然后取消映射它。

当我运行 Ansible 时,输出表明共享驱动器已成功映射,但列出文件和取消映射都会导致错误,指出驱动器不存在。(“名为‘K’的驱动器不存在。 ”)

当我在运行 Ansible 后登录到 Windows 客户机时,驱动器被映射。

如果我在来宾登录时运行 Ansible,则驱动器仅在我注销并重新登录后才可见。我用来挂载驱动器的脚本还在客户机上创建一个文件以用于调试目的,即使我登录该文件也会出现。我不需要注销并重新登录以使其可见。所以似乎只有网络驱动映射需要注销和登录才能生效。

我也试过用“ net use”来映射驱动,结果是一样的。

我的 Ansible 剧本看起来像这样。(我省略了一些敏感部分。)

挂载.ps1。

测试.ps1

卸载.ps1

0 投票
1 回答
1823 浏览

c# - 如何使用 WinRM 从 Linux 主机检索 CIM 实例?

我正在使用 WinRM API 试图从运行 Windows 或 Linux 的多个主机收集一些 CIM 实例。我的代码在连接到 Windows 主机时工作正常,但如果我尝试连接到运行 SFCB CIM 服务器的 Linux 机器,则会引发异常。我可以通过 WBEM 很好地从 Linux 主机检索 CIM 实例,但不能通过 WS-MAN/WinRM。

这是从 Windows 主机获取的示例代码CIM_OperatingSystem- 这很好用:

如果remoteHost指向 Linux 机器(在我的示例中为 openSUSE VM),会发生以下情况:

  • remoteHost = "myLinuxHost"如果我只指定主机名,即session.Enumerate()失败:

未处理的异常:System.IO.FileNotFoundException:找不到网络路径。在 WSManAutomation.IWSManSession.Enumerate(对象 resourceUri、字符串过滤器、字符串方言、Int32 标志)

我可以成功 ping 机器,所以它应该是可见的。但是,主机名仅映射到我的 Windowshosts文件中的 IP。如果我尝试使用 PowerShell 创建到这台机器的会话,也会发生错误:

new-cimsession :WinRM 无法处理该请求。使用 Kerberos 身份验证时出现以下错误:找不到计算机 myLinuxHost。验证计算机是否存在于网络上,并且提供的名称拼写正确。

  • 如果我指定了完整的主机 URL(一个我可以使用 WBEM 检索 CIM 实例的 URL),即,remoteHost = "https://<ip>:5989"或者remoteHost = "https://myLinuxHost:5989"枚举失败并显示:

未处理的异常:System.Runtime.InteropServices.COMException:WSManAutomation.IWSManSession.Enumerate(对象 resourceUri,字符串过滤器,字符串方言,Int32 标志)发生安全错误

细节:

我究竟做错了什么?

0 投票
1 回答
3311 浏览

windows - 当前禁用协商身份验证

我正在尝试winrm在 PowerShell 中使用并停用客户端和服务中的所有身份验证。之后,我从 GP 和注册表中启用了它们,但它仍然显示此消息:

WinRM 客户端无法处理该请求。当前在客户端配置中禁用协商身份验证。更改客户端配置并再次尝试请求。如果这是对本地配置的请求,请使用仍启用的已启用身份验证机制之一。要使用 Kerberos,请将本地计算机名称指定为远程目标。