使用 PSSession 的 PowerShell 删除项

Asu*_*nez 3 c# powershell remote-access

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

我能够Copy-Item向和从远程机器通过第一创建New-PSSession并执行Copy-Item一个额外参数小命令-ToSession/-FromSession $s,其中$s是通过所产生的一个可变New-PSSession

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

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

res*_*987 6

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

如果要键入路径:

Invoke-Command -Session $PSSession -Command {Remove-Item c:\windows}
Run Code Online (Sandbox Code Playgroud)

或者

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

$Path = 'C:\Windows'
Invoke-Command -Session $PSSession -Command {Remove-Item $Using:Path}
Run Code Online (Sandbox Code Playgroud)

或者

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

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