Instrukcje if/else w PowerShell można wykorzystać do zarządzania Active Directory (AD) w różnych scenariuszach, takich jak sprawdzanie istnienia użytkowników, grup, jednostek organizacyjnych (OU), czy modyfikowanie atrybutów kont. Poniżej znajdziesz kilka praktycznych przykładów użycia if/else w kontekście Active Directory.
Przykład 1: Sprawdzanie, czy użytkownik istnieje.
Ten przykład sprawdza, czy użytkownik o określonym samAccountName istnieje w AD.
1 2 3 4 5 6 7 8 9 10 |
$UserName = "marczak" $User = Get-ADUser -Filter {SamAccountName -eq $UserName} if ($User) { Write-Output ("Użytkownik $UserName istnieje.") } else { Write-Output ("Użytkownik $UserName nie istnieje.") } |
Przykład 2: Tworzenie użytkownika, jeśli nie istnieje.
Ten przykład sprawdza, czy użytkownik istnieje, a jeśli nie, tworzy nowego użytkownika w AD.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$UserName = "marczak" $User = Get-ADUser -Filter {SamAccountName -eq $UserName} if ($User) { Write-Output ("Użytkownik $UserName już istnieje.") } else { New-ADUser -Name "Michal Marczak" -SamAccountName $UserName -UserPrincipalName "$UserName@beitadminpl.local" -Path "OU=Users,DC=beitadminpl,DC=local" -AccountPassword (ConvertTo-SecureString "P@ssw0rd" -AsPlainText -Force) -Enabled $true Write-Output ("Użytkownik $UserName został utworzony.") } |
Przykład 3: Sprawdzanie, czy grupa istnieje i dodawanie użytkownika do grupy.
Ten przykład sprawdza, czy określona grupa istnieje. Jeśli istnieje, użytkownik zostaje dodany do grupy.
1 2 3 4 5 6 7 8 9 10 11 |
$GroupName = "IT-Admins" $Group = Get-ADGroup -Filter {Name -eq $GroupName} if ($Group) { Add-ADGroupMember -Identity $GroupName -Members "marczak" Write-Output ("Użytkownik marczak został dodany do grupy $GroupName.") } else { Write-Output ("Grupa $GroupName nie istnieje.") } |
Przykład 4: Sprawdzanie, czy użytkownik jest członkiem grupy.
Ten przykład sprawdza, czy użytkownik jest członkiem określonej grupy.
1 2 3 4 5 6 7 8 9 10 11 12 |
$UserName = "marczak" $GroupName = "IT-Admins" $User = Get-ADUser -Identity $UserName $Group = Get-ADGroup -Identity $GroupName if (Get-ADGroupMember -Identity $GroupName | Where-Object { $_.SamAccountName -eq $UserName }) { Write-Output ("Użytkownik $UserName jest członkiem grupy $GroupName.") } else { Write-Output ("Użytkownik $UserName nie jest członkiem grupy $GroupName.") } |
Przykład 5: Sprawdzanie, czy OU istnieje.
Ten przykład sprawdza, czy określona jednostka organizacyjna (OU) istnieje w Active Directory.
1 2 3 4 5 6 7 8 9 10 |
$OUName = "OU=Users,DC=beitadminpl,DC=local" $OU = Get-ADOrganizationalUnit -Filter { DistinguishedName -eq $OUName } if ($OU) { Write-Output ("OU $OUName istnieje.") } else { Write-Output ("OU $OUName nie istnieje.") } |
Przykład 6: Włączanie konta użytkownika, jeśli jest wyłączone.
Ten przykład sprawdza, czy konto użytkownika jest wyłączone, i włącza je, jeśli to konieczne.
1 2 3 4 5 6 7 8 9 10 11 |
$UserName = "marczak" $User = Get-ADUser -Identity $UserName -Properties Enabled if (-not $User.Enabled) { Enable-ADAccount -Identity $UserName Write-Output ("Konto użytkownika $UserName zostało włączone.") } else { Write-Output ("Konto użytkownika $UserName jest już włączone.") } |
Przykład 7: Sprawdzanie daty wygaśnięcia hasła użytkownika.
Ten przykład sprawdza, czy hasło użytkownika wkrótce wygaśnie, i wysyła ostrzeżenie.
1 2 3 4 5 6 7 8 9 10 11 12 |
$UserName = "marczak" $User = Get-ADUser -Identity $UserName -Properties PasswordLastSet $PasswordAge = (Get-Date) - $User.PasswordLastSet if ($PasswordAge.Days -gt 70) { Write-Output ("Hasło użytkownika $UserName wygaśnie za mniej niż 20 dni. Czas na zmianę hasła.") } else { Write-Output ("Hasło użytkownika $UserName jest wciąż ważne.") } |
Podsumowanie
Kilka powyższych przykładów w PowerShell, przyda się w codziennej pracy z Active Directory. Można te skrypty rozbudować, aby przygotować dodatkowe automatyzacje codziennych czynności.
Dziękuję Ci, za poświęcony czas na przeczytanie tego artykułu. Jeśli był on dla Ciebie przydatny, to gorąco zachęcam Cię do zapisania się na mój newsletter, jeżeli jeszcze Cię tam nie ma. Proszę Cię także o “polubienie” mojego bloga na Facebooku oraz kanału na YouTube – pomoże mi to dotrzeć do nowych odbiorców. Raz w tygodniu (niedziela punkt 17.00) otrzymasz powiadomienia o nowych artykułach / projektach zanim staną się publiczne. Możesz również pozostawić całkowicie anonimowy pomysł na wpis/nagranie.
Link do formularza tutaj: https://beitadmin.pl/pomysly
Pozostaw również komentarz lub napisz do mnie wiadomość odpisuję na każdą, jeżeli Masz jakieś pytania:).