Avatar billede MLJ foto Novice
24. april 2018 - 10:55 Der er 5 kommentarer og
1 løsning

Powershell driller, hente brugere som IKKE er på liste

Hej

Jeg sidder og slåes med et powershell hvor jeg ønsker at liste alle brugere i AD som IKKE er med i en CSV liste.

Import-Module ActiveDirectory
#liste med Salgs medarbejder
$SafeUsers = Import-Csv c:\scripts\UserList.csv
#Alle medarbejder
$Users = Get-ADUser -filter * -Properties SamAccountName

if($Users.SamAccountName -ne $SafeUsers.User)
    {
            $Users.SamAccountName
               
  }


Det jeg ønsker er at jeg kan hente/ lave ændringer med brugere som IKKE står i denne CSV fil.

men det virker til at ALLE brugere bliver hevet ud.
Hvad gør jeg galt
Avatar billede Spotgun Seniormester
24. april 2018 - 11:47 #1
Prøv med denne linie:
$Users.SamAccountName | Where { $_ -notin $SafeUsers.User }
Avatar billede MLJ foto Novice
24. april 2018 - 11:58 #2
Tænker du sådan ?

Import-Module ActiveDirectory
#liste med Salgs medarbejder
$SafeUsers = Import-Csv c:\scripts\UserList.csv
#Alle medarbejder
$Users = Get-ADUser -filter * -Properties SamAccountName

if($Users.SamAccountName | Where { $_ -notin $SafeUsers.User })
    {
            $Users.SamAccountName
               
  }
Avatar billede MLJ foto Novice
24. april 2018 - 12:31 #3
Har ændret scriptet til :
#Import of AD
Import-Module ActiveDirectory
#List of safe Users
$excludedUsers = Import-Csv c:\M-Data\UserList.csv |select -ExpandProperty User
$Users = Get-AdUser -Filter * | Where { $excludedUsers -notcontains $_.SamAccountName }



Foreach ($User in $Users)
{
 
        $Password = ([char[]]([char]33..[char]95) + ([char[]]([char]97..[char]126)) + 0..9 | sort {Get-Random})[0..8] -join ''
        $SecurePassword = $Password
     
    $Users.SamAccountName
        $SecurePassword
   
}

Men det kører stadig flere gange igennem.
Avatar billede Spotgun Seniormester
24. april 2018 - 12:38 #4
Prøver du på at skifte password på de brugere der ikke er med i CSV filen?
Avatar billede Spotgun Seniormester
24. april 2018 - 12:57 #5
Jeg antager at det er tilfældet, ellers må du lige sige til:

Import-Module ActiveDirectory

# Liste med salgsmedarbejdere
$ExcludedUsers = Import-Csv C:\Scripts\UserList.csv
# Liste med alle medarbejdere
$AllUsers = Get-ADUser -Filter *
# Liste med difference. Fås ved at tage alle brugernavne som ikke er med i ExcludedUsers listen
$UsersToChange = $AllUsers.SamAccountName | Where { $_ -notin $ExcludedUsers.User }

# Gå gennem hver enkelt bruger, generer et tilfældigt password og skift det for brugeren
# Udskriv evt. $Password variablen hvis du skal bruge det ukrypterede password til noget
foreach($User in $UsersToChange) {
        $Password = ([char[]]([char]33..[char]95) + ([char[]]([char]97..[char]126)) + 0..9 | Sort {Get-Random})[0..8] -join ''
        $SecurePassword = ConvertTo-SecureString -String $Password -AsPlainText -Force
        Set-ADAccountPassword -Identity $User -Reset -NewPassword $SecurePassword
}
Avatar billede MLJ foto Novice
24. april 2018 - 13:35 #6
Jeg takker mange gange:)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester