Я извлекаю компьютеры с нашего портала Azure, и я специально ищу устройства, которые не имели активности более 120 дней.
Проблема, возникающая при каждом извлечении этой информации, дает только активность / вход в системупервоначальной регистрации устройства.
Некоторые из наших устройств имеют несколько регистраций, поскольку они передаются от пользователя к пользователю.
Поэтому, когда я извлекаю информацию, она не является точной.
Я использовал нижеприведенное, которое, по моему мнению, должно работать, но я все еще получаю устройства, которые имеют более новую активность, чем моя целевая дата. Я также вижу ошибку, когда запускаю скрипт, который у меня есть, который приведен ниже под кодом, который я использовал.
Может кто-нибудь помочь мне, я чувствую, что я близок.
clear-host
$maxDate = Get-Date '6/1/19'
#Create a hash table to remove dupes
$set = @{}
#create our final array
$cleanSet = @()
#load data
$data = Get-MsolDevice -All | select-object -Property ObjectID, ApproximateLastLogonTimestamp, DisplayName
#for each item in the pipeline, add it to our hash table
foreach($_ in $data) {
#if the item isn't in the hash table, add it
if(!$set.Contains($_.ObjectID)) {
$set.Add($_.ObjectID, $_)
}
else {
#if we have a more recent date for the item, update the date so we only have the most recent one
if((Get-Date $_.ApproximateLastLogonTimestamp) -gt (Get-Date $set[$_.ObjectId].ApproximateLastLogonTimestamp)) {
$set[$_.ObjectID].ApproximateLastLogonTimestamp = $_.ApproximateLastLogonTimestamp
}
}
}
#now that we have the most recent date for each item, remove ones newer than our target date.
$set.GetEnumerator() | ForEach-Object{
if((get-date $_.Value.ApproximateLastLogonTimestamp) -lt $maxDate) {
$cleanSet += $_.Value
}
}
$cleanSet | select-object -Property ObjectID, DisplayName | export-csv "C:\Users\tesyuser\Desktop\Project Work\Stale machine on Azure\Exported CSV\2HIE-Stale-Device-List.csv" -NoTypeInformation
ошибка
Get-Date: Невозможно привязать параметр 'Date' к цели. Параметр исключения «Дата»: «Невозможно преобразовать значение NULL в тип« System.DateTime ».»В строке: 29 символов: 18