我使用PowerShell通过FTP将一些文件上传到远程主机。在这个主机上运行Windows 7 Embedded。
事实证明,有EWF(增强型写过滤器)。因此,重新启动后,上传的文件消失了。要保存更改,需要在cmd(在远程主机上)通过以下方式提交它们:ewfmgr d:-commit
如何在PowerShell代码中包含此命令?
代码:
Enable-PSRemoting -Force
Set-Item wsman:\localhost\client\trustedhosts -Value * -Force
Restart-Service WinRm
Test-WSMan $line
Invoke-Command -ComputerName $line -scriptblock {cmd.exe /c "ewfmgr d: -commit"} -credential $FTPCredential
当我在远程计算机上手动运行Enable-PSRemoting -Force
时,它可以工作,但它很不舒服,需要很多时间。有没有另一种方法可以同时为许多主机执行此操作?
例如,代码:
$session = New-PSSession -ComputerName yourRemoteComputer
Invoke-Command -Session $session -Scriptblock {ewfmgr d: -commit}
Remove-PSSession -Session $session
您必须在主机上启用Powershell Remoting才能调用这样的命令(https://technet.microsoft.com/en-us/library/ff700227.aspx)
如果需要将Credentials传输到远程主机,可以将-Credential-Parameter添加到New-PSSession。本文介绍如何将有效的凭据添加到您的脚本(https://technet.microsoft.com/en-us/library/ff700227.aspx)
问候,罗尼