Online-Support, IT-Services für Unternehmen ab 299 EUR/Monat

Rufen Sie uns an : +48 22 335 28 00 | Email: oferty@support-online.pl

PowerShell ist ein leistungsstarkes Tool, das die Arbeit des Administrators erheblich verbessert und erleichtert. Es ermöglicht Ihnen, Hunderte oder Tausende von Änderungen mit einem einzeiligen Skript einzuführen. Nachdem Sie diesen Artikel gelesen haben, erfahren Sie, welche PowerShell-Befehle und -Skripte am häufigsten verwendet werden. Zu jedem Befehl gibt es ein Beispiel, das Sie möglicherweise verwenden oder bereits in der Praxis verwendet haben.

ForEach- oder ForEach-Object-Anweisung

Die Schleife ist von unschätzbarem Wert, wenn Sie mehrere Objekte bearbeiten. Es ermöglicht Ihnen, eine Aktion für jedes Objekt aus einer bestimmten Sammlung auszuführen. Es lohnt sich hinzuzufügen, dass es sich um eine Anweisung handelt, wenn Sie ForEach am Anfang einer Zeile verwenden. Indem es nach der Pipeline platziert wird, behandelt PowerShell es als Alias ​​für den ForEach-Object-Befehl. Kurz gesagt unterscheiden sich diese Befehle in der Geschwindigkeit und Speichernutzung. ForEach ist schneller, ForEach-Object verbraucht weniger Ressourcen. Klingt kompliziert? In der Praxis sieht es viel einfacher aus. Zum Beispiel:

#Skrypt zmieniający domenę w adresach mailowych wszystkich użytkowników w Active Directory.
#W tym przykładzie ForEach traktowana jest jako oddzielna instrukcja.

Import-Module ActiveDirectory
#Import modułu Active directory.
#Jest niezbędny do uruchomienia komend Get-ADUser oraz Set-ADUser.

$ADusers = Get-ADUser -Filter *
#Tworzenie kolekcji $ADusers. Zawiera ona wszystkich użytkowników w AD.


#Pętla foreach dla kolekcji $ADusers. Każdy pojedyńczy obiekt oznaczony jako $ADuser.
foreach ($ADuser in $ADusers)
{
    $email = $ADuser.samaccountname + '@domena.pl'
    #Tworzenie zmiennej $email. 
    #Zmienna zawiera nazwę użytkownika wraz z dodanym przyrostkiem @domena.pl. 
    #np. dla użytkownika jan.kowalski będzie to jan.kowalski@domena.pl.

    Set-ADUser -Identity $ADuser.samaccountname -EmailAddress $email
    #Ustawienie wyżej utworzonej zmiennej jako adres mailowy.

}
#Zawartość pętli wykona się dla każdego użytkownika w kolekcji $ADusers.

Und

#Skrypt zmieniający domenę w adresach mailowych wszystkich użytkowników w Active Directory.
#W tym przykładzie użyję ForEach-Object.

Import-Module ActiveDirectory
#Import modułu Active directory.
#Jest niezbędny do uruchomienia komend Get-ADUser oraz Set-ADUser.

$ADusers = Get-ADUser -Filter *
#Tworzenie kolekcji $ADusers. Kolekcja zawiera wszystkich użytkowników w AD.

#Przesyłanie zawartości $ADusers do ForEach-Object za pomocą pipeline.
#W tym wypadku do identyfikacji pojedyńczego obiektu w kolekcji użyta jest zmienna $_ zamiast $ADuser.
$ADusers | ForEach-Object{

    $email = $_.samaccountname + '@domena.pl'
    #Tworzenie zmiennej $email. 
    #Zmienna zawiera nazwę użytkownika wraz z dodanym przyrostkiem @domena.pl. 
    #np. dla użytkownika jan.kowalski będzie to jan.kowalski@domena.pl.

    Set-ADUser -Identity $_.samaccountname -EmailAddress $email
    #Ustawienie wyżej utworzonej zmiennej jako adres mailowy.
    
}
#Zawartość pętli wykona się dla każdego użytkownika w kolekcji $ADusers.

Import-Csv / Export-Csv                       

Wie eingeschränkt wäre PowerShell ohne die Möglichkeit, in eine Datei zu schreiben und daraus zu lesen? Die Befehle Import-Csv / Export-Csv sind Lösungen für Operationen an externen Daten, die am häufigsten verwendet werden. Mit Import-Csv können Sie Daten aus einer CSV-Datei in Ihr Skript importieren. Ebenso exportiert Export-Csv die Daten, indem es sie im CSV-Format speichert.

Export-Csv:

#Skrypt eksportujący listę procesów do pliku CSV.

$process = Get-Process
#Tworzenie zmiennej $process.
#Zmienna zawiera listę procesów.

$process | Export-Csv -Path C:\temp\process.csv
#Przekazanie $process za pomocą pipeline | do komedy Export-Csv.
#Komenda Export-Csv zapisuje zmienną $process w lokalizacji C:\temp\ jako plik process.csv.

Import-Csv:

#Skrypt importujący numery telefonów z pliku csv.

