c# - PowerShell 使用 PSSession 删除项目

标签 c# powershell remote-access

我正在尝试使用 C# 中的 PowerShell 为远程计算机创建一个简单的文件操作 API。

我可以通过首先创建 New-PSSession 并使用附加参数 -ToSession/-FromSession $s,其中 $s 是由 New-PSSession 生成的变量。

我正在寻找一种方法来对删除、添加和移动项目执行相同操作,但我已经受困于删除部分。 MSDN 没有指定任何特定参数来代替 -ToSession/-FromSession - 还有其他方法可以使用 PSSession 删除文件吗?我想将连接到远程主机的“方式”限制在最低限度。

免责声明:我能够在 C# 中创建远程 PowerShell 客户端并远程运行命令,但我宁愿在客户端而不是主机上控制进程。

最佳答案

据我了解,这就是你想要做的:

如果要输入路径:

Invoke-Command -Session $PSSession -Command {Remove-Item c:\windows}

使用路径作为变量,你需要利用$Using:关键字。这适用于 PoShv3 或更高版本。

$Path = 'C:\Windows'
Invoke-Command -Session $PSSession -Command {Remove-Item $Using:Path}

如果需要经典,可以通过-argumentlist 参数将变量传递到脚本 block 中。您可以通过 $args 数组或参数 block 在脚本 block 中获取它们。当然,脚本 block 内部的变量名可以与外部不同。

$Path = 'C:\Windows'
Invoke-Command -Session $PSSession -Command {Param($Path) Remove-Item $Path} -ArgumentList $path

关于c# - PowerShell 使用 PSSession 删除项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44455915/

相关文章:

java - 从java在远程机器上运行linux命令

c# - 如何在委托(delegate)中使用字典

c# - IdentityServer4 ASP.NET Core Identity 不会重定向回客户端

c# - 关于 ASP.NET 的问题

json - 使用PowerShell将成员附加到JSON中的数组

powershell - 从网站下载图像

c# - 非线程安全单例的危险是什么?

powershell - 如何使用PowerShell比较两个文本文件以查看它们是否相等?

sql - 使用本地文件在远程数据库中执行 COPY 命令

linux - 如何远程使用 Heritrix 的 webUI