小编Eri*_*aub的帖子

PowerShell通过C#控制台输出不同

相当新的C#,对PowerShell来说并不新鲜.

我想使用C#来执行PowerShell代码.但是,对象的输出与在PowerShell窗口中运行命令的输出不同.我找回了对象的名字而不是它的数据.这是我正在尝试的:

string script = @"
    get-process | ft
";

PowerShell powerShell = PowerShell.Create();

powerShell.AddScript(script);
var results = powerShell.Invoke();
foreach (var item in results)
{
    Console.WriteLine(item);
}
Run Code Online (Sandbox Code Playgroud)

返回:

Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData

但是,在PowerShell命令行窗口中,它返回更加格式化的表视图:

PS C:\ Dropbox\PowerShell> ps | FT

处理NPM(K)PM(K)WS(K)VM(M)CPU(s)Id SI ProcessName ------- ------ ----- ----- --- - ------ - - ----------- 131 12 1980 2572 85 0.45 13216 1 acrotray

真的想要两件事:

  1. 将生成与PowerShell命令窗口相同的输出的代码
  2. 对正在发生的事情的解释,以便我可以学习如何更好地导航它

提前致谢!

c# powershell

5
推荐指数
1
解决办法
1498
查看次数

MongoDB/Mongoose $ pull(删除)子文档无法正常工作

把头撞到键盘上.

只需要删除子文档.下面的示例在OnCommands中只有一个项目,但那里可能有很多项目.我试过find,findbyid,updatebyId,pull,一个接一个的东西.尝试通过subid的_id和通用searchinMost简单运行而不做任何错误.

如果你能告诉我我做错了什么,那将是非常好的,这是我的代码的最后一部分是行不通的.

样本数据:

> db.EntryPoints.find({_id: ObjectId("569e4fabf1e4464495ebf652")}).pretty()
{
        "__v" : 0,
        "_id" : ObjectId("569e4fabf1e4464495ebf652"),
        "name" : "bbbb",
        "offCommands" : [ ],
        "onCommands" : [
                {
                        "data" : "11111",
                        "operation" : "on",
                        "command" : "ISY-HTTPGet",
                        "_id" : ObjectId("569e4faff1e4464495ebf653")
                }
        ]
Run Code Online (Sandbox Code Playgroud)

模型:

var mongoose = require('mongoose');
var Schema = mongoose.Schema,
    ObjectId = Schema.ObjectId;

var onCommandsSchema = new Schema({
    command: String
    ,operation: String
    ,data: String
})

var offCommandsSchema = new Schema({
    command: String
    ,operation: String
    ,data: String
})

mongoose.model('onCommands', onCommandsSchema);
mongoose.model('offCommands', offCommandsSchema);

// …
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb node.js

4
推荐指数
1
解决办法
1424
查看次数

通过变量具有多个路径的Get-ChildItem

这个让我有些难过。我通常在Powershell方面感觉很高级,但我根本不了解这一功能的细微差别。

这有效

$LogFiles = Get-ChildItem -Path c:\windows\temp\*.log,c:\temp\*.log,C:\programdata\Microsoft\IntuneManagementExtension\Logs\*.log
Run Code Online (Sandbox Code Playgroud)

但是我想做的(不起作用)是这样的:

$LogsToGather = "c:\windows\temp\*.log,c:\temp\*.log,C:\programdata\Microsoft\IntuneManagementExtension\Logs\*.log"
$LogFiles = Get-ChildItem -Path "$($LogsToGather)" -Recurse
Run Code Online (Sandbox Code Playgroud)

我已经尝试过将VAR设置为数组,也尝试过使用字符串进行许多操作。我能够解决这个问题,但是我对了解哪种数据类型-path具有这种常见的描述并能够动态创建它具有独特的兴趣。

该cmdlet接受逗号描述似乎是一个技巧。是否可以使用某种数组,哈希表等来重新创建它?

有人知道吗

powershell

3
推荐指数
1
解决办法
63
查看次数

在 Azure ARM 模板中将变量与字符串连接起来

我现在感觉很沮丧,但我就是无法让它发挥作用。对 ARM 模板有点陌生,很抱歉我的无知。

我尝试将parameters.json 与New-AzResourceGroupDeployment 结合使用,但我想在VMName 中动态提供它。

我正在尝试使用它作为 NSG 名称:

“值”:“[concat(变量('vmName'),'-nsg')]”

但我得到一个错误:

New-AzResourceGroupDeployment:上午 6:39:21 - 错误:代码=InvalidResourceName;消息=资源名称 [concat(variables('vmName'),'-nsg')] 无效。该名称的长度最多可达 80 个字符。它必须以单词字符开头,并且必须以单词字符或以“ ”结尾。该名称可能包含单词字符或“.”、“-”、“ ”。

我缺少什么?

azure azure-powershell azure-devops

0
推荐指数
1
解决办法
7015
查看次数