问题标签 [powershell-module]

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 投票
0 回答
49 浏览

powershell - How can I overcome (or what leads to) empty Azure Automation Module blades?

enter image description here

I've seen this a handful of times and it's unclear why it is the case. It's not simple a matter of having not loaded yet - the Delete button, for instance, is inactive until the blade fully loads (and the little horizontal progress indicator at the top of the blade works as usual).

It is persistent across browsers/portal sessions, users, etc.

In the runbook editor(s), the Module appears to be loaded and expandable to see its members, but as this module was recently updated, I have no way of knowing if it is actually updated or if that's just the listing of the previous module. If something is so wonky with the 'provisioning' or 'importing' or 'extracting' that the portal can't even render the blade for the module, I have little faith that everything is A-OK under the covers.

Even worse, I have no way of interrogating any output from the operations in order to remediate any potential problems - as far as my code (or portal) is concerned, the module uploaded, imported, and extracted successfully, even though it didn't, actually.

I've noticed that some system-level jobs must be responsible for these imports/extractions, because the Job Statistics Monitoring Tile on the Automation Account ticks up the count when a module is being imported, yet these phantom Jobs don't actually show up in the Jobs list (and obviously, nor do the runbooks underpinning them).

0 投票
1 回答
399 浏览

powershell - 我可以将 CSV 文件打包为模块资源吗

我有一个带有相应模块清单的自定义 PowerShell 模块。在我的模块中的一个命令中,我有一个硬编码的哈希表数组。起初这很好,但有时我不得不返回并将新的哈希表添加到这个硬编码数组中,并且数组变得很长。以这种方式管理这些数据变得越来越困难。我真正想做的是将此集合移到外部资源(例如 CSV 文件)中,并让命令从 CSV 文件中读取数据。实际上,这是我从一开始就喜欢的,但直到现在它才变得足够痛苦,以至于我不得不弄清楚如何做到这一点。

我的问题是我该怎么做呢?或者甚至可以做到吗?我已经阅读了很多关于模块清单的内容,但我不记得阅读过任何描述在清单文件中指定其他资源的方法或如何以“私有”模块的方式加载这些资源的内容。我想我可以将 CSV 文件与所有其他 PowerShell 文件一起放入模块的文件夹中,然后也许我可以找到它,$PSScriptRoot但这似乎不是很“官方”(而且我不是 100% 确定它会起作用)。另外,通过这样做,清单中的任何内容都不会向其他人建议模块正常运行所需的其他资源。

有没有这样的最佳实践,还是我完全错了?

0 投票
1 回答
221 浏览

c# - 将调用 WCF 功能的 c# DLL 导入到 PowerShell

我有一个 WCF 服务,我使用以下命令为其生成了一个接口:

我创建了一个新的绑定,如下所示:

当我尝试在 PowerShell 中使用该模块时,出现以下错误:

写入文件:由于 EndpointDispatcher 的 ContractFilter 不匹配,接收方无法处理带有 Action ' http://tempuri.org/IMyService/StartDisk ' 的消息。这可能是因为合约不匹配(发送方和接收方之间的操作不匹配)或发送方和接收方之间的绑定/安全不匹配。检查发送方和接收方是否具有相同的合同和相同的绑定(包括安全要求,例如消息、传输、无)。

在行:1 字符:1

写文件 bla -verbose

~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo : NotSpecified: (:) [Write-File], ActionNotSupportedException

FullyQualifiedErrorId : System.ServiceModel.ActionNotSupportedException,DLM.Module.WriteFile

[ProtoContract]用作序列化协议。我不得不手动将它添加到由 SvcUtil.exe 命令生成的 IMyService 接口中。

对这个问题有什么想法吗?

0 投票
1 回答
2179 浏览

powershell - 如何通过 PowerShell 脚本本身在多台机器上安装 PowerShell 模块

我需要在我的环境中的各种机器上安装 Bitlocker 相关模块。我无法手动安装它。我需要自动化安装。有人可以指出我正确的方向并为我提供指点。

我找不到任何以前的问题。我看到了下面的问题,但我们在所有机器上都没有 NuGet。 使用 nuget 在用户机器上安装 PowerShell 模块

0 投票
1 回答
211 浏览

powershell - 新模块可以返回一个 psobject 吗?

下面的这个模块返回一个空对象。有什么建议可以解决吗?

0 投票
1 回答
229 浏览

powershell - 二进制 Powershell 模块 - 从 Powershell 主机获取全局变量的值

如何$ConfirmPreference从用 C# 编写的二进制 Powershell 模块中获取全局变量的值,例如从 Powershell 主机获取?

0 投票
2 回答
648 浏览

powershell - 在 PowerShell 中动态创建 cmdlet/模块

这就是我想要实现的目标,但我找不到任何相关信息。

我想为远程服务器上可用的模块创建一个远程模块代理。

我知道如何使用远程处理,但我想要创建更清晰的脚本文件的东西。

举个例子。如果我想从远程计算机上的模块MyModule执行MyCmdlet ,我会这样做

但我想登陆这样的事情

请注意我的客户端机器上没有安装MyModule 。

我可以为每个 cmdlet 使用 Invoke-Command 包装器重新编写模块,但这不是目的。我想做的是通过为每个 cmdlet 和参数创建一个代理相等代理来远程化MyModule。即使是 Get-Help 也应该至少对参数组合起作用。

我有几个想法,但我不确定这是否可能。

  1. 创建一个powershell模块,例如PSRemotify,它将探测远程服务器上的模块并生成代码。
    1. 如果我选择将文件写入文件系统,那么这应该是可能的,如果我可以对 cmdlet 进行反思。
    2. 如果我不想保存文件,那么我需要在内存中做所有事情。我可以在内存中写入 cmdlet 的主体吗?我可以生成一个字符串并导入它的嵌入式 cmdlet 吗?
  2. 创建一个执行 1.2 的脚本。

我的偏好是选项 1.2。非常干净,不会在文件系统上留下任何痕迹。

有任何想法吗?有没有人尝试过类似的东西?

经过我的调查和@Persistent13 的回答后得出的结论:

PowerShell 开箱即用地提供了此功能。它被称为隐式远程处理。在@Persistent13 的回答之前,我选择了错误的部分,因为我认为分享我的经验很有趣,我已经在博客上写过它。 从远程服务器导入和使用模块

0 投票
1 回答
2634 浏览

powershell - 如何将脚本文件中的函数包含到 PowerShell 模块中

我正在使用 PowerShell 5.0 并尝试编写一个多文件模块。
模块的文件夹结构如下所示:

清单文件 FooModule.psd1 自定义如下:

我把这些放在 FooModule.psm1 的开头:

AnotherScriptFile.ps1 看起来像这样:

我认为,当我导入模块时,它会将 AnotherScriptFile.ps1 的函数和变量读入模块的范围,然后导出。可悲的是,在我Import-Module .\FooModule.psm1在模块的文件夹中导入模块后,调用Get-FooFunction给了我一个错误Get-FooFunction,说不存在,'Write-Host "Imported!"但被调用了。

使这项工作的正确方法是什么?

0 投票
1 回答
1277 浏览

c# - 处理将 .net 模块加载到 PowerShell 中

我有一个 .NET 程序集,它将由 Powershell 会话使用:

我需要的是自动加载另一个MyAssemblySecond.dll我知道何时MyAssemblyFirst.dll导入的自定义程序集 ()。

我正在寻找的场景是:

但我宁愿只打一个Import-Module电话:

...并以某种方式触发加载第二个程序集。

这两个程序集不相互引用,但我是两者的所有者。我只是想通过只导入一个来简化导入多个程序集。

所以在一个更广泛的例子中,我希望像这样简化一个 PS 脚本:

...

到单行:

编辑: 这样做的目的是基于位于 MyAssemblyFirst.dll 中的某个逻辑,我可能希望自动导入一些其他程序集,这些程序集会公开一些新的特定 PS 命令。

0 投票
2 回答
13645 浏览

powershell - 为 Windows 10 安装 Active Directory 模块 powershell

下午好!我只需要在 windows 10 中添加模块 rsat Active Directory 模块 powershell 执行命令:Enable-WindowsOptionalFeature -Online -FeatureName RSATClient-Roles-AD-Powershell 但是错误:

如果应用参数 -All,则安装所有组件。如何解决问题?