Import-Module ActiveDirectory
#Import modułu ActiveDirectory.
#Jest niezbędny do uruchomienia komendy Set-ADUser.


$NumbersList = Import-Csv -Path C:\temp\numbers.csv
#Import pliku numbers.csv, znajdującego się w lokalizacji C:\temp\numbers.csv do $NumbersList.

#Rozpoczęcie pętli foreach.
#Pętla wykonuje się dla każdego wiersza w pliku numbers.csv.
foreach ($Number in $NumbersList){

Set-ADUser -Identity $Number.samaccountname -MobilePhone $Number.telephonenumber
#Przypisanie użytkownikowi w AD numeru telefonu z zaimportowanego pliku.

}

Numbers.csv-Datei:

"samaccountname","telephonenumber"
"test.user1","145345345"
"test.user2","123123123"
"test.user3","145445661"
"test.user4","125345345"
"test.user6","115213721"
"test.user7","155345345"
"test.user8","176876555"
"test.user9","122533345"
"test.user10","999999999"

Objekt auswählen

Ein einfacher und äußerst nützlicher Befehl, der ein Objekt oder seine Eigenschaften auswählt. Im folgenden Beispiel werden Benutzer ausgewählt, die sich in den letzten 30 Tagen bei ihrem Konto angemeldet haben. Sie interessieren sich für den Benutzernamen und das Datum der letzten Anmeldung. – Sie können diese Eigenschaften mit Select-Object abrufen.

#Skrypt wyświetlający nazwę konta oraz ostatnią datę logowania kont zalogowanych w ciągu ostatnich 30 dni.

Import-Module ActiveDirectory
#Import modułu Active directory.

$Date = (get-date).adddays(-30)
#Utworzenie zmiennej $Date.
#Zmienna zawiera datę 30 dni wstecz.

Get-ADUser -properties * -filter {(lastlogondate -ge $Date)} | Select-Object samaccountname,lastlogondate
#Wybranie kont, których lastlogondate jest późniejszy lub równy $Date.
#Dzięki Select-Object wynik zostanie wyświetlony w postaci:
#samaccountname lastlogondate
#konto1         01.01.2021 01:01:01
#konto2         02.01.2021 02:02:02
#...

Wo-Objekt

Mit Where-Object können Sie interessante Objekte anhand ihrer Attribute auswählen. Häufig werden die Funktionen des Where-Object-Befehls vom Filterparameter übernommen. Die Verwendung eines Filters verkürzt die Ausführungszeit des Skripts erheblich, ist jedoch nicht für jeden Befehl verfügbar. Hier kommt Where-Object ins Spiel.

#Skrypt wyświetlający konta z departamentu "Test"

Import-Module ActiveDirectory
#Import modułu Active directory.

Get-ADUser -Filter 'Department -eq "Test"'
#Wybieranie kont za pomocą parametru -Filter

Get-ADUser -Properties Department -Filter * | Where-Object Department -eq 'Test'
#Wybieranie kont za pomocą Where-Object.
#W tym wypadku wynik polecenia Get-ADUser jest przesyłany do Where-Object za pomocą pipelne.

Get-ChildItem

Get-ChildItem gibt Dateien zurück, die sich an den angegebenen Speicherorten befinden. Mit diesem Befehl können Sie nach Dateien suchen oder Eigenschaften überprüfen, die Sie interessieren. Nachfolgend finden Sie ein Anwendungsbeispiel:

#Skrypt wyświetlający zawartość folderu $path wraz z podfolderami.

$path = 'C:\test\*.*'
#W zmiennej path umieszczona jest lokalizacja, która będzie przeszukiwana.


Get-ChildItem -Path $path -Recurse
#Dzięki parametrowi -Recurse, zawartość folderu $path jest przeszukiwana wraz z podfolderami.

PowerShell-Zusammenfassung der am häufigsten verwendeten Befehle

Die am häufigsten verwendeten Befehle variieren je nach IT-Lösungen in der Arbeitsumgebung. Die obige Liste basiert auf der Erfahrung eines IT-Administrators, der auf Windows Server-Systemen arbeitet. Die bereitgestellten Skriptbeispiele können nach dem Testen problemlos in einer Produktionsumgebung verwendet werden. Benutzen Sie PowerShell auch täglich? Vielleicht lohnt es sich zu überlegen, welche Befehle Sie am häufigsten verwenden?

Sie benötigen IT-Unterstützung? Support Online ist ein Outsourcing-Unternehmen, das seit über 20 Jahren umfassende IT-Dienstleistungen für Unternehmen anbietet . Wir bieten unsere Dienstleistungen in ganz Polen und im Ausland an. Wir bieten moderne Lösungen basierend auf unserem Wissen und unserer Erfahrung:
– 24/7-Helpdesk
– dedizierte Server
– Private Cloud
– das sind nur einige Punkte unseres Angebots.

Bitte kontaktieren Sie uns !

Bartłomiej Róg
IT-Administrator bei Support Online

BLOG

Zobacz inne nasze artykuły

Kostenloses Angebot ✍️