Я пишу программу, одной из функций которой является получение текущих сеансов входа в систему на компьютере Windows. Он запрашивает WMI о текущих сеансах с типом входа 2 (интерактивный), типом входа 10 (удаленный интерактив) и типом входа 11 (кэшированный интерактив). Код у меня работает хорошо, за исключением одной вещи, которую я только что заметил. Когда я тестировал его в своей рабочей среде, все было хорошо, но теперь, когда я дома и вошел в систему за пределами нашей рабочей сети, я вообще не получаю никаких сессий - и я думал, что получу сеанс входа в систему в качестве кэшированного интерактивного сеанса.
Итак, я проверил это с помощью этого кода PS, взятого с этого сайта:
$computername = "mycomputername"
Get-WmiObject -Class Win32_LogonSession -ComputerName $computername |
foreach {
$data = $_
$id = $data.__RELPATH -replace """", "'"
$q = "ASSOCIATORS OF {$id} WHERE ResultClass = Win32_Account"
Get-WmiObject -ComputerName $computername -Query $q |
select @{N="User";E={$($_.Caption)}},
@{N="LogonTime";E={$data.ConvertToDateTime($data.StartTime)}}
}
который просто берет все сеансы входа в систему. И снова, как будто я не вошел в систему вообще:
Пользователь LogonTime
---- ---------
mycomputername\IUSR 22.01.2016 00:07:50
mycomputername\SYSTEM 22.01.2016 00:07:09
mycomputername\LOCAL SERVICE 22.01.2016, 12:07:11
mycomputername\NETWORK SERVICE 22.01.2016, 12:07:10
mycomputername\ANONYMOUS LOGON 22.01.2016 0:08:03
Мое действительное имя пользователя не отображается ... Почему это может быть? Что я могу сделать, чтобы увидеть мой сеанс входа?