我有一个大型数组(从Excel电子表格导入),它有一个我要删除的"总"行.它始终是数组中的最后一项.我试图找到一种方法来删除最后一个数组项,但不能.以下数据和代码示例:
$data = Import-XLSX -Path "C:\Pathtofile\spreadsheet.xlsx" -Sheet "SheetName" -RowStart 3
$data | ? {$_.Server -eq "Total"}
Server : Total
VLAN :
IP Address :
CPU : 84
RAM : 313
C:\ : 2840
D:\ : 17950
OS Version :
OS Edition :
SQL Version :
SQL Edition :
Datastore :
Reboot :
Notes :
Run Code Online (Sandbox Code Playgroud)
我希望能够从数组中删除此行.我尝试过以下方法:
$data.Remove("Total")
Exception calling "Remove" with "1" argument(s): "Collection was of a fixed size."
At line:1 char:1
+ $ImportCSV.Remove("Total")
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) …Run Code Online (Sandbox Code Playgroud) 我有一个脚本调用另一个脚本(带参数).被调用的脚本包含Install-WindowsFeaturecmdlet.当我运行脚本时,被调用的脚本会运行,但会返回以下错误:
Install-WindowsFeature : The term 'Install-WindowsFeature' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path
Run Code Online (Sandbox Code Playgroud)
当然,我可以从PowerShell控制台运行cmdlet.我也可以从PowerShell控制台运行被调用的脚本并且Install-WindowsFeature工作正常.那么,从运行cmdlet的脚本调用脚本是否有用呢?这是我的调用代码:
$script = "C:\Path\script.ps1"
$argumentList = @()
$argumentlist += ("-Arg1", "value")
$argumentlist += ("-Arg2", "value")
$argumentlist += ("-Arg3", "value")
Invoke-Expression "$script $argumentList"
Run Code Online (Sandbox Code Playgroud)
在被调用的脚本中,我调用Install-WindowsFeature如下:
if ($someValue) { Invoke-Command -ScriptBlock {Install-WindowsFeature -Name RSAT-AD-Tools} }
Run Code Online (Sandbox Code Playgroud)
我也尝试过如下:
if ($someValue) { Install-WindowsFeature …Run Code Online (Sandbox Code Playgroud) 我有一个从包含几个元素的命令收集的数据数组.每个项目的名称元素以三个或四个字符标识符开头,后跟连字符.我想得到数组中包含相同标识符的所有项的计数.
使用以下PowerCLI(VMware)命令收集的数据:
$items = Get-Datastore <Datastore Name> | Get-VM
Run Code Online (Sandbox Code Playgroud)
数据示例:
NAME STATUS INFO DETAIL
ABC-1234-XXXX PoweredOn Info Detail
ABC-1235-XXXX PoweredOn Info Detail
ABC-1236-XXXX PoweredOn Info Detail
BCA-1234-XXXX PoweredOn Info Detail
BCA-1235-XXXX PoweredOn Info Detail
CBA-1234-XXXX PoweredOn Info Detail
CBA-1235-XXXX PoweredOn Info Detail
CBA-1236-XXXX PoweredOn Info Detail
CBA-1237-XXXX PoweredOn Info Detail
Run Code Online (Sandbox Code Playgroud)
我希望脚本能给我以下内容:
NAME COUNT
ABC 3
BCA 2
CBA 4
Run Code Online (Sandbox Code Playgroud)
我真的没有代码示例,但我考虑将PowerShell"group"方法与count方法结合使用.我正在努力将所有东西组合成可用的东西.
组:
$array = $items | Group Name
Run Code Online (Sandbox Code Playgroud)
计数:
$array.count
Run Code Online (Sandbox Code Playgroud)
编辑:添加数据收集命令