如何执行远程计算机中可用的PowerShell脚本?

时间:2012-05-04 07:20:36

标签: powershell powershell-v2.0 powershell-remoting

我试图在远程计算机上执行脚本。

我在远程计算机上做了“Enable-PSremoting”。

我在远程机器中放置了一个脚本hello.ps1

[我的客户端计算机是Windows XP,远程计算机是Windows 2003]

然后从我的客户端计算机上我尝试执行脚本。

invoke-command -computer $MachineName -filepath "C:\hello.ps1"

我收到了以下错误。

  

Invoke-Command:找不到路径'C:\ hello.ps1',因为它没有   存在。

我认为它试图从客户端机器中查找脚本。

如果我尝试运行

invoke-command -computer $MachineName -command { C:\hello.ps1 },它执行客户端远程机器中可用的脚本。

但我想在远程机器本身执行远程脚本。

如何让它运行远程机器中可用的脚本?

更新:

实际上,此命令“invoke-command -computer $MachineName -command { C:\hello.ps1 }”在远程端工作,并将结果返回给客户端。我通过查看它在客户端执行的返回值来误解。

4 个答案:

答案 0 :(得分:13)

当你写:

invoke-command -computer $MachineName -filepath "C:\hello.ps1"

脚本C:\hello.ps1将从客户端计算机中获取并带到服务器以执行。因此,您已经错误文件不存在,因为Invoke-Command正在客户端计算机中查找该文件。

答案 1 :(得分:1)

请在此处查看quick start on PowerShell remoting

答案 2 :(得分:0)

我有完全相同的探针,并使用ant -f bin/tools.xml class -Dclass.includes=com/..path-to-package/* [WMICLASS] 's create()的组合解决了它。

检查我的回答here

答案 3 :(得分:0)

我遇到了同样的错误,但我在你的代码中的一个变量中挂了一个远程会话,最后有了一些有用的东西:

rgb_img = zeros([300 300 3], 'uint8');
redValue = 127;
rgb_img(:, :, 1) = redValue;
blueValue = 12;
rgb_img(:, :, 3) = blueValue;
hsvMap = hsv(360);
figure('Position', [100 100 1000 500]);

for greenValue = 0:5:255
  rgb_img(:, :, 2) = greenValue;
  hsv_img = rgb2hsv(rgb_img);
  hsvIndex = round(hsv_img(:, :, 1).*359)+1;
  h_img = reshape(hsvMap(hsvIndex(:), :), [300 300 3]);

  subplot(1, 4, 1);
  imshow(rgb_img);
  title(sprintf('RGB = (%3d, %3d, %3d)', redValue, greenValue, blueValue));
  set(gca, 'Visible', 'on', 'Box', 'on', 'XTick', [], 'YTick', []);

  subplot(1, 4, 2);
  imshow(h_img);
  title(sprintf('Hue = %0.3f', hsv_img(1, 1, 1)));
  set(gca, 'Visible', 'on', 'Box', 'on', 'XTick', [], 'YTick', []);

  subplot(1, 4, 3);
  imshow(hsv_img(:, :, 2), []);
  title(sprintf('Saturation = %0.3f', hsv_img(1, 1, 2)));
  set(gca, 'Visible', 'on', 'Box', 'on', 'XTick', [], 'YTick', []);

  subplot(1, 4, 4);
  imshow(hsv_img(:, :, 3), []);
  title(sprintf('Value = %0.3f', hsv_img(1, 1, 3)));
  set(gca, 'Visible', 'on', 'Box', 'on', 'XTick', [], 'YTick', []);
  drawnow;
end

有一百万个Invoke-etc解决方案,但最简单的工作最终对我而言。谢谢你。