Мне нужно экспортировать результат в файл Excel на основе столбцов или файл с разделителями-запятыми (CSV), чтобы иметь возможность обрабатывать результат в SQL Server 2008 R2.
Мне нужно получить все имена учетных записей локальных пользователей, полные имена, членство в группах и их описание.
Я немного погуглил в этом тишине и обнаружил, что могу получить все, кроме статуса, с помощью ADSI, как показано в следующем измененном скрипте:
clear
Get-Content "C:\scripts\Servers.txt" | ForEach-Object {
$Comp = $_
if (test-connection -computername $Comp -count 1 -quiet) {
([ADSI]"WinNT://$comp").Children | ? {$_.SchemaClassName -eq 'user'} | % {
$groups = $_.Groups() | % {$_.GetType().InvokeMember("Name", 'GetProperty', $null, $_, $null)}
$_ | Select @{n='Användarnamn:';e={$_.Name}},
@{n='Fullständigt Namn:';e={$_.FullName}},
@{n='Senast Använt:';e={$_.LastLogin}},
@{n='Tillhör grupp(er):';e={$groups -join ';'}},
@{n='Beskrivning:';e={$_.Description}}
}
} else {
Write-Warning "Server '$Comp' is Unreachable hence Could not fetch data"
}
} | Export-Csv -NoTypeInformation -Encoding UTF8 -Delimiter ";" -Path "C:\scripts\LocalUsers.csv"
[Источник]
Я знаю, что этот сценарий создан для запроса нескольких серверов в документе servers.txt
, но на данный момент я ввел только "localhost". Тем не менее, я сохраняю его в таком виде на случай, если в будущем возникнет необходимость.
Однако, когда он дошел до значения ADSI для получения статуса учетной записи «отключен» или «активен», я упал. Кажется, вывод значения меня немного удивляет.
Однако после поиска в Google и выяснения, что это может или не может быть получено это путем преобразования побитового чего-то, я начал смотреть на команду Get-WmiObject
в PowerShell, чтобы объединить "отключенное" значение Get-WmiObject
с указанной выше командой ADSI из сценария ниже.
Get-WmiObject -Class Win32_UserAccount -Filter "LocalAccount='True'" |
Select Name, FullName, Disabled, Lockout, PasswordRequired, PasswordChangeable |
Export-Csv -NoTypeInformation -Encoding UTF8 -Delimiter "," -Path "C:\scripts\AccountDisabled.csv"
Однако я не уверен, как объединить результат (или решить значение преобразования ADSI), чтобы он попал в тот же файл Excel на основе столбцов или файл CSV.