问题标签 [powershell-sdk]

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 回答
1195 浏览

c# - C# 不会运行 PowerShell 脚本

我想从我的 C# 项目中调用 PowerShell 脚本,但它不起作用。

当我运行代码时,我没有收到任何错误(或者我不知道在哪里可以找到它们)。我还尝试从 cmd 运行脚本并且脚本工作正常。

我的执行策略设置为无限制,所以这不是问题。

我仔细检查了路径,所以这些也不是问题。

C#代码:

PowerShell 脚本:

当我打开 test.txt 它是空的。

0 投票
1 回答
198 浏览

c# - 为什么我的 powershell 函数无法从 C# 调用?

尝试使用具有以下功能的 powershell 脚本:

在 Powershell 中工作,但是当我尝试在我的解决方案中这样做时,

它不起作用,我尝试了一些从 ps 脚本调用函数的其他方法,但它仍然无法将文件移动到另一个位置

0 投票
1 回答
1559 浏览

powershell - RunSpace 及其关闭

在使用使用 RunSpace 的脚本时,我发现它占用了越来越多的系统内存。据我了解,这是因为打开的 RunSpace 在完成后不会关闭。它们保留在内存中,积累了兆字节。

如何正确关闭 RunSpace?但是,我不知道需要多长时间 - 1 秒或 1 小时。完成后自行关闭。

例如,我将给出任意脚本。

第一个脚本是我如何在 RunSpace 完成时关闭它(它显然不起作用)。

从系统内存来看,第二个脚本似乎更正确。但是,当然它并不适用于生活,因为Start-Sleep 10冻结了主进程。

请写信给我关闭 RunSpace 完成的正确方法。谢谢

0 投票
2 回答
211 浏览

c# - 调用 PS 命令到字符串

有没有办法将调用的 powershell 命令从 C# 转换为字符串?

例如,假设我有这样的事情:

我想将调用的命令保存到日志文件中。

我可以以某种方式将整个命令作为字符串返回吗?

0 投票
1 回答
40 浏览

c# - C# PowerShell 在使用 AddCommand 时不会捕获 PowerShell.Streams,但在使用 AddScript 时会捕获

在 C# 中使用 PowerShell 时,我遇到了一个非常奇怪的行为。当我执行

没有捕获流(Stream.Information、Stream.Error、...)。但是当我使用

一切都按预期工作。任何人都可以解释这种差异吗?我错过了一些概念吗?怎么可能有区别?如何捕获 AddCommand 调用的流?

感谢您对此的任何意见!

0 投票
0 回答
38 浏览

c# - 来自 PSObject C# 的数据

我试图在我的 C# 应用程序上运行 powershell cmdlet 以获取系统信息。

为了响应我的请求,我收到了一个 PSObject 对象。我期待看到像对象这样的数据,这些数据带有我可以添加到我自己的对象中的 PS-commandLine 等参数。例如:

在此处输入图像描述 但实际上,我完全不知道如何从 PSObject 获取数据。当然,我可以添加 | Out-String到命令中,然后将数据解析为字符串,但是,我认为有一个更优雅的解决方案,How to get data in C# from powershell

0 投票
2 回答
1394 浏览

wpf - Powershell GUI 冻结,即使使用运行空间

我正在创建一个带有 GUI 的 powershell 脚本,它将用户配置文件从选定的源磁盘复制到目标磁盘。我已经使用 VS Community 2019 在 XAML 中创建了 GUI。脚本的工作方式如下:选择源磁盘、目标磁盘、用户配置文件和要复制的文件夹。当您按下“开始”按钮时,它会调用一个名为 Backup_data 的函数,其中会创建一个运行空间。在这个运行空间中,只有一个很小的​​Copy-Item,其中包含您选择的参数。

该脚本工作正常,所有想要的项目都被正确复制。问题是 GUI 在复制期间冻结(没有“不响应”消息或其他任何信息,它只是完全冻结;无法单击任何地方,无法移动窗口)。我已经看到使用运行空间可以解决这个问题,但对我来说并没有。我错过了什么吗?

这是功能Backup_Data

0 投票
1 回答
167 浏览

c# - PowerShell 对象返回 null

我有以下命令,它返回我 null object 。当我在 PowerShell 窗口中单独运行命令时,我得到了正确的结果。下面是调用命令的 PowerShell 方法以及我定义的 PowerShell 命令。我基本上希望返回一个字符串值。请让我知道我做错了什么?

C#方法:

我的 Powershell GetRowAndPartitionKeycmdlet 定义,上面的代码试图调用它:

0 投票
1 回答
461 浏览

c# - 从 C# 调用时无法识别 Powershell 命令

这是此问题的延续,我创建了一个 PowerShell 命令,并且能够在 PowerShell 窗口中调用该命令,但是当尝试从 C# 方法调用时,由于无法识别 cmdlet,因此出现错误,我尝试使用其他现有命令并得到相同的错误,因此我怀疑导入模块存在问题,尽管我没有在流中得到该错误。错误。我得到的唯一错误是“Get-RowAndPartitionKey 不是可识别的 cmndlt,请检查拼写.....”。

想知道是否有任何其他方法,我应该尝试一下,或者我是否可以在这里调试更多,看看我的模块是否获取所有命令。现在我不知道如何解决这个问题。

下面的方法不会在 Streams.Error 或 Verbose 中返回任何错误,但也没有输出:

脚本内容

0 投票
1 回答
180 浏览

c# - 在 C# 中获取此 Powershell 输出的正确方法是什么

我在下面没有收到任何错误,但我也没有得到输出。下面是 Powershell cmd 和调用它的 C# 方法。我想知道它是否正确编写以及如何获得来自 powershell 的输出。当我从 PowerShell 窗口运行时它工作正常

密码命令:

C#方法: