FOK!forum / Digital Corner / Objecten in var stoppen (Powershell)
#ANONIEMvrijdag 12 januari 2018 @ 15:08
Hoi,

Voor schoolopdracht is het de bedoeling om gebruikers die nog nooit zijn ingelogd te verwijderen middels een powershell script. Het deel dat ik ADUsers controleer of ze nog nooit zijn ingelogd is gelukt. Ook is het mij gelukt om een lijst met SAMAccountNames van deze gebruikers te listen.

Nu is mijn vraag, hoe kan ik met deze info de users verwijderen? Ik dacht zelf aan met een for-loop door mijn resultaat heen en vervolgens verwijderen, maar hoe?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
function SelectAccounts {
    Get-ADUser -f {-not ( lastlogontimestamp -like "*") -and (enabled -eq $true)} | select SamAccountName,Name
}

function ChoiceMenu {

    if ($input -eq 'y') {
    DeleteAccount
    }
    elseif ($input -eq 'n') {
    Write-Host "Het script word afgebroken"
    return
    }
    else {
    Write-Host "Foutieve invoer, probeer opnieuw"
    DeleteAccount
    }

}

function DeleteAccount {

}

Write-Host "De volgende accounts zullen verwijderd worden"
SelectAccounts
$input = Read-Host 'Doorgaan met uitvoeren van het script? (Y/N)'
ChoiceMenu

De SAMAccountName heb ik dus al, maar hoe kan ik deze in een variabele stoppen zodat ik bijvoorbeeld het commando

Remove-ADUser $name

kan uitvoeren.

Bvd,
spijkerbroekvrijdag 12 januari 2018 @ 15:11
Is dat niet het hele punt van een schoolopdracht? Dat je het zelf uitvindt?
#ANONIEMvrijdag 12 januari 2018 @ 15:12
quote:
0s.gif Op vrijdag 12 januari 2018 15:11 schreef spijkerbroek het volgende:
Is dat niet het hele punt van een schoolopdracht? Dat je het zelf uitvindt?
Maar wanneer ik geen idee heb waar ik moet zoeken of hoe ik dit fix schiet ik niks op hé :P
#ANONIEMvrijdag 12 januari 2018 @ 15:43
Opgelost

1
2
3
4
5
6
$Users = Get-ADUser -Filter { LastLogonDate -notlike "*" -and Enabled -eq $true } -Properties LastLogonDate | Select-Object @{ Name="Username"; Expression={$_.SamAccountName} }, Name, LastLogonDate, DistinguishedName

ForEach ($Item in $Users){
  Remove-ADUser -Identity $Item.DistinguishedName -Confirm:$false
  Write-Output "$($Item.Username) - Deleted"
}