问题标签 [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.

0 投票
1 回答
299 浏览

c# - PSCmdlet 调用其他命令由于处理时间长而冻结?

我有一个PSCmdlet用 C# 和 .NET 3.5 编写的,它调用在同一 .NET 文件中定义的一些其他命令Cmdlet

其中一个命令会在我的 SharePoint 网站上启动完全爬网并等待它完成。乐观地说,这些需要 5-10 分钟才能完成。

由于此命令需要很长时间并且PowerShell类同步运行它们,因此控制台将同时冻结。

没关系,但几分钟后,Windows 将假定它已崩溃并轰炸PowerShell控制台。我怎样才能防止这种情况发生?

这是我运行命令的方式:

0 投票
3 回答
623 浏览

powershell - 如何在 cmdlet 类中打印 powershell cmdlet 参数

有人可以帮我记录与参数一起发出的实际 PowerShell 命令。

我有一个用 C# 实现的 cmdlet,如下所示

如果有人打电话

我只想在 processRecord 函数中记录命令。

显然我知道 cmdlet 名称,但不确定如何打印确切的参数字符串。

Environment.CommandLine 在常规 exe 中工作,但如何在 cmdlet 中执行相同操作

谢谢

0 投票
2 回答
1997 浏览

c# - How to hide a parameter in Cmdlet

I want to hide a PowerShell Cmdlet parameter from user. Is there any way to do this in C#?

I want to use this parameter within my code to trigger the same cmdlet with the hidden parameter.

I use PowerShell 2.0.

Thanks.

0 投票
2 回答
2042 浏览

c# - 如何在 C# 自定义 Cmdlet 的参数中屏蔽用户输入密码

在我的程序中,我需要在参数中询问用户密码:

我无法弄清楚密码使用的正确类型是什么。在另一个问题中: 如何安全地处理自定义编写的 PowerShell cmdlet 中的密码?

接受的答案要求在代码中使用 read-host,但我必须使用参数来询问此字段。

我也尝试使用 SecureString 作为密码,但我无法为此参数提供 SecureString,因为它将被自动接受为字符串,而不是安全字符串。

有什么方法可以实现以下用法:

0 投票
1 回答
355 浏览

powershell - Powershell 变量内联传递

在 OUlist.txt 文件中有一个 OU 列表。我无法将每个 OU 传递给 get-qadcomputer 命令。如果我在命令中使用“company.com\workstation\Win7”而不是“$_”对 OU 进行硬编码,则脚本运行良好。

关于将 OU 传递到管道中,我是否做错了什么?

0 投票
1 回答
380 浏览

powershell - Powershell搜索多个域

我正在尝试查找按业务划分的 XP 计算机帐户。我们有几个不同的业务,分布在多个域中。

我有一组不同的 txt 文件 (BusinessX.txt),每个企业都有一个文件,其中列出了企业计算机帐户的存储位置。每个列表可以在多个域和/或根级域中具有多个不同的 OU。例如...

Business1.txt 包含...

我有我的搜索工作来定位单个域的 XP 计算机帐户。当我尝试扩展搜索以根据我的列表在域之间动态更改时,我没有成功。我正在考虑在我的 ForEach-Object 循环中放置一个“if”语句来验证域并将其切换为connect-QADService -Service 'Business1.ad.com'. 尽管某些域有 150,000 个计算机帐户要检查,但这似乎会增加大量开销。

根据我的 txt 文件列表动态切换域的策略有什么建议吗?

这是我的脚本。

0 投票
2 回答
2004 浏览

c# - 如何在 C# 中为 cmdlet 添加概要/摘要?

假设您正在用 C#编写一些PSCmdLet :

如果将上述定义的模块加载到 PowerShell 中,该命令help Join-StackOverflow将返回以下内容:

如何为此 cmdlet 添加概要/摘要,例如与以下内容相同Get-Process

0 投票
1 回答
900 浏览

c# - 支持 Whatif 和 Confirm 响应

这里有很多关于 SO 和其他地方的问题,解释了如何在-Confirm整个 cmdlet 中传播到嵌套的 cmdlet 等。但是,我没有找到的是如何传播对该提示的响应。也就是说,一旦用户回答了这个提示......

...人们会合理地假设我的 cmdlet 现在可以根据用户对该提示的响应采取行动。这在一定程度上肯定是正确的:两者Suspend [S]都是Help [?]本地化操作,并且工作正常。

但我的主要问题是识别和采取行动Yes to Alland No to All。在 C# ( via Cmdlet.ShouldProcess()) 和 PowerShell ( via $PSCmdlet.ShouldProcess()) 中,只能得到一个布尔结果,我只能从中推测:

  • true是 [Y] 或 [A]。
  • false是 [N] 或 [L]。

我最初曾希望,虽然没有这样说,ShouldContinue但会利用内部 cmdlet 状态来进行这种区分,但对脚本化 cmdlet 的实验表明情况并非如此。

事实上,到目前为止,我发现的唯一可能的解决方法是Jeffrey Snover 的早期版本(大约 2007 年!)PowerShell 的 Should-Process 函数,大概在“官方”之前Cmdlet.ShouldProcess并被$PSCmdlet.ShouldProcess引入。

我很难相信 PowerShell 团队忘记允许区分 Yes/Yes to All 和 No/No to All;相反,我认为我只是在忽略它。

所以我的简短问题是:对于编译的 cmdlet 和脚本化的 cmdlet,我如何区分YesfromYes to AllNofrom No to All

0 投票
2 回答
145 浏览

c# - 如何确定调用我的 cmdlet 的脚本的名称?

在我用 C# 编写的 powershell cmdlet 中,我需要获取调用我的脚本的名称。

我从 PSCmdlet 派生了我的 cmdlet 类;在运行时有大量信息附加到这个类,但我看不到在哪里可以获得我正在寻找的信息。

是否可以获取脚本名称?如果有,它住在哪里?

0 投票
1 回答
4615 浏览

c# - 从 PowerShell cmdlet 返回对象

我正在尝试为 PowerShell 管理单元创建自己的一组 cmdlet。我遇到的问题是我创建了自己的对象,我在 ProcessRecord 方法中创建并填充了该对象,但我无法更改返回类型以允许我返回我创建的对象。

这是我的 ProcessRecord 方法,但由于它覆盖了 PSCmdlet 中的方法,因此我无法将返回类型从 void 更改。

任何人都可以提供返回rptFileSettings对象的最佳方法,以便我可以在其他 cmdlet 中使用它的值吗?