问题标签 [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.
powershell - 我在哪里可以找到二进制 DSC 资源的 dll?
我想扩展原始的File
DSC 资源以添加对确保源中不存在的文件在目标中被删除的支持。为此,我想至少通过在反汇编程序上检查它的代码来了解原始版本是如何实现的,或者尝试在ReferenceSource之类的地方找到它的实现,但我终生无法找到 dll 的位置实现资源的位于我的计算机上。
Get-DscResource File
当我在 PowerShell 中发出命令时,该Module
属性为空。然后我尝试检查对象本身以查看是否出现任何问题,但该Path
属性也是空的,而该ParentPath
属性指向C:\Windows\system32\Configuration\Schema\MSFT_FileDirectoryConfiguration
,它只包含元数据文件而不包含二进制 dll。
我知道我可能可以使用我链接的另一个问题中描述的方法来解决这个问题,但是我们需要很多具有这种行为的文件夹,这样维护这些脚本将是一个问题。
理想情况下,可以扩展原始类并将此行为添加到其中,但我不指望这是可能的。我只是想将原始实现作为添加此功能的基线。
考虑到这一切,我在哪里可以找到实现给定二进制 DSC 资源功能的实际 dll?
powershell - 嵌套函数未被识别为 cmdlet 的名称
以下是感兴趣的文件(高度简化的版本):
main-func.psm1
:
现在我打开 Windows Powershell 并执行以下命令:
我得到的输出如下:
但是,如果我用 替换main-workflow
函数main-func
,func-outer
那么它可以工作。
我对 Powershell 和 Workflows 还很陌生,并且需要使用工作流。有人可以解释这里有什么问题吗?
powershell - 如何将脚本文件集合转换为模块?
你们知道,是否可以将仅由函数组成的 PowerShell 项目转换为模块?我想要实现的是创建我所有功能的可分发模块,以便其他人可以使用它。但无需花费时间将所有功能转换为 cmdlet。
我的每个函数都在单独的文件中。然后,当我创建 *.psd1 并尝试通过“FunctionsToExport”包含函数时,它不起作用。加载模块后我看不到我的功能。
当它们不是(全部)在 .psm1 文件中时,甚至可以从模块中导出函数吗?我仍在尝试找出 *psd1 和 *psm1 文件的真正区别和使用。
java - 从 Java 加载第 3 方模块运行 PowerShell - ResourceUnavailable: FileNotFoundException
我正在移植一个利用 3rd 方模块 (NetCmdlets) 的 PS4 脚本,并且在 Powershell 窗口中工作得非常好,但似乎在从 Java 程序运行时忘记了如何加载 3rd 方模块。
我会对任何人对此的潜在原因和解决方案的想法感兴趣......
这是调用 Java PGM:
这是输出:
这是 PowerShell 脚本:(它只应该加载模块作为测试 [概念证明])
我仔细阅读过的一些研发考虑:
http://technirman.blogspot.com/2014/06/invoke-powershell-commands-through-java.html
powershell - 安装 WinSCP PowerShell 模块时遇到问题
我正在尝试在 Windows 7 系统上使用WinSCP PowerShell 模块。这就是我所做的:
- 已安装 Windows PowerShell 5.0 版。
- 安装Windows管理框架v5.0
- 以管理员身份启动 PowerShell
- 执行的命令
Set-ExecutionPolicy Unrestricted
- 执行的命令
Install-Module -Name WinSCP
(导致没有输出)。 Yes
在要求下载和安装时选择NuGet-anycpu.exe
最后,我通过执行 command 进行了完整性检查Open-WinSCPSession
,这导致以下错误:
这表明该模块未正确安装。关于我做错了什么有什么建议吗?
vb.net - 在 Import-Module 期间添加类型
PowerShell中是否有Add-Type
导入模块时?
我有一个作为模块导入的自定义 VB DLL。DLL 中有 2 个导入:
依赖于的功能在WqlQueryEngine
我这样做之前不起作用:
无论如何在导入期间这样做吗?或者更改 PowerShell 在哪里寻找程序集?
另外为什么我必须这样做?导入所依赖的文件都在同一个目录中?第一个导入依赖于C:\Program Files (x86)\Configuration Manager\Console\bin\Microsoft.ConfigurationManagement.ManagementProvider.dll
.
为什么一个工作而另一个需要添加?
powershell - #Requires 看不到模块,Import-Module 有效
当我在第一行运行带有#Requires -Version 4 -Modules TestModule
语句的简单脚本时,出现错误:
脚本“TestScript.ps1”无法运行,因为缺少脚本的“#requires”语句指定的以下模块:TestModule CategoryInfo : ResourceUnavailable: (TestScript.ps1:String) [], ScriptRequiresException FullyQualifiedErrorId : ScriptRequiresMissingModules
一些有趣的事实:
- 我第二次运行这个脚本(同一个会话),模块被加载并且一切正常。
- 脚本目录位于网络共享上,但其他 7 个模块加载时没有任何问题(模块类型是清单、脚本和二进制 - 它们都可以工作)。
- 其中一个模块也有
#Requires -Version 4 -Modules TestModule
语句,但是当我运行#Requires
指向该模块的脚本时,两个模块都被加载而没有任何问题。 - 路径显然被添加到
PSModulePath
. - 在运行脚本之前,
Get-Module -ListAvailable
会列出 TestModule 及其所有命令。 Import-Module
第一次工作。- 机器上可能缺少某些东西:登录该计算机的任何人都遇到了同样的问题。
$PSVersionTable
:
我不知道是怎么回事。
powershell - 是否可以有辅助模块?
我在 PowerShell 中有许多高级功能,它们处理版本号,这是我们配置模块的核心部分。
当用户导入配置模块时,这些功能应该可供他们使用。我可以将所有功能复制到配置模块中,但如果它像辅助模块一样保存,那将非常好组织。
最终用户应该只导入主配置模块,但这个帮助模块应该包含在其中。有没有办法做到这一点?
powershell - 从模块内部访问 PowerShell 脚本参数
我有一个 PowerShell 模块,其中包含许多常见的管理和部署功能。这安装在我们所有的客户端工作站上。这个模块是从大量在登录时、通过计划任务或部署期间执行的脚本中调用的。
从模块中,可以获得调用脚本的名称:
但是,在模块中,我没有找到任何访问最初传递给调用脚本的参数的方法。出于我的目的,我更喜欢以字典对象的形式访问它们,但即使是原始命令行也可以。不幸的是,鉴于我的用例,从脚本中访问参数并将它们传递给模块不是一种选择。
有任何想法吗?谢谢你。
powershell - 嵌套模块中无法识别模块辅助函数
我有一个由 4 个 .psm1 文件组成的 Powershell 模块:
- DatabaseUserManagement.psm1 - 包含我的大部分公共 cmdlet。
- PermissionControl.psm1 - 包含最终的公共 cmdlet。
- ErrorHandling.psm1 - 包含一个私有错误处理函数。
- 辅助函数 - 包含大约 10 个小型私有辅助函数。
无论出于何种原因,PermissionControl.psm1 (Set-UserPermission) 中的函数似乎都无法看到任何辅助函数:
为清楚起见添加了评论
权限控制.psm1
数据库用户管理.psm1
HelperFunctions.psm1(仅前面代码中提到的那些)
数据库用户管理.psd1
我得到的错误如下: