问题标签 [powershell-5.0]
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.
powershell - 确定 Win32_OptionalFeature 的父功能
背景故事,在 2012-R2 中,您可以使用 Powershell v4.0 访问Get-WindowsFeature
仅适用于服务器操作系统的 cmdlet。它包括填充树视图节点所需的父字段,因为子节点被键入到父节点。
从 Windows 7/8.1 开始,我们不能使用 cmdlet,它不能在桌面操作系统上运行。我们可以在这里看到相同的数据,但没有父 ID 字段。如何从 WMI 确定父功能?对解决问题的任何答案持开放态度。
http://msdn.microsoft.com/en-us/library/ee309383%28v=vs.85%29.aspx
简而言之,我正在尝试从 gwmi 命令生成 .csv 转储,该转储将用于根据当前安装的功能填充树视图控件。有点像这样。
powershell - 是否可以在 powershell v5 中创建子类?
今天下午我试图找出一个解决方案,但到目前为止我只取得了部分成功......
这是我的代码:
(Dog 类可以通过这样做来实例化):
基本上,我的想法是尝试让脚本块充当闭包,以便可以调用包含在 Animal 中的每个“子类”定义(并且仍然可以访问它的父范围)。因此,例如,当在 Dog 对象上执行 getEyes() 时,理论上它会返回数字 2。但是这不起作用,因为我认为脚本块无法看到它自己的范围之外(当在类中定义时)。
所以当我这样做时:
它正确返回 4,但是当我这样做时:
Powershell 不知道变量 $numOfEyes 是什么,随后由于该变量在类中未定义而引发错误。
有没有人在不使用 add-type 的情况下在 PowerShell 中模拟子类的解决方案?
powershell - PowerShell:导入模块:程序集名称或代码库无效(HRESULT:0x80131047)
我刚刚安装了新的ISE Module Browser,想尝试第一个模块,我选择了该Bing
模块(需要另一个名为 的模块BetterCredentials
,但处理得很好,所以没问题)。
因此,正如 Bing 模块脚本开头所述,我必须这样做:
我也是如此,我注册并获得了我的 ApiKey,当尝试“ Import-Module
” Bing,使用该 ApiKey 时,我收到了这个“著名”错误:
据我所知,模块名称没有问题,有什么问题?我应该怎么办 ?
更新
然而,PowerShell 可以识别 cmdlet 但无法执行它们:
powershell - 能够使用 2 月的 powershell 5 为 LCM 设置 CertificateID
我正在尝试更新我的 DSC 部署以现在使用部分配置来分解配置。为此,我现在需要使用拉过程而不是推。
当我尝试应用 LCM 的配置时,它看起来像:
如果我尝试包含 CertificateID,则会收到如下错误:
自然,当尝试应用配置时,它无法解密传递的凭据,并且在事件视图中出现错误,例如:
任何想法如何做到这一点?当我在推送模型中使用单个配置时,我使用了 certificateID。
powershell - 与较新版本相比,早期版本的 Powershell 缺少哪些主要内容?
我正在寻找一种历史课。我是 PowerShell 的后来者。我在第 4 版上学到了,并且我正在考虑在版本兼容性很重要的地方使用越来越多的命令行开关。当我运行时,我的大多数单元测试都通过了powershell -version 3
。另一方面,当我奔跑时,那里是一片红色的海洋powershell -version 2
。与其盲目地修改我的代码库以使其对 PowerShell 的 v4 之前的版本友好,我想了解这将带来什么。
有一些 帖子谈到了版本之间的一些差异,但我没有发现任何规范的内容,也没有发现任何采取回顾性观点来实现代码库向后兼容的内容。
以下是我的具体问题:
为更高版本编写的代码可能依赖于早期版本的 PowerShell 中缺少的主要内容是什么?
PowerShell 本身的版本是否向后兼容?也就是说,如果一个编写良好的脚本在版本 2 上正确运行,我是否可以期望它在版本 3、4 和 5 上运行时的行为方式相同?
powershell - 有没有办法让 Powershell 5 的 Get-Help 解析当前脚本?
我有一个非常简单的脚本:
我没有一台带有 Powershell 3 或 4 的机器来仔细检查,但我似乎记得这在 PS 5 之前有效。在 Powershell 5.0 控制台中,这是输出:
C:\Users\Administrator\Documents\WindowsPowerShell> .\testhelp.ps1 Get-Help:Get-Help 在此会话的帮助文件中找不到另一个函数。要下载更新的帮助主题,请键入:“Update-Help”。要获得联机帮助,请在位于http://go.microsoft.com/fwlink/?LinkID=107116的 TechNet 库中搜索帮助主题 。在 C:\Users\Administrator\Documents\WindowsPowerShell\testhelp.ps1:13 char:1 + Get-Help another-func + ~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ResourceUnavailable: (:) [Get-Help], HelpNotFoundException + FullyQualifiedErrorId : HelpNotFound,Microsoft.PowerShell.Commands.GetHelpCommand
我尝试将帮助注释放在函数之前以及函数内部。
这是 Powershell 5 中的回归,还是我做错了?目标是从脚本中获取每个功能的帮助输出。
更详细一点:
class - PowerShell v5 类方法 - 问题
使用 PowerShell v5 中的新类函数,如果我们可以将方法放入类中,我正在努力解决问题。
我已经尝试了以下方法并玩了一段时间,但没有运气。
我尝试通过设置属性手动输入计算机名称,但后来我假设您在创建对象时需要它
我得到的例外是
来自 $error 的完整异常链接位于http://pastebin.com/WtxfYzb5
进一步使用了 $this.prop,但您不能使用自己的参数启动构造函数。
html - 使用 New-Object -ComObject "HTMLFile" 解析本地 HTML 文件损坏?
在过去的 6 个月里,我一直在运行密码过期脚本,没有任何问题。该脚本将读取静态 html 文件并更改内存中的一些内容,然后将 html 电子邮件发送给所有密码到期的用户。
剧本似乎在过去一周左右就坏了。经过进一步调查,我已将错误范围缩小到 Powershell 应该创建新 ComObject 并将该 HTML 文件写入 ComObject 的部分。
我现在得到错误:
当我运行以下代码行时会发生上述错误:
当我调用该write()
方法时,我得到了错误。
自从过去 6 个月一直运行良好以来,我能想到的唯一改变的是我的 powershell 版本。我相信当我开始运行这个脚本时,我使用的是 Powershell v4.0,但在 Windows 更新之后,我猜 Powershell 现在是 v5.0。见下文 :
该脚本在 Windows Server 2012 R2 操作系统上运行。
有人有想法么?
我在其他问题中看到了一些建议,要求IHTMLDocument2_write()
在 ComObject 上使用该方法,但是当我尝试调用它时该方法不存在。
更新 :
我能够确认这在我的 Powershell 版本中确实被破坏了。
我只能在具有相同操作系统但低于 Powershell 版本的不同服务器上测试相同的代码:
并且代码按预期工作。
有人知道这个新版本的 Powershell 可以使用什么吗?
powershell - 如何在 PowerShell v5 模块中导出类
我有一个模块设置,就像其他一些脚本的库一样。我不知道如何将类声明放入脚本范围调用Import-Module
中。我试图安排Export-Module
一个-class
参数,比如-function
,但没有-class
可用的。我只需要在每个脚本中声明类吗?
设置:
- 〜\documents\windows\powershell\modules\holidays\中的holidays.psm1
- 活动脚本调用
import-module holidays
- Holiday.psm1 中有另一个函数可以正确返回一个类对象,但我不知道如何在导入后从活动脚本创建类的新成员
下面是这个类的样子:
powershell - New-Object -Property Hashtable 未填充 Win 10 版本 5.0 中的字段
以下代码在 PowerShell 4.0 及更早版本中运行良好。如果我在最新的 Windows 10 版本的 5.0.10240.16384 版本上运行它,则字段不会填充到新对象 ($a) 中。这是一个错误还是发生了一些变化?
4.0 及更早版本的结果:
5.0 版
版本 5 获取会员
编辑: 我已经向 Microsoft 提交了一个关于此的错误,基于这是一个会影响许多现有脚本的重大更改(如果它是一个更改)。如果该错误报告有任何更新,我将更新此问题。如果有人在 v5 中遇到可能表明这是所需/更改的行为的内容,我仍在寻找任何反馈。如果有人好奇并且无法使用 Win 10 机器,也很高兴尝试在 v5 上进行其他测试。