我尝试使用以下远程计算机性能计数器代码。 getAll(counters)返回一个String数组,其中包含我想要的所有Performance Counter Pathes。但它不起作用。
调用命令后,结果不包含任何内容。 任何想法为什么这不能正常工作?
Runspace runspace = RunspaceFactory.CreateRunspace();
runspace.Open();
Pipeline pipeline = runspace.CreatePipeline();
pipeline.Commands.AddScript(@"$sessions = New-PSSession -ComputerName " + serverName + Environment.NewLine
+ @"Invoke-Command -session $sessions -ScriptBlock {Get-Counter -counter " + getAll(counterNames) + " }" + Environment.NewLine
+ "Remove-PSSession -Session $sessions" + Environment.NewLine
+ "exit" + Environment.NewLine + "exit" + Environment.NewLine);
result = pipeline.Invoke();
例如,getAll返回此
getAll(counterNames)
{string[2]}
[0]: "\\Memory\\Available Bytes"
[1]: "\\Processor(_Total)\\% Processor Time"
我用于本地Power Shell命令,它正在使用getAll
psh.AddCommand("get-counter");
psh.AddParameter("computername", serverName);
psh.AddParameter("counter", getAll(counterNames));
result = this.PowershellInvoke(psh);
但是我需要远程计算机的解决方案,我需要一个会话。