Powershell远程处理和页面文件

时间:2012-08-22 15:51:19

标签: powershell remoting pagefile

我写了一个powershell脚本,它连接到远程机器,目的是在所述机器上执行软件卷展栏。基本上它连接,映射驱动器,将卷展栏从映射驱动器复制到目标机器,然后执行perl脚本来安装卷展栏。如果我手动执行这些步骤一切正常。当我尝试使用我的脚本时,远程机器上的perl脚本失败,说“分页文件太小,无法完成此操作”。

有人可以解释我在远程操作时需要考虑的注意事项吗?我已经尝试过监控内存使用情况,但我没有看到任何异常情况。页面文件操作系统是否宽,或者是否存在某种类型的每个用户配置,我的脚本在连接时应该设置?

如果需要,我可以发布我的脚本片段,但脚本是426行,所以我认为完全发布会是压倒性的。

2 个答案:

答案 0 :(得分:6)

我发现远程shell的管理方式与登录到框并执行powershell会话的方式不同。我必须使用以下命令之一增加可用的最大内存量:

Set-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB 1024

winrm set winrm/config @{MaxMemoryPerShellMB="1024"}

默认值为150MB,在我的情况下没有削减它。我不能说我推荐1GB,我只是一个开发者。我试着加油,直到找到适合我的东西。

答案 1 :(得分:0)

我尝试使用此代码以管理员身份运行puppet客户端,但框架仍然抱怨“拒绝访问”

Exe(C:\ Users \ lmo0 \ AppData \ Local \ Temp \ Microsoft .NET Framework 4 Setup_4.0.30319 \ Windows6.1-KB958488-v6001-x64.msu)因0x5失败 - 访问被拒绝。

using System;
using System.Diagnostics;

namespace RunAsAdmin
{
    class Program
    {
        static void Main(string[] args)
        {
            Process proc = new Process();

            Process p = new Process();
            p.StartInfo.FileName = @"powershell.exe";
            p.StartInfo.Arguments = @"invoke-command -computername vavt-pmo-sbx24 -ScriptBlock {&'C:\Program Files (x86)\Puppet Labs\Puppet\bin\puppet.bat' agent --test --no-daemonize --verbose --logdest console}";
            p.StartInfo.Verb = "runas";
            p.StartInfo.UseShellExecute = false;
            p.StartInfo.RedirectStandardOutput = true;
            p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;

            p.Start();

            while (p.HasExited == false) {
               Console.WriteLine(p.StandardOutput.ReadLine());
            }
            Console.ReadLine();
            p.WaitForExit();
            p.Close();


        }
    }
}