问题标签 [cmdlet]
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 将手册页转换为 html
我是 Powershell 的菜鸟,我需要帮助将特定的手册页转换为 html 文档
about_script
我的代码是:get-help about_scripts | 转换为 html > scr.html
它创建了一个 html 页面,但仅在前几行中并没有大部分数据和一个显示它有多长的数字。
有人可以告诉我我做错了什么吗?
c# - 从 C# 自定义 Cmdlet 中调用 Read-Host cmdlet
我正在编写一组需要 Oauth2 身份验证的 Powershell Cmdlet。我目前能够到达一个新的浏览器窗口打开并且用户复制访问身份验证代码以传回 cmdlet 的地步。但是,这意味着我必须有一个单独的 cmdlet,它现在接受身份验证代码作为输入。
有没有办法调用读取主机?我已经尝试过这些说明,但尽管已列出,但ReadHostCommand并未显示在 Microsoft.PowerShell.Commands 命名空间下,而是显示在WhereObjectCommand下。
我试过 Console.ReadLine() 但在运行 Cmdlet 时它只是被忽略了。
c# - 在执行 C# 自定义 Cmdlet 期间收集用户输入(不是通过参数)
我正在编写与 Google Apps API 交互并需要 Oauth2 身份验证的 Cmdlet。如果用户尝试在未经身份验证的情况下运行 Cmdlet 并且不仅仅是刷新令牌,我需要他们输入浏览器提供的访问代码。(这一切都已解决。)我想在必要时暂停 cmdlet,等待他们的输入,然后仅在验证后继续。
但是,我现在只能通过抛出错误退出当前 Cmdlet 然后指示用户将访问代码作为参数传递给另一个 Cmdlet(笨拙)来做到这一点。
我一直在寻找一种方法来调用诸如 C# 的 Console.Readline 之类的东西(这只是在执行 cmdlet 时被跳过)或尝试调用 Read-Host cmdlet;一旦我从用户那里获得访问代码,代码就可以继续正常执行。我知道这不一定是“Powershell 方式”,但为了这些工具,我觉得它是用户的最佳选择。
如果我尝试这种方法:
我收到一个错误:无法直接调用从 PSCmdlet 派生的 Cmdlet。
搜索该错误导致我尝试创建一个新的 Host 对象,如下所示我得到另一个错误(也如下):
Read-Host :提示用户失败的命令,因为主机程序或命令类型不支持用户交互。尝试支持用户交互的主机程序,例如 Windows PowerShell 控制台或 Windows PowerShell ISE,并从不支持用户交互的命令类型(例如 Windows PowerShell 工作流)中删除与提示相关的命令。
有没有办法暂停 cmdlet 以从用户那里获取字符串?
编辑:为了澄清,我正在编写要从 Powershell 控制台或 ISE 或类似设备中运行的 Cmdlet,并且需要从用户 mid-cmdlet-execution 获取输入。
powershell - powershell 中的持久变量
我用 c# 编写了一个 powershell 模块,它允许我调用一些 web 服务。在我可以使用它们之前,我必须指定服务的位置。例如:
测试函数 Create-Something 和 Get-Something 访问在 Set-ServiceUrl 函数中设置的静态变量“serviceurl”。
这类似于 Azure 模块,您必须先调用 Set-AzureSubscription 才能查询服务。
我和 Azure 模块之间的不同之处在于,每次启动 powershell 时我都必须为我的模块指定服务 url,而我只需设置一次 AzureSubscription。
powershell 中是否有任何机制可以“永久”存储此类信息?还是我必须使用基于文件/注册表或环境变量的解决方案?你有什么建议?
powershell - powershell cmdlet:表达式必须可读
我的 cmdlet 试图从管道中获取值,但是在运行时,我收到错误消息:
无法处理管道输入,因为无法检索参数“合法性”的默认值。获得“合法性”的异常:表达式必须可读参数名称:表达式
我不知道是什么产生了这个错误..
谢谢你的帮助!代码如下..
和用法:
搜索交易是:
powershell - cmdlet 表示无法检索参数:表达式必须可读
我的 cmdlet 有一个Get-Deal
命令,它将从管道接收值:
如果我传递了字符串或其他类型的列表,它工作正常。但是,如果我传递了一个在以下位置创建的对象Search-Deal
:
我收到一个错误:
无法处理管道输入,因为无法检索参数“合法性”的默认值。获得“合法性”的异常:表达式必须可读参数名称:表达式
我确信search-Deal
工作正常,因为
正在工作中。并给予:
返回我想要的确切结果。
然而
也会被同一个错误。
编辑:使用
我发现了以下内容:
所以我认为管道传递对象一定有问题。
感谢您的帮助!
c# - 在默认类构造函数或 BeginProcessing 中初始化?
我正在用 C# 编写一个 cmdlet。为了让我的 cmdlet 正常工作,我需要初始化许多东西。
我是通过覆盖 BeginProcessing 还是在默认类构造函数中进行初始化?
精简示例:
c# - 如何从另一个 cmdlet 正确调用 cmdlet?
我编写了许多 cmdlet。我目前正在研究的那个我想调用我的其他 cmdlet。我正在尝试这样:
但是,当我从 powershell 运行“调用 cmdlet”时,什么也没有发生。没有错误,我在其他 cmdlet 中编写的代码都没有运行。和 中有许多WriteObject
调用,Cmdlet1
如果Cmdlet2
cmdlet 实际正在运行,我是否应该能够看到这些调用?虽然我应该提到,这显然不是我要检查以验证它们是否被成功调用的唯一事情。
c# - PSCmdlet 调用其他命令由于处理时间长而冻结?
我有一个PSCmdlet
用 C# 和 .NET 3.5 编写的,它调用在同一 .NET 文件中定义的一些其他命令Cmdlet
。
其中一个命令会在我的 SharePoint 网站上启动完全爬网并等待它完成。乐观地说,这些需要 5-10 分钟才能完成。
由于此命令需要很长时间并且PowerShell
类同步运行它们,因此控制台将同时冻结。
没关系,但几分钟后,Windows 将假定它已崩溃并轰炸PowerShell
控制台。我怎样才能防止这种情况发生?
这是我运行命令的方式:
c# - C# cmdlet - 将返回码传递给管道
我需要将一个用作两个系统之间接口的小 C# 应用程序转换为 PowerShell cmdlet。第一个系统使用一些参数调用应用程序并返回几个返回码中的一个,例如成功的 0 或特定错误的 1000 或 1001。目前,我编写的 cmdlet 正在使用 WriteObject() 将返回码传递回管道。我的问题是,如果返回码不是 0 并且发生错误,是否有更好的方法来执行此操作?
在此先感谢您的任何建议!