Powershell

Pitäisi saada listattua kaikki avoimet paikalliset käyttäjät siten, että jokaisesta kerrotaan käyttäjänimi, koko nimi, kaikki ryhmät joissa tunnus on ja lastlogon

Saan tällä hetkellä listattua nuo erikseen, mutta koska tunnuksia riittää melkoisesti pitäisi saada suoraan yhdistetty lista. Tuon ei kuvitteli olen osaavalle vaikea, mutta omat yritykset eivät ole vielä tuottaneet toimivaa versiota

ChatGPT on omiaan näitä varten.

Esimerkkinä vaikka tämä koodi jonka generoin chatgpt:llä

Koodi:
# Listaa kaikki paikalliset käyttäjät, jotka eivät ole poistettu käytöstä
$users = Get-LocalUser | Where-Object { -not $_.Disabled }

# Kerätään tiedot jokaisesta käyttäjästä
$result = foreach ($u in $users) {
    try {
        # Käyttäjän ryhmät
        $groups = (Get-LocalGroup | ForEach-Object {
            try {
                if (Get-LocalGroupMember -Group $_.Name -ErrorAction SilentlyContinue | Where-Object { $_.Name -eq $u.Name }) {
                    $_.Name
                }
            } catch {}
        }) -join ", "

        # Viimeinen kirjautuminen (jos saatavilla)
        $lastLogon = $u.LastLogon
        if (-not $lastLogon) { $lastLogon = "Ei tietoa" }

        # Tulostetaan yhteen objektiin
        [PSCustomObject]@{
            Käyttäjänimi = $u.Name
            KokoNimi     = $u.FullName
            Ryhmät       = $groups
            LastLogon    = $lastLogon
        }
    } catch {
        Write-Warning "Virhe käyttäjän $($u.Name) kohdalla: $_"
    }
}

# Näytetään tulos taulukkona
$result | Sort-Object Käyttäjänimi | Format-Table -AutoSize
 
ChatGPT on omiaan näitä varten.

Esimerkkinä vaikka tämä koodi jonka generoin chatgpt:llä

Koodi:
# Listaa kaikki paikalliset käyttäjät, jotka eivät ole poistettu käytöstä
$users = Get-LocalUser | Where-Object { -not $_.Disabled }

# Kerätään tiedot jokaisesta käyttäjästä
$result = foreach ($u in $users) {
    try {
        # Käyttäjän ryhmät
        $groups = (Get-LocalGroup | ForEach-Object {
            try {
                if (Get-LocalGroupMember -Group $_.Name -ErrorAction SilentlyContinue | Where-Object { $_.Name -eq $u.Name }) {
                    $_.Name
                }
            } catch {}
        }) -join ", "

        # Viimeinen kirjautuminen (jos saatavilla)
        $lastLogon = $u.LastLogon
        if (-not $lastLogon) { $lastLogon = "Ei tietoa" }

        # Tulostetaan yhteen objektiin
        [PSCustomObject]@{
            Käyttäjänimi = $u.Name
            KokoNimi     = $u.FullName
            Ryhmät       = $groups
            LastLogon    = $lastLogon
        }
    } catch {
        Write-Warning "Virhe käyttäjän $($u.Name) kohdalla: $_"
    }
}

# Näytetään tulos taulukkona
$result | Sort-Object Käyttäjänimi | Format-Table -AutoSize
Muuten hyvä, mutta ei listaa ryhmiä kun kokeilin ajaa sen. Lisäksi varsin hidas, mutta se on sivuseikka jos muuten toimii
 

Uusimmat viestit

Statistiikka

Viestiketjuista
290 691
Viestejä
4 974 290
Jäsenet
79 827
Uusin jäsen
IisakkiL

Hinta.fi

Back
Ylös Bottom