我非常急于尝试找到一种方法来查询公司域中的所有 Windows 7 计算机,并确定他们最后一次使用 Microsoft Office 的时间。我们正在接受审核,明天需要完成(是的),我想看看我们是否可以在支付我们不需要的许可证之前卸载 Office。
我有一段时间没有使用 PowerShell,坦率地说,这是我昨晚开始使用此代码后发现的 - 即 newb。也许,有更好或更简单的方法?昨晚我尝试搜索预先完成的脚本或程序,但找不到任何说明上次使用 Office 的时间。
我可以使用以下代码和函数获取最新的“LastUse”,但我需要知道该号码与哪个计算机名称相关联。现在它只返回最新的数字:20170928
function Measure-Latest {
BEGIN { $latest = $null }
PROCESS {
if (($_ -ne $null) -and (($latest -eq $null) -or ($_ -gt $latest))) {
$latest = $_
}
}
END { $latest }
}
$Software = Get-WmiObject -Class win32_softwarefeature | Select Caption,LastUse
$ComputerName = $env:COMPUTERNAME
$(foreach ($item in $Software)
{
$Name = $Item.Caption
$LastUsedString = $Item.Lastuse.Substring(0,8)
$LastUsed = [int]$LastUsedString
if ($Name -like 'Microsoft Office*' -or $Name -like 'Microsoft Outlook')
{
$LastUsed
} }) | Measure-Latest