问题标签 [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.
c# - C# 不会运行 PowerShell 脚本
我想从我的 C# 项目中调用 PowerShell 脚本,但它不起作用。
当我运行代码时,我没有收到任何错误(或者我不知道在哪里可以找到它们)。我还尝试从 cmd 运行脚本并且脚本工作正常。
我的执行策略设置为无限制,所以这不是问题。
我仔细检查了路径,所以这些也不是问题。
C#代码:
PowerShell 脚本:
当我打开 test.txt 它是空的。
c# - 为什么我的 powershell 函数无法从 C# 调用?
尝试使用具有以下功能的 powershell 脚本:
在 Powershell 中工作,但是当我尝试在我的解决方案中这样做时,
它不起作用,我尝试了一些从 ps 脚本调用函数的其他方法,但它仍然无法将文件移动到另一个位置
powershell - RunSpace 及其关闭
在使用使用 RunSpace 的脚本时,我发现它占用了越来越多的系统内存。据我了解,这是因为打开的 RunSpace 在完成后不会关闭。它们保留在内存中,积累了兆字节。
如何正确关闭 RunSpace?但是,我不知道需要多长时间 - 1 秒或 1 小时。完成后自行关闭。
例如,我将给出任意脚本。
第一个脚本是我如何在 RunSpace 完成时关闭它(它显然不起作用)。
从系统内存来看,第二个脚本似乎更正确。但是,当然它并不适用于生活,因为Start-Sleep 10
冻结了主进程。
请写信给我关闭 RunSpace 完成的正确方法。谢谢
c# - 调用 PS 命令到字符串
有没有办法将调用的 powershell 命令从 C# 转换为字符串?
例如,假设我有这样的事情:
我想将调用的命令保存到日志文件中。
我可以以某种方式将整个命令作为字符串返回吗?
c# - C# PowerShell 在使用 AddCommand 时不会捕获 PowerShell.Streams,但在使用 AddScript 时会捕获
在 C# 中使用 PowerShell 时,我遇到了一个非常奇怪的行为。当我执行
没有捕获流(Stream.Information、Stream.Error、...)。但是当我使用
一切都按预期工作。任何人都可以解释这种差异吗?我错过了一些概念吗?怎么可能有区别?如何捕获 AddCommand 调用的流?
感谢您对此的任何意见!
wpf - Powershell GUI 冻结,即使使用运行空间
我正在创建一个带有 GUI 的 powershell 脚本,它将用户配置文件从选定的源磁盘复制到目标磁盘。我已经使用 VS Community 2019 在 XAML 中创建了 GUI。脚本的工作方式如下:选择源磁盘、目标磁盘、用户配置文件和要复制的文件夹。当您按下“开始”按钮时,它会调用一个名为 Backup_data 的函数,其中会创建一个运行空间。在这个运行空间中,只有一个很小的Copy-Item,其中包含您选择的参数。
该脚本工作正常,所有想要的项目都被正确复制。问题是 GUI 在复制期间冻结(没有“不响应”消息或其他任何信息,它只是完全冻结;无法单击任何地方,无法移动窗口)。我已经看到使用运行空间可以解决这个问题,但对我来说并没有。我错过了什么吗?
这是功能Backup_Data
:
c# - PowerShell 对象返回 null
我有以下命令,它返回我 null object 。当我在 PowerShell 窗口中单独运行命令时,我得到了正确的结果。下面是调用命令的 PowerShell 方法以及我定义的 PowerShell 命令。我基本上希望返回一个字符串值。请让我知道我做错了什么?
C#方法:
我的 Powershell GetRowAndPartitionKey
cmdlet 定义,上面的代码试图调用它:
c# - 从 C# 调用时无法识别 Powershell 命令
这是此问题的延续,我创建了一个 PowerShell 命令,并且能够在 PowerShell 窗口中调用该命令,但是当尝试从 C# 方法调用时,由于无法识别 cmdlet,因此出现错误,我尝试使用其他现有命令并得到相同的错误,因此我怀疑导入模块存在问题,尽管我没有在流中得到该错误。错误。我得到的唯一错误是“Get-RowAndPartitionKey 不是可识别的 cmndlt,请检查拼写.....”。
想知道是否有任何其他方法,我应该尝试一下,或者我是否可以在这里调试更多,看看我的模块是否获取所有命令。现在我不知道如何解决这个问题。
下面的方法不会在 Streams.Error 或 Verbose 中返回任何错误,但也没有输出:
脚本内容
c# - 在 C# 中获取此 Powershell 输出的正确方法是什么
我在下面没有收到任何错误,但我也没有得到输出。下面是 Powershell cmd 和调用它的 C# 方法。我想知道它是否正确编写以及如何获得来自 powershell 的输出。当我从 PowerShell 窗口运行时它工作正常
密码命令:
C#方法: