我有一个PowerShell脚本,它使用Get-ChildItem
cmdlet从远程文件夹中获取文件列表(该命令需要很长时间,因为它是一个大文件夹)。
当我在服务器上运行脚本时,一切正常
脚本:
$serverip = someremoteip
$mainbackuplocation= someremotelocation
$folder = someremotefolder
$remotefolder = Get-ChildItem "\\$serverip\\d$\\$mainbackuplocation\\$folder\\wwwroot" |
Out-File d:\log.txt
但是如果我试图通过C#运行脚本,那么该文件根本没有输出。
SecureString securepassword = String2SecureString(password);
PSCredential credential = new PSCredential(userName, securepassword);
WSManConnectionInfo connectionInfo = new WSManConnectionInfo(target,shell,credential);
Runspace remote = RunspaceFactory.CreateRunspace(connectionInfo);
remote.Open();
PowerShell PowerShellInstance = PowerShell.Create();
PowerShellInstance.Runspace = remote;
PowerShellInstance.AddScript("D:\\backup\\test.ps1");
var result = PowerShellInstance.Invoke();
我可以看到日志文件是在服务器上创建的,因此PowerShell脚本正在运行,但dir命令什么都不做。
想知道我做错了什么。
答案 0 :(得分:0)
如果您正在使用上面写的代码 - 那么就有一个小包。 Get-ChildItem之后没有空间 - 由于这个错误 - 没有创建log.txt文件。
尝试:
$remotefolder = Get-ChildItem "\\$serverip\\d$\\$mainbackuplocation\\$folder\\wwwroot" | Out-File d:\log.txt