使用PSSession的PowerShell Remove-Item

时间:2017-06-09 10:51:43

标签: c# powershell remote-access

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

首先创建( ... ... )>>"%LOGFILE%" 并使用其他参数Copy-Item执行New-PSSession cmdlet,我可以Copy-Item与远程计算机进行-ToSession/-FromSession $s,其中$s是由New-PSSession生成的变量。

我正在寻找一种方法来删除,添加和移动项目,但我已经坚持使用删除部分。 MSDN没有指定任何特定参数来代替-ToSession/-FromSession - 有没有其他方法可以使用PSSession删除文件?我想限制"方式"连接到远程主机的最低限度。

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

1 个答案:

答案 0 :(得分:3)

据我所知,这就是你想要做的事情:

如果要输入路径:

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

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

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

如果您需要经典,可以通过-argumentlist参数将变量传递到scriptblock中。您可以通过$args数组或参数块在scriptblock中选择它们。当然,scriptblock中的变量名称可能与外部变量名称不同。

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