问题标签 [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 回答
344 浏览

javascript - 使用 Javascript 的 Winrm 和 SOAP 服务

请任何人都可以帮助我提供示例代码,这些代码可以利用 WinRM 协议使用 javascript 和 SOAP 服务从本地 PC 获取远程 PC 的主机信息?

谢谢你。

0 投票
2 回答
1477 浏览

powershell - 如何使用 winrm 将命令从域发送到工作组(混合域)而不使用凭据

我正在尝试在我拥有的 vmware 映像上运行 powershell 调用命令:invoke-command -computer [vmware host] -scriptBlock { commands }

这不起作用,因为我运行命令的客户端位于域上,而 vm 映像位于工作组(混合域)中

经过一番研究,我已将 vmware 主机添加到受信任的主机(Set-Item -Path WSMan:\localhost\Client\TrustedHosts -Value [vmware host]),如果我提供凭据(管理员/密码),则该命令有效。

我的问题是:有没有办法让它在不显式提供凭据的情况下工作,例如打开 vmware 主机以进行各种访问,或者然后以某种方式将凭据永久保存在我的客户端计算机上,这样我就不需要提供它们在使用“invoke-command -credential 参数”的调用中。我没有添加“-credential”参数的灵活性,因为此代码由其他团队维护。

我知道我可以在域之间添加信任(以使用 kerberos),但我无法使用该选项。

0 投票
3 回答
6304 浏览

powershell - 调用命令似乎不起作用 - 我是否使用 winrm.cmd 正确配置了 TrustedHosts?

我不确定我是否使用 winrmcmd 正确配置了 TrustedHosts

我正在从 host_computer(工作组的一部分)在 PowerShell 中运行命令

出现提示,我输入密码

在此处输入图像描述

然后我执行一个命令,以便 setup.exe 将在 remote_computer (也是工作组的一部分)上执行

出现错误:

我按照http://pubs.vmware.com/orchestrator-plugins/index.jsp#com.vmware.using.powershell.plugin.doc_10/GUID-D4ACA4EF-D018-448A-866A-DECDDA5CC3C1.html的步骤进行操作

在 host_computer 我打开命令提示符(shift,右键单击,选择“以管理员身份运行”)并执行以下命令

在 remote_computer 我打开命令提示符(shift,右键单击,选择“以管理员身份运行”)并执行以下命令

我得到以下回应

现在当我去 host_computer 并执行

我不再收到任何错误消息,但是当我远程进入 remote_host 时,我在任务管理器中看不到 setup.exe。已经半个多小时了,我找不到文件被执行的任何证据。

如何排除故障?

0 投票
0 回答
1304 浏览

python - 来自Linux的WinRM使用没有kerberos的域帐户?

研究这个主题导致了部分答案、误导和兔子洞的令人发狂的迷宫。我无法相信在数以百万计的 Linux 和 Windows 服务器上没有一个简单的答案。所以,让我们让世界变得更美好吧!

我的愿望很简单:

从 Ubuntu使用域帐户和密码通过 WinRM 进行身份验证。我的要求规定我在设置时不知道帐户/密码(仅在运行时),因此不能“硬编码”到票证、证书等中。

我的代码在 Python 中,我目前正在使用pywinrm,它似乎也不支持这一点。我只能通过在 Ubuntu 上设置 Kerberos 来获得域登录,这本身几乎是不可能的,并且似乎不符合我的动态凭据目标,除非我遗漏了什么。

非常尊重任何可以a)解释为什么这是一个不可能的目标或b)为实现它提供一些具体方向的人。我不是 Windows 专家,所以详细的答案最有帮助。(如果 Kerberos 确实可以做到这一点,请澄清我的误解。)

为了证明我已经完成了我的作业(即使这些项目可能不正确),以下是我目前认为正确的:

  • WinRM 支持多种身份验证方法,包括:basic、kerberos、digest、negotiate(ntlm)、certificate 和 credssp。
  • “基本”似乎不支持域帐户,例如:DOMAIN//bob
  • 看来您无法明确请求 NTLM - 协商似乎是访问 NTLM 的唯一方法,它应该允许域帐户
  • 摘要起初看起来很有希望,直到我阅读了许多对它的引用,尽管它被提及,但实际上根本不支持它。
  • 我完全不清楚证书或 credssp 选项是否真的满足我的需求,如果它们甚至提供了一种对域进行身份验证的方法
0 投票
1 回答
408 浏览

c# - 使用 WinRM 和 C# 卸载产品

我正在使用 WSManAutomation 来远程管理服务器。我需要在启用了 WinRM over HTTPS 的远程服务器上安装和卸载应用程序。连接不是问题

到目前为止,下面的代码在远程主机中执行 msiexec.exe,正如我在进程列表中看到的那样,但它不执行卸载命令。

对上述方法的调用将是:

你知道为什么命令没有被执行吗?我应该使用其他方式卸载产品吗?

提前致谢。

0 投票
2 回答
2445 浏览

linux - 在 Linux 主机上使用 winrm 通信器

我正在设置一台 Windows 2008 Server 机器,整个早上我都在 Windows 主机上,所以 winrm 直到现在都没有引起任何问题。我切换到 Linux 的想法,每当我将我的通信器设置为 winrm 时,vagrant 就无法再与我的来宾机器通信,我不想(阅读:不能,由于各种原因)安装 Cygwin它。

这是我的流浪文件:

这是我得到的错误:

我看到 Vagrant 家伙的视频,他们在 Mac 上使用 winrm 没有问题(就在这里),我希望它也适用于 Linux,但我似乎无法让它工作。

如果有人可以帮助我看到我的错误,我将不胜感激。到目前为止,Vagrant 一直是一个相当大的学习挑战。有趣,但确实具有挑战性。

0 投票
1 回答
735 浏览

powershell - PowerShell 输入会话

我正在使用 Windows 8.1。我正在尝试在另一个 Windows 8.1 上执行命令。通过使用 PowerShell(enter-pssession 或 invoke-command)。我通常有两种类型的错误消息:一种告诉我访问被拒绝,另一种告诉我我的防火墙不允许 HTTPS 异常。没有一台计算机是服务器。我已经尝试执行 Set-PSSessionConfiguration -ShowSecurityDescriptorUI -Name Microsoft.PowerShell 没有任何结果。

我已经尝试停用我的防火墙,并且已经将其他计算机添加到我的受信任主机列表中。

我总是在 enter-pssession 之后放置一个 IP 地址。这可能是问题的根源吗?

提前致谢 :)

PS 两台电脑都有 winrm、IIS 和 Apache。

0 投票
1 回答
863 浏览

powershell - 用于 iis 上 iis 服务可用性的 dsc 命令

我开始在 Power Shell 上使用 DSC 配置,使用 Windows PowerShell ISE 进行部署活动。我有一个安装了 IIS 的 Windows 2012 Web 服务器。在这个 IIS 服务器上,我安装并运行了 12 个服务。

现在我正在更新此 IIS 上的一项服务的代码位。在我这样做之前;如果 IIS 正在运行,我想停止它。有什么命令吗?

我尝试了以下命令,但它只检查 IIS:

0 投票
1 回答
4028 浏览

windows - 如何在 Windows 中远程编辑文本

(注意,这个问题也发布在technet上)

如何在 Windows 中远程编辑文本文件?

我正在运行和管理许多 Windows 7 工作站和 Windows Server 2012 机器。我希望能够在任何这些机器上远程编辑文本文件。我可以通过 psexec 或 powershell 远程连接到任何这些机器。我也可以通过 rdp 连接,但对于工作站,我宁愿不让用户离开,除非我绝对必须这样做。

例如,我们使用 Salt 管理状态配置。本地配置文件存储在C:\salt\conf. 我希望能够即时编辑这些配置文件。

这个问题涵盖了相同的主题,但没有一个答案特别令人满意。

一些可能的解决方案是:

  • 远程桌面:正如我所说,我宁愿不必将用户踢出他们的工作站
  • 通过 UNC 路径编辑文件:这仅适用于共享上的文件,设置任意共享以进行快速编辑似乎是个坏主意。
  • 在所有目标计算机上安装某种方式的 ftp 或 ssh 服务器。这肯定会起作用,但是在 WinRM 已经激活的情况下是否有必要?我觉得在我的组织中的所有机器上安装和配置额外的软件将是最后的手段。
  • 通过远程 powershell 会话使用命令行编辑器(例如 vim、emacs)进行编辑。这行不通。我不了解技术细节,但 powershell 远程会话与 ssh 连接的交互方式不同。
  • 使用 powershell 的 -replace 运算符、out-file 和 add-content cmdlet 进行编辑。这可行,但与功能齐全的文本编辑器几乎不一样。
  • 从远程检索内容,在本地编辑,然后回传到远程。这有效,并且可以说是我找到的最佳解决方案。上一个 SO 问题的代码示例:

编辑网页配置:

最后两个选项是我现在一直在使用的工作流程。正则表达式替换非常简单的更改,复制到本地并在那里编辑更复杂的更改。两者都不是理想的,但它们有效。只是感觉非常老式。

我正在考虑为我选择的编辑器 (vim) 编写一个插件来执行远程获取和保存,以使我的工作流程更顺畅一些。在我尝试之前,我只想知道是否有任何我遗漏或误解的内容。

0 投票
2 回答
3652 浏览

c# - 在 C# 中使用 winrm 在远程窗口上运行命令

我有一种简单的方法可以使用 winrm 从本地 Windows 机器连接到远程 Windows 机器。这是正在运行的powershell代码:

我想弄清楚如何在 c# 中做确切的事情。

另外,如果有人告诉我是否有在 c# winrm 中发送文件的方法,那将会很有帮助。

注意:这是我本地机器上唯一需要的 ac# 代码。远程机器已经设置好了。