问题标签 [pscmdlet]
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 - Powershell:Update-TfsWorkspace cmdlet 如何更新两个工作区
我想使用 powershell 在一个脚本中从两个不同的 tfs 更新 2 个工作区。第一个工作区正在更新,没有任何问题。更新完成后,powershell 连接到第二个工作区,但不像第一次那样更新本地数据。
我猜旧的 Connection 可能仍然会阻塞管道或类似的东西,但我还没有找到任何 cmd 来清理管道。我的代码如下所示:
c# - PSCmdlet 动态自动完成参数(如 Get-Process)
在 powershell 中,某些参数具有动态自动完成行为。例如,Get-Process 参数名称。我可以使用 TAB 遍历我的所有流程。
我想在我的 PSCmdlet 中使用这种行为。
但问题是,我只知道如何使用静态自动完成值来做到这一点。请参阅示例:
这是一个如何使用本机 powershell http://blogs.technet.com/b/heyscriptingguy/archive/2014/03/21/use-dynamic-parameters-to-populate-list-of-printer-names 完成的示例。 aspx
它适用 于@bouvierr
c# - 如何设置 pscmdlet 类的帮助信息
我正在用 c# 编写一个 powershell 模块,它由一堆 powershell cmdlet 组成。
例如:
获取应用程序
当我宣布班级时
我可以做一些事情,例如为此 cmdlet 提供参数以及有关参数本身的有用消息。
我正在尝试在我的课程中提供更多文档,以便像这样的命令
获取帮助获取应用程序
将在 REMARKS 部分提供有关 cmdlet 本身的描述。
知道如何在 Visual Studio 2013 中添加它吗?
c# - 尝试从 C# 中调用 PSCmdlet 类
起初,我试图简单地声明一个新的 cmdlet 实例,但出现错误,表明我无法从 cmdlet 中调用 pscmdlet 类型的 powershell cmdlet。
为了做到这一点,我必须实例化 Powershell 引擎。
在我的情况下,如果我使用 Get-Process,它工作得很好,但 Get-Info,它是同一个项目中的另一个 PSCmdlet 似乎不起作用。
Get-Name :术语“Get-Info”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确并重试。
我可以从 powershell 窗口手动调用 get-info,但不能从我的代码中调用。
这可能与模块路径有关吗?还是因为我的模块没有加载到这个新实例化的引擎中?
如果是这样,我如何让新引擎也加载模块?
以下是 get-info 的定义方式
调用 powershell.create() 的 cmdlet 是 get-name
想法是 get-info 获取与某个对象有关的所有内容,但您可以使用 get-name 来获取特定信息。
我希望使用它来创建更小更受约束的 cmdlet,这些 cmdlet 只需调用 get-info。
但我认为它与路径有关,因为我的项目没有导入到在 get-name 中实例化的新创建的 powershell 引擎中。
谢谢!
c# - 在 c# PSCmdlet 中接受任意参数
我编写了一堆类,它们可以访问 API 并获取 JSON。编译后,我会得到很好的命令,例如 get-host、get-version、get-app 等。
每个 cmdlet 都接受一个参数,例如 -host 或 -app。
我可以编写大约 160 个这样的命令,但我现在希望编写一个更通用的 cmdlet,它可以接受任意参数和值。
据我所知,我不能在可以发出的地方声明参数
或者
或者
除非我声明所有可能有数百个参数。此外,如果未声明参数,则会引发一个不错的错误
获取信息:找不到与参数名称“主机”匹配的参数。
有没有办法我不能声明任何参数然后手动解析参数,或者c#中有什么东西可以自动解析参数列表,然后将它们分配给适当命名的变量?
例如
并且变量host和backup会自动设置吗?
c# - 通过值调用 cmdlet
我的 psm1 文件中有一个 KVP 哈希变量
这个 psm1 文件还有一个名为“newtask”的函数,它接受 $subcommand 的参数。
我想知道如何在何时执行 cmdlet Add-Host
新任务添加主机
从外壳发出。
我试图只是回应它,但这根本没有多大用处。刚刚打印出价值。
谢谢!
parameters - 在 PSCmdlet 中,我可以根据另一个变量创建一个非强制变量吗?
在 PSCmdlet 中,我可以像这样声明参数
我的问题是我想添加另一个参数,例如 PasswordEnc,用户可以在其中提供加密密码,例如 md5 哈希。
如果用户提供 PasswordEnc,则不需要 Password。有没有办法在 PSCmdlet 中做到这一点?
我想我可以编写一个 powershell 函数来确定提供了哪个密码变量,然后调用 Cmdlet。
只是想知道是否有另一种方法可以做到这一点。
谢谢
c# - Cmdlet 通过管道一次传递参数列表,而不是单个列表项
我正在创建一个 Powershell System.Management.AutomationCmdlet.Cmdlet
,以通过这种方式将字符串列表通过管道传递给 Cmdlet:
现在,在重载的“ProcessRecord”方法中,我一次只能获得一项Items.Count == 1
3 次(而不是一次通过管道获得完整的列表)。
是否有可能一次传递整个项目列表(由 Get-ChildItem 返回)?我一次只能得到一件物品。
基本上我希望使用管道具有相同的行为,就好像我使用这样的命令(Items.Count == 3
)
任何想法?
powershell - 有没有办法查看内置 powershell cmdlet 的源代码?
我想修改 compare-object 中使用的代码(以便我使用相同的算法进行比较,但修改输出并可能添加更多内容)。有什么方法可以查看用于此的代码,还是我只需要猜测?如果我以后想修改其他 cmdlet,这可能很有用。
powershell - 如何将自定义枚举传递给powershell中的函数
定义函数时,如何引用自定义枚举?
这是我正在尝试的:
但这给出了错误:
注意:我知道我可以使用ValidateSet
类似的功能;然而,它的缺点是只有一个名称值;而不是允许我使用友好名称进行编程,然后将其映射到后台的整数(我可以为此编写代码;但如果可能的话,枚举似乎更合适)。
我正在使用 Powershell v4,但理想情况下,我想要一个 PowerShell v2 兼容的解决方案,因为大多数用户默认使用该版本。
更新
我已经纠正了错字(感谢 PetSerAl;很好发现)。
[JB.InterfaceZones]$zone
现在改为[JB.InternetZones]$zone
. 现在我看到错误: