问题标签 [powercli]

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 回答
5524 浏览

sharepoint-2013 - 使用 powershell 更新 Sharepoint 列表

再会。我正在使用一种称为 PowerCLI 5.1 的 PowerShell 变体。我正在使用它来更新包含来自 VMware Virtual Center 数据库的多个项目的多列 SharePoint 2013 列表。我正在使用的代码是这样的:

但是,它似乎只用第一个 VM 属性填充了我的整个列表,而忽略了所有其他 VM。现在我知道我的代码的第一部分可以正常工作,因为我可以使用我的所有 VM 及其属性正确更新 Excel 电子表格。

我不确定在使用这些属性更新 SharePoint 列表时我做错了什么。任何帮助将不胜感激,谢谢。

0 投票
2 回答
1231 浏览

windows - 远程安装网络驱动器不起作用

就是这样,我受够了,在过去的 16 个小时里我一直在努力解决这个问题,但在完成之前我无法入睡,请有人帮帮我!

我正在编写一个脚本来自动在虚拟机上安装一个软件,它使用 PowerCLI 和 PowerShell 连接到多个虚拟机,并将我的 PowerShell 脚本复制到所有虚拟机并运行该脚本。该脚本安装一个网络驱动器,复制一些文件,然后运行安装程序(稍后还会进行一些验证)。那么它应该安装一个网络驱动器,问题是它没有。

我尝试过网络使用无济于事,即使我对某些内容进行硬编码并且网络使用在列表中显示驱动器,我也无法访问它。

不起作用。我也尝试过使用硬编码值,虽然它们确实有效,但我的下一个功能无法访问驱动器。如果您知道如何使其工作,请告诉我。

我也尝试过 PowerShell 方法 New-PSDrive

这也不起作用。即使是硬编码值。原因是它给了我一个关于没有名称为“Credentials”或“Presist”的参数的错误,尽管已经尝试在安装了所有 Windows 更新的 Windows Server 2008 R2 上运行它。我什至在服务器和我的本地计算机上运行了 $psversiontable.psversion 和 $host.version,这在 PS2 和 PS3 上都给出了相同的错误。再次,如果有人有任何线索,请,请,请告诉我。

最后,你会认为这将是我的绝招,是久经考验的真正 WScript.Network 对象,但可惜这也失败了,这在很大程度上是我睡眠不足的原因。

这是关于这个的事情,它的行为非常奇怪,但如果我将值硬编码到其中,我可以让它工作,但只有在虚拟机上手动运行我的 ps1 脚本时,使用 Invoke-VMScript 不起作用,也没有调用运行它的 ps1 文件,它将运行该函数并告诉我凭据错误(即使在我使用它们连接到网络之前一秒钟)。

我无计可施,我无处可求助,请帮助我! 根据请求,我添加了脚本的一些额外部分,脚本本身有几百行长,而且我知道它们中的大多数都可以工作,所以我不想用数千行代码向这个地方发送垃圾邮件。

在vm上远程运行脚本的功能

复制脚本的函数

稍微解释一下,即使 VMWare API 声明 Copy-VMGuestFile 应该默认覆盖所有内容,但它没有,并且没有启用它的开关,因为我必须检查文件是否存在以及它们是否删除否则我会收到错误消息,并且不会传输最新版本的代码。为了实现这一点,我将 VM 的 C 驱动器作为共享驱动器安装在运行此 PowerCLI/PowerShell 脚本的本地计算机上。在本地运行 net use 时,它​​确实有效当我通过远程桌面登录 VM 并在那里运行我的 ps1 脚本时,这同样适用。问题是,当我通过我的 powershell 脚本在我的 VM 上运行 net use 时,powershell in 表示它成功,如果我有它,只需写出“Net Use”它就会在列表中显示它,但是如果我去我的电脑驱动器不在那里,我的任何功能都无法达到它。

0 投票
1 回答
1421 浏览

powershell - 如何在 PowerCLI 中快速找到带串口的虚拟机

我有一个大约需要 15 分钟才能运行的脚本,它检查了大约 700 个虚拟机的各个方面。这不是问题,但我现在想找到连接了串行端口的设备。这是我添加的一个功能来检查这个:

添加此函数会使脚本运行的时间长度增加一个小时,这是不可接受的。是否有可能以更有效的方式做到这一点?我发现的所有方法都是这个的变种。

另外,我知道以上面显示的方式使用全局变量并不理想。我宁愿不这样做;但是,我正在添加到现有脚本中,并使用它们的样式/格式。

0 投票
1 回答
2720 浏览

powershell - VMware 转换器自动化

我正在寻找一种将真实映像备份 (.tib) 文件转换为虚拟机的过程自动化的方法。我一直在 VMware 周围寻找一种方法来实现这一点,但我真的不确定我需要什么。

原因是我有一堆这些文件,我想检查它们是否有效。我想要一种自动化的方式来获取这些文件,转换它们,启动它们,然后关闭它们。我目前已经完成了所有设置,我只是迷失了一种实际转换这些文件的方法。

到目前为止,我发现的两个最接近的解决方案是:

根据我的理解(如果我错了,请纠正我)我可以使用 PowerCLI 自动将这些 .tib 文件转换为虚拟机,但问题是我需要 VMware 服务器或 ESXi 才能这样做。这似乎提供了执行此操作所需的 ESXi。

同样,根据我的理解(如果我错了,请纠正我)我可以使用它来将文件转换为虚拟机。我之前已经下载了这个只是为了使用 GUI,它似乎可以正常工作,直到我到达它询问我想要使用的服务器的名称的地步。我看到网页上有一个“立即购买”的选项,但它只是将我带到(看起来像)一个产品页面。我认为立即购买选项将解决我的服务器问题。我使用它的想法是使用 API 来自动化我需要的东西。

我的官方问题是:

  1. 我一定不是第一个想要一种自动化方式来转换这些文件进行测试的人。有没有人有任何想法/过去的经验可以分享?
  2. 有没有人使用过这些选项中的任何一个?
  3. 我认为我需要 VMware 服务器或 ESXi 来转换这些文件的假设是否正确?
  4. 我可以使用我上面提到的 API 方法吗?
0 投票
4 回答
4797 浏览

powershell - ScriptText 中的 VMware PowerCLI 变量

您好,我在使用 Invoke-VMScript cmdlet 时遇到了一些问题,我制作了一个脚本来创建虚拟 Windows 7 机器,然后在机器上执行一些 powershell 脚本,例如将计算机重命名为正确的名称。

但如果我跑

$strName 变量没有得到解决,有人知道如何做到这一点吗?

0 投票
1 回答
299 浏览

powershell - VMware Powercli 获取快照

使用 VMWare PowerCLI,如何在没有确认提示的情况下设置 VM 的快照?

0 投票
2 回答
478 浏览

powershell - Powershell 并行和串行操作

我正在为 VMWare 使用 PowerCLI 模块,我需要关闭 4 台计算机(所以第 1 组关闭,确认它们全部关闭,第 2 组关闭,确认它们全部关闭,等等......)确认一组服务器已关闭,然后再继续下一组。

为了节省时间,我想向第一组中的所有服务器发送 VMGuest-Shutdown,然后返回并一次验证一个电源状态,然后再转到下一组服务器。

这是我所拥有的,但它似乎不起作用。我假设我可以在第一个命令集中的子例程中执行此操作,但我有点不知道该去哪里。

提前致谢!

0 投票
1 回答
134 浏览

powershell - 管理 powerCLI 脚本的实例

我编写了一个 powerCLI 脚本,它可以使用一些给定的参数自动部署一个新的 VM。简而言之,脚本连接到给定的 VC 并从现有模板开始部署。

我可以控制将在同一台计算机上运行的脚本实例的数量吗?我可以调节将在不同计算机上运行但两个实例将连接到同一个 VC 的脚本实例的数量吗?

为了解决这个问题,我想开发一个服务器端应用程序,我的脚本的每个实例都将连接到该应用程序,然后服务器将处理所有实例,但我不确定在 powerCLI/Powershell 中是否有可能。

0 投票
1 回答
215 浏览

arrays - 从 powershell 堆栈问题导出到 csv 的数组

我正在为我们的 vSphere 在 powercli 中创建一个报告脚本。我正在尝试制作一个可以导出到 csv 的数组。我遇到的问题是我需要将多行输入到数组中,而不仅仅是一遍又一遍。

当我以当前格式运行时,所发生的只是最外层的行报告,而没有内部报告

这是我希望脚本执行的操作的模型。

任何帮助表示赞赏

数据有望在 excel 中以 csv 形式出现,同时看起来像这样

不过,真正的脚本会详细说明数百个虚拟机和文件夹。

0 投票
1 回答
290 浏览

powershell - 如何根据当前端口组成员身份将 vNIC 分配给分布式端口组?

我有一个带有 3 个网络适配器的虚拟机:

vNIC1:OldPortGroup1 vNIC2:OldPortGroup2 vNIC3:OldPortGroup3

我需要将这些适配器的端口组更改为 NewPortGroup1、NewPortGroup2、NewPortGroup3。我不知道哪个 vNIC 当前分配给了哪个端口组,但我知道旧的端口组名称。我需要根据旧端口组的成员身份将新端口组分配给 vNIC。以下代码不起作用:

这将返回该网络上所有虚拟机的所有 vNIC。它不遵守 Get-VM 上的 -VM 参数。就我而言,不可能按照我的想法去做。我尝试过 if 语句、switch 语句等。有什么想法吗?