相当新的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
真的想要两件事:
提前致谢!
把头撞到键盘上.
只需要删除子文档.下面的示例在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) 这个让我有些难过。我通常在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接受逗号描述似乎是一个技巧。是否可以使用某种数组,哈希表等来重新创建它?
有人知道吗
我现在感觉很沮丧,但我就是无法让它发挥作用。对 ARM 模板有点陌生,很抱歉我的无知。
我尝试将parameters.json 与New-AzResourceGroupDeployment 结合使用,但我想在VMName 中动态提供它。
我正在尝试使用它作为 NSG 名称:
“值”:“[concat(变量('vmName'),'-nsg')]”
但我得到一个错误:
New-AzResourceGroupDeployment:上午 6:39:21 - 错误:代码=InvalidResourceName;消息=资源名称 [concat(variables('vmName'),'-nsg')] 无效。该名称的长度最多可达 80 个字符。它必须以单词字符开头,并且必须以单词字符或以“ ”结尾。该名称可能包含单词字符或“.”、“-”、“ ”。
我缺少什么?