问题标签 [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.
c# - PSCmdlet 调用其他命令由于处理时间长而冻结?
我有一个PSCmdlet
用 C# 和 .NET 3.5 编写的,它调用在同一 .NET 文件中定义的一些其他命令Cmdlet
。
其中一个命令会在我的 SharePoint 网站上启动完全爬网并等待它完成。乐观地说,这些需要 5-10 分钟才能完成。
由于此命令需要很长时间并且PowerShell
类同步运行它们,因此控制台将同时冻结。
没关系,但几分钟后,Windows 将假定它已崩溃并轰炸PowerShell
控制台。我怎样才能防止这种情况发生?
这是我运行命令的方式:
powershell - 如何在 cmdlet 类中打印 powershell cmdlet 参数
有人可以帮我记录与参数一起发出的实际 PowerShell 命令。
我有一个用 C# 实现的 cmdlet,如下所示
如果有人打电话
我只想在 processRecord 函数中记录命令。
显然我知道 cmdlet 名称,但不确定如何打印确切的参数字符串。
Environment.CommandLine 在常规 exe 中工作,但如何在 cmdlet 中执行相同操作
谢谢
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.
c# - 如何在 C# 自定义 Cmdlet 的参数中屏蔽用户输入密码
在我的程序中,我需要在参数中询问用户密码:
我无法弄清楚密码使用的正确类型是什么。在另一个问题中: 如何安全地处理自定义编写的 PowerShell cmdlet 中的密码?
接受的答案要求在代码中使用 read-host,但我必须使用参数来询问此字段。
我也尝试使用 SecureString 作为密码,但我无法为此参数提供 SecureString,因为它将被自动接受为字符串,而不是安全字符串。
有什么方法可以实现以下用法:
powershell - Powershell 变量内联传递
在 OUlist.txt 文件中有一个 OU 列表。我无法将每个 OU 传递给 get-qadcomputer 命令。如果我在命令中使用“company.com\workstation\Win7”而不是“$_”对 OU 进行硬编码,则脚本运行良好。
关于将 OU 传递到管道中,我是否做错了什么?
powershell - Powershell搜索多个域
我正在尝试查找按业务划分的 XP 计算机帐户。我们有几个不同的业务,分布在多个域中。
我有一组不同的 txt 文件 (BusinessX.txt),每个企业都有一个文件,其中列出了企业计算机帐户的存储位置。每个列表可以在多个域和/或根级域中具有多个不同的 OU。例如...
Business1.txt 包含...
我有我的搜索工作来定位单个域的 XP 计算机帐户。当我尝试扩展搜索以根据我的列表在域之间动态更改时,我没有成功。我正在考虑在我的 ForEach-Object 循环中放置一个“if”语句来验证域并将其切换为connect-QADService -Service 'Business1.ad.com'
. 尽管某些域有 150,000 个计算机帐户要检查,但这似乎会增加大量开销。
根据我的 txt 文件列表动态切换域的策略有什么建议吗?
这是我的脚本。
c# - 如何在 C# 中为 cmdlet 添加概要/摘要?
假设您正在用 C#编写一些PSCmdLet :
如果将上述定义的模块加载到 PowerShell 中,该命令help Join-StackOverflow
将返回以下内容:
如何为此 cmdlet 添加概要/摘要,例如与以下内容相同Get-Process
:
c# - 支持 Whatif 和 Confirm 响应
这里有很多关于 SO 和其他地方的问题,解释了如何在-Confirm
整个 cmdlet 中传播到嵌套的 cmdlet 等。但是,我没有找到的是如何传播对该提示的响应。也就是说,一旦用户回答了这个提示......
...人们会合理地假设我的 cmdlet 现在可以根据用户对该提示的响应采取行动。这在一定程度上肯定是正确的:两者Suspend [S]
都是Help [?]
本地化操作,并且工作正常。
但我的主要问题是识别和采取行动Yes to All
and 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,我如何区分Yes
fromYes to All
和No
from No to All
?
c# - 如何确定调用我的 cmdlet 的脚本的名称?
在我用 C# 编写的 powershell cmdlet 中,我需要获取调用我的脚本的名称。
我从 PSCmdlet 派生了我的 cmdlet 类;在运行时有大量信息附加到这个类,但我看不到在哪里可以获得我正在寻找的信息。
是否可以获取脚本名称?如果有,它住在哪里?
c# - 从 PowerShell cmdlet 返回对象
我正在尝试为 PowerShell 管理单元创建自己的一组 cmdlet。我遇到的问题是我创建了自己的对象,我在 ProcessRecord 方法中创建并填充了该对象,但我无法更改返回类型以允许我返回我创建的对象。
这是我的 ProcessRecord 方法,但由于它覆盖了 PSCmdlet 中的方法,因此我无法将返回类型从 void 更改。
任何人都可以提供返回rptFileSettings对象的最佳方法,以便我可以在其他 cmdlet 中使用它的值吗?