您好我在填充我创建的数组的属性时遇到了问题。
我首先在特定的计算机列表中为登录用户运行查询。我获取输出并拉出一些属性(UserName,ComputerName,Logontime)并将其泵入数组。
使用此登录用户列表,我将使用logontime并使用new-timespan计算持续时间
不幸的是,这仅填充上次计算的持续时间,而不是将每个值放入我创建的新持续时间属性中。
我已经阅读了很多其他文章并尝试了很多配置,但似乎没有任何工作。我确信我错过了一些简单的事情。
这是我正在运行的
Clear-History
Clear-Host
$endDate = (Get-Date -Format g)
$computers = Get-Content "\\<Server>\D$\<Folder1>\<Folder2>\ComputerList.txt"
$dat = $null
$loggedonuserArray = @()
$dat = @()
$loggedonuserArray = .\get-loggedonuser.ps1 -ComputerName $computers |
Where-Object -Property "SessionName" -EQ "console" |
Select-Object -Property UserName,ComputerName,LogonTime
$loggedonuserArray2 = $loggedonuserArray.Clone()
foreach ($logtime in $loggedonuserArray2.LogonTime) {
$dat += (New-TimeSpan -Start $logtime -End $endDate).TotalHours
foreach ($d in $dat) {
$loggedonuserArray2 | Add-Member -MemberType NoteProperty -Name Duration -Value $d -Force
}
}
$loggedonUserArray2 | ft -a
以下是我得到的输出示例:
UserName ComputerName LogonTime Duration
-------- ------------ --------- --------
User1 Computer1 09/16/2015 11:17 AM 0.9
User2 Computer2 09/16/2015 12:08 PM 0.9
User3 Computer3 09/16/2015 6:35 AM 0.9
User4 Computer4 09/16/2015 12:10 PM 0.9
User5 Computer5 09/16/2015 11:42 AM 0.9
User6 Computer6 09/16/2015 11:46 AM 0.9
User7 Computer7 09/16/2015 11:52 AM 0.9
User8 Computer8 09/16/2015 6:53 AM 0.9
User9 Computer9 09/16/2015 12:08 PM 0.9
User10 Computer10 09/16/2015 6:04 AM 0.9
User11 Computer11 09/16/2015 6:57 AM 0.9
答案 0 :(得分:1)
在我看来,你真正想要的是这样的东西:
<div class="wrap">
<div class="box"></div>
<div class="box"></div>
<div class="box tall"></div>
<div class="box col">
<div class="mini"></div>
<div class="mini"></div>
</div>
</div>
答案 1 :(得分:1)
基本上,每次执行此行时,您都会为数组的每个成员设置相同的Duration
属性:
$loggedonuserArray2 | Add-Member -MemberType NoteProperty -Name Duration -Value $d -Force
因此,最终,在foreach ($d in $dat)
循环结束时,$loggedonuserArray2
数组的所有成员都将拥有Duration
中最后一个元素的$dat
属性阵列。