PowerShell 7 dla Profesjonalistów IT - Thomas Lee

Kup ebooka

98.70 zł
83.90 zł (49,35 zł najniższa cena z 30 dni)

-
Proszę czekać

PowerShell 7dla profesjonalistów IT

Zarządzanie systemami Windows?za pomocą PowerShell 7

Thomas Lee

APN PROMISE 2022

Mojej żonie, Susan, która była moim serdecznym przyjacielem oraz stałym źródłem siły, miłości i humoru, zwłaszcza podczas kryzysu C OVID-19.

Mojej córce, Rebecce. Twój uśmiech dodaje mi siły.

Mojej babci, Louise Runk Robinson, która pracowała w amerykańskiej Bibliotece Kongresu i wznieciła we mnie iskrę, która ostatecznie zachęciła mnie do pisania książek.

Mojemu przyjacielowi, Jeffrey'owi Snoverowi, który był inspirującym wzorem do naśladowania.

Dziękuję wam wszystkim za wasze wsparcie.Jesteście dla mnie całym światem.

PowerShell 7 dla profesjonalistów IT

First published in English under the title PowerShell 7 for IT Pros, by Thomas Lee

Copyright ? 2021 by John Wiley & Sons, Inc., Indianapolis, Indiana

This edition has been translated and published under licence from John Wiley & Sons, Inc.

John Wiley & Sons, Inc., takes no responsibility and shall not be made liable for the accuracy of the translation.

All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from publisher.

Polish language edition published by APN PROMISE S.A., Copyright ? 2022

Autoryzowany przekład z wydania w języku angielskim, zatytułowanego: PowerShell 7 for IT Pros, by Thomas Lee, opublikowanego przez John Wiley & Sons, Inc.

Wszystkie prawa zastrzeżone. Żadna część niniejszej książki nie może być powielana ani rozpowszechniana w jakiejkolwiek formie i w jakikolwiek sposób (elektroniczny, mechaniczny), włącznie z fotokopiowaniem, nagrywaniem na taśmy lub przy użyciu innych systemów bez pisemnej zgody wydawcy.

APN PROMISE SA, ul. Domaniewska 44a, 02-672 Warszawatel. +48 22 35 51 600e-mail: wydawnictwo@promise.pl

Książka ta przedstawia poglądy i opinie autorów. Przykłady firm, produktów, osób i wydarzeń opisane w niniejszej książce są fikcyjne i nie odnoszą się do żadnych konkretnych firm, produktów, osób i wydarzeń, chyba że zostanie jednoznacznie stwierdzone, że jest inaczej. Ewentualne podobieństwo do jakiejkolwiek rzeczywistej firmy, organizacji, produktu, nazwy domeny, adresu poczty elektronicznej, logo, osoby, miejsca lub zdarzenia jest przypadkowe i niezamierzone.

Wszystkie znaki towarowe występujące w książce mogą być własnością ich odnośnych właścicieli.

APN PROMISE SA dołożyła wszelkich starań, aby zapewnić najwyższą jakość tej publikacji. Jednakże nikomu nie udziela się rękojmi ani gwarancji. APN PROMISE SA nie jest w żadnym wypadku odpowiedzialna za jakiekolwiek szkody będące następstwem korzystania z informacji zawartych w niniejszej publikacji, nawet jeśli APN PROMISE została powiadomiona o możliwości wystąpienia szkód.

ISBN: 978-83-7541-482-0 (druk), 978-83-7541-483-7 (ebook)

Przekład: Krzysztof KapustkaRedakcja: Marek WłodarzKorekta: Ewa SwędrowskaSkład i łamanie: MAWart Marek Włodarz

Spis treści

O autorze

O redaktorze technicznym

Podziękowania

Przedmowa

Wprowadzenie

Rozdział 1

Konfigurowanie środowiska PowerShell 7

Co nowego w PowerShell 7

Systemy używane w tej książce i w tym rozdziale

Skrypty tworzące maszyny wirtualne serwerów

Dostęp maszyn wirtualnych do internetu

Systemy używane w tym rozdziale

Instalowanie PowerShell 7

Przed rozpoczęciem

Włączanie zasad wykonywania

Instalowanie najnowszej wersji NuGet i PowerShellGet

Tworzenie folderu Foo

Pobieranie skryptu instalacyjnego PowerShell 7

Wyświetlanie informacji pomocniczych z pliku instalacyjnego

Instalowanie PowerShell 7

Sprawdzanie folderu instalacji

Wyświetlanie lokalizacji folderów modułów

Wyświetlanie lokalizacji plików profilów

Uruchamianie PowerShell 7

Wyświetlanie nowych lokalizacji dla folderów modułów

Wyświetlanie nowych lokalizacji dla plików profilów

Tworzenie profilu bieżącego użytkownika/bieżącego hosta

Instalowanie i konfigurowanie VS Code

Przed rozpoczęciem

Pobieranie skryptu instalacyjnego VS Code

Instalowanie VS Code i rozszerzeń

Tworzenie przykładowego pliku profilu osobistego

Pobieranie czcionki Cascadia Code

Instalowanie czcionki Cascadia Code w systemie Windows

Aktualizowanie ustawień użytkownika VS Code

Tworzenie skrótu do programu VS Code

Tworzenie skrótu do konsoli PowerShell 7

Budowanie pliku Layout.XML

Importowanie nowego pliku Layout.XML

Korzystanie z galerii PowerShell

Przed rozpoczęciem

Znajdywanie modułów w galerii programu PowerShell

Ustalanie modułów obsługujących .NET Core

Znajdywanie modułów NTFS

Instalowanie modułu NTFSSecurity

Wyświetlanie dostępnych poleceń

Tworzenie lokalnego repozytorium PowerShellGet

Przed rozpoczęciem

Tworzenie folderu repozytorium

Udostępnianie folderu repozytorium

Tworzenie folderu roboczego dla modułów

Tworzenie prostego modułu

Wczytywanie i testowanie modułu

Tworzenie manifestu modułu

Zaufanie do repozytorium

Wyświetlanie skonfigurowanych repozytoriów

Publikowanie modułu

Wyświetlanie folderu repozytorium

Znajdywanie modułu

Tworzenie środowiska z podpisywaniem kodu

Przed rozpoczęciem

Tworzenie certyfikatu z podpisem własnym

Wyświetlanie certyfikatu

Tworzenie prostego skryptu

Konfigurowanie zasady wykonywania

Próba wykonania skryptu

Podpisywanie skryptu

Kopiowanie certyfikatu do magazynu zaufanych wydawców i magazynu zaufanych certyfikatów głównych

Ponowne podpisywanie skryptu

Uruchamianie skryptu

Testowanie podpisu cyfrowego skryptu

Podsumowanie

Rozdział 2

Zgodność PowerShell 7 z Windows PowerShell

Systemy używane w tym rozdziale

Badanie modułów PowerShell

Rodzaje modułów

Importowanie modułów PowerShell

Korzystanie z manifestów modułów PowerShell

Nazewnictwo modułów

Tworzenie modułu z wieloma wersjami

Korzystanie z wersji modułu

Korzystanie z automatycznego wczytywania modułów

Wyświetlanie pamięci podręcznej analizy modułów

Wprowadzenie do rozwiązania zgodności

Korzystanie z listy odmowy wczytywania modułów

Rzeczy, które nie działają z PowerShell 7

Niezgodności programu Windows PowerShell

Obejścia dla problemów ze zgodnością

Podsumowanie

Rozdział 3

Zarządzanie Active Directory

Systemy używane w tym rozdziale

Ustanawianie domeny głównej lasu

Przed rozpoczęciem

Importowanie modułu Server Manager

Instalowanie funkcji AD Domain Services

Jawne wczytywanie modułu AD DS Deployment

Tworzenie kontrolera domeny głównej lasu

Ponowne uruchamianie komputera

Wyświetlanie wpisu Directory Server Entry (DSE)

Wyświetlanie szczegółów nowego lasu AD DS

Uzyskiwanie szczegółów na temat domeny

Wyświetlanie ustawień DNS

Instalowanie repliki kontrolera domeny

Przed rozpoczęciem

Importowanie modułu Server Manager

Sprawdzanie połączenia z siecią

Dodawanie funkcji AD DS na serwerze DC2

Promocja serwera DC2

Ponowne uruchamianie serwera DC2

Wyświetlanie kontrolerów domeny w domenie Reskit.Org

Wyświetlanie domeny Reskit.Org

Instalowanie domeny podrzędnej

Przed rozpoczęciem

Importowanie modułu Server Manager

Sprawdzanie, czy nazwa DC1 może zostać rozwiązana

Dodawanie funkcji AD DS do serwera UKDC1

Tworzenie domeny podrzędnej

Wyświetlanie zaktualizowanego lasu AD

Wyświetlanie domeny podrzędnej

Konfigurowanie zaufania między lasami

Przed rozpoczęciem

Importowanie modułu Server Manager

Instalowanie funkcji AD DS i narzędzi zarządzania

Testowanie połączenia sieciowego z DC1

Importowanie modułu AD DS Deployment

Promowanie KAPDC1

Wyświetlanie szczegółów lasu Kapoho.Com

Dostosowywanie DNS do rozwiązywania Reskit.Org z serwera KAPDC1

Testowanie warunkowego przesyłania dalej żądań DNS

Konfigurowanie warunkowego przesyłania dalej w domenie Reskit.Org

Utwórz poświadczenia do uruchamiania polecenia na DC1

Konfigurowanie WinRM

Uruchamianie bloku skryptu DC1

Pozyskiwanie obiektów ze szczegółami domeny

Wyświetlanie szczegółów lasu Reskit

Wyświetlanie szczegółów lasu Kapoho

Ustanawianie zaufania między lasami

Tworzenie bloku skryptu w celu dostosowania listy ACL dla pliku na serwerze DC1

Uruchamianie bloku skryptu na serwerze DC1 w celu zademonstrowania zaufania między lasami

Zarządzanie użytkownikami, komputerami i jednostkami organizacyjnymi AD

Przed rozpoczęciem

Tworzenie tabeli skrótów dla ogólnych atrybutów użytkownika

Tworzenie dwóch użytkowników

Tworzenie jednostki organizacyjnej dla zespołu IT

Przenoszenie użytkowników do jednostki organizacyjnej

Tworzenie użytkownika w jednostce organizacyjnej

Tworzenie dwóch dodatkowych użytkowników

Wyświetlanie istniejących użytkowników

Usuwanie użytkownika za pomocą wzorca Get | Remove

Usuwanie użytkownika bezpośrednio

Aktualizowanie i wyświetlanie obiektu użytkownika

Tworzenie grup AD

Tworzenie i wyświetlanie członkostwa w grupie

Tworzenie nowej grupy dla zespołu IT

Dopisywanie wszystkich użytkowników jednostki IT do grupy IT Team

Wyświetlanie członkostwa w grupie

Dodawanie komputera do AD

Wyświetlanie komputerów w domenie AD

Dodawanie użytkowników do AD z użyciem pliku CSV

Przed rozpoczęciem

Tworzenie pliku CSV

Importowanie i wyświetlanie pliku CSV

Dodawanie użytkowników do AD

Wyświetlanie wszystkich użytkowników w domenie Reskit.Org

Konfigurowanie wystarczających uprawnień administracyjnych (JEA)

Przed rozpoczęciem

Tworzenie folderu transkryptu

Tworzenie folderu dla możliwości roli

Tworzenie pliku możliwości roli

Tworzenie pliku konfiguracji sesji JEA

Testowanie pliku konfiguracji sesji

Włączanie obsługi zdalnej i tworzenie sesji punktu końcowego sesji JEA

Sprawdzanie możliwości użytkownika

Tworzenie poświadczeń dla użytkownika JerryG

Tworzenie bloków skryptów w celu przetestowania JEA

Ile poleceń istnieje w sesji JEA?

Wywoływanie funkcji zdefiniowanej dla JEA

Pozyskiwanie poleceń DNSServer dostępnych w sesji JEA

Wyświetlanie folderu transkryptów

Badanie transkryptu JEA

Podsumowanie

Rozdział 4

Zarządzanie siecią

Systemy używane w tym rozdziale

Konfigurowanie adresów IP

Przed rozpoczęciem

Sprawdzanie szczegółów karty sieciowej

Konfigurowanie adresu IP

Sprawdzanie nowego adresu IP

Ustawianie szczegółów serwera DNS Server

Sprawdzanie nowej konfiguracji IP

Testowanie łączności sieciowej

Przed rozpoczęciem

Sprawdzanie działania serwera SRV2 i adresu loopback

Testowanie połączenia z kontrolerem domeny

Sprawdzanie łączności z portami SMB i LDAP

Sprawdzanie ścieżki do serwera zdalnego

Instalowanie usługi DHCP

Przed rozpoczęciem

Instalowanie funkcji DHCP

Autoryzowanie serwera DHCP w AD

Kończenie konfiguracji DHCP

Ponowne uruchamianie usługi DHCP

Sprawdzanie usługi DHCP

Konfigurowanie zakresów DHCP

Przed rozpoczęciem

Tworzenie zakresu DHCP

Pozyskiwanie zakresów z serwera DHCP

Konfigurowanie opcji na poziomie serwera

Konfigurowanie opcji specyficznych dla zakresu

Testowanie działania usługi DHCP

Konfigurowanie trybu failover usługi DHCP

Przed rozpoczęciem

Instalowanie funkcji DHCP na serwerze DC2

Informowanie usługi DHCP, że jest w pełni skonfigurowana na serwerze DC2

Autoryzowanie drugiego serwera DHCP w AD

Wyświetlanie autoryzowanych serwerów DHCP

Konfigurowanie trybu failover i równoważenia obciążenia DHCP

Wyświetlanie aktywnych dzierżaw z obu serwerów DHCP

Wyświetlanie statystyk serwera DHCP

Konfigurowanie usługi DNS

Przed rozpoczęciem

Instalowanie funkcji DNS na serwerze DC2

Konfigurowanie usługi DNS

Wyświetlanie kluczowych opcji serwera DNS

Konfigurowanie stref i rekordów zasobów DNS

Przed rozpoczęciem

Tworzenie strefy DNS wyszukiwania do przodu

Tworzenie strefy wyszukiwania wstecznego

Rejestrowanie rekordów DNS dla DC1 i DC2

Sprawdzanie stref DNS na DC1

Dodawanie rekordów zasobów DNS do strefy Cookham.Net

Ponowne uruchamianie usługi DNS

Sprawdzanie rekordów zasobów DNS w strefie Cookham.Net

Testowanie rozwiązywania nazw serwera DNS

Podsumowanie

Rozdział 5

Zarządzanie magazynem danych

Systemy używane w tym rozdziale

Zarządzanie dyskami i woluminami

Przed rozpoczęciem

Pozyskiwanie informacji o dyskach fizycznych na serwerze SRV1

Inicjalizowanie nowych dysków

Wyświetlanie zainicjalizowanych dysków

Tworzenie woluminu F: na dysku 1

Tworzenie partycji na dysku 2

Tworzenie drugiej partycji

Wyświetlanie woluminów na serwerze SRV1

Formatowanie woluminów G: i H:

Pozyskiwanie partycji na serwerze SRV1

Pozyskiwanie woluminów na serwerze SRV1

Zarządzanie uprawnieniami NTFS

Przed rozpoczęciem

Pobieranie i instalowanie modułu NTFSSecurity

Znajdywanie poleceń w module NTFSSecurity

Tworzenie nowego folderu i pliku

Wyświetlanie domyślnej listy ACL folderu

Wyświetlanie domyślnej listy ACL pliku

Tworzenie grupy Sales

Wyświetlanie grupy Sales

Przyznawanie pełnej kontroli administratorom domeny

Usuwanie domyślnego wpisu ACE pliku

Usuwanie odziedziczonych praw folderu

Dodawanie grupie Sales dostępu do folderu

Wyświetlanie uprawnień dla folderu

Wyświetlanie uprawnień dla pliku

Zarządzanie repliką magazynu

Przed rozpoczęciem

Tworzenie zawartości na dysku F:

Mierzenie nowej zawartości

Sprawdzanie zawartości na serwerze docelowym

Dodawanie funkcji Storage Replica do serwera źródłowego

Ponowne uruchamianie źródła

Dodawanie funkcji Storage Replica do systemu docelowego

Ponowne uruchamianie systemu docelowego

Testowanie konfiguracji repliki magazynu

Wyświetlanie raportu z testu topologii

Tworzenie partnerstwa repliki magazynu

Wyświetlanie partnerstwa

Sprawdzanie woluminów na serwerze docelowym

Odwracanie replikacji

Wyświetlanie stanu zaktualizowanej grupy replikacji

Sprawdzanie woluminów na serwerze SRV2

Zarządzanie przydziałami plików

Przed rozpoczęciem

Instalowanie funkcji FSRM

Konfigurowanie ustawień SMTP dla FSRM

Wysyłanie wiadomości testowej

Tworzenie szablonu przydziału FSRM

Wyświetlanie dostępnych szablonów przydziałów FSRM

Tworzenie nowego folderu

Tworzenie akcji FSRM

Tworzenie progu FSRM

Tworzenie przydziału FSRM

Testowanie progu przydziału 85%

Badanie wiadomości FSRM

Testowanie limitu przydziału sztywnego

Wyświetlanie zawartości folderu

Zarządzanie osłoną plików

Przed rozpoczęciem

Sprawdzanie istniejących grup plików FSRM

Sprawdzanie istniejących szablonów osłony plików

Tworzenie nowego folderu plików

Tworzenie nowej osłony plików

Testowanie osłony plików

Konfigurowanie aktywnej osłony plików

Wyświetlanie limitów powiadomienia

Zmienianie limitów powiadomień

Testowanie aktywnej osłony plików

Wyświetlanie wiadomości aktywnej osłony plików

Podsumowanie

Rozdział 6

Zarządzanie udostępnionymi danymi

Systemy używane w tym rozdziale

Konfigurowanie i zabezpieczanie serwera plików SMB

Przed rozpoczęciem

Dodawanie funkcji serwera plików do serwera FS1

Pozyskiwanie ustawień serwera SMB

Upewnianie się, że protokół SMB1 jest wyłączony

Włączanie podpisywania SMB i szyfrowania SMB

Wyłączanie udziałów domyślnych

Wyłączanie anonsów serwera

Ponowne uruchamianie usługi serwera SMB

Przeglądanie zaktualizowanej konfiguracji SMB

Tworzenie i zabezpieczanie udziałów SMB

Przed rozpoczęciem

Konfigurowanie serwera FS1

Odkrywanie istniejących udziałów SMB

Tworzenie udziału SMB

Ustawianie opisu dla udziału

Ustawianie trybu wyliczania folderów

Wymaganie szyfrowania udziału

Usuwanie wszelkiego dostępu do udziału Sales1

Dodawanie administratorów domeny do udziału

Przyznawanie pełnego dostępu dla systemu

Przyznawanie pełnego dostępu dla Twórcy/Właściciela

Przyznawanie dostępu grupie Sales

Przeglądanie dostępu do udziału

Przeglądanie uprawnień NTFS

Dopasowywanie listy ACL NTFS do listy ACL udziału

Usuwanie dziedziczenia NTFS

Wyświetlanie listy ACL folderu

Tworzenie i korzystanie z obiektu docelowego iSCSI

Przed rozpoczęciem

Instalowanie obiektu docelowego iSCSI na serwerze SRV2

Sprawdzanie ustawień serwera obiektu docelowego iSCSI

Tworzenie folderu na serwerze SRV2

Tworzenie wirtualnego dysku iSCSI

Tworzenie obiektu docelowego iSCSI na serwerze SRV2

Tworzenie na serwerze SRV2 mapowania obiektu docelowego do dysku iSCSI

Konfigurowanie usługi iSCSI na serwerze SRV2

Konfigurowanie portalu iSCSI

Wyświetlanie dysku iSCSI o nazwie SalesTarget

Łączenie się z obiektem docelowym na serwerze SRV2

Wyświetlanie wirtualnego dysku iSCSI

Przełączanie dysku w tryb online i umożliwianie na nim operacji zapisu

Tworzenie woluminu na serwerze FS1

Korzystanie z dysku iSCSI na serwerze FS1

Konfigurowanie serwera plików skalowanego w poziomie

Przed rozpoczęciem

Konfigurowanie usługi iSCSI dla serwera FS2

Konfigurowanie portalu iSCSI dla serwera FS2

Dodawanie roli serwera plików do serwera FS2

Dodawanie funkcji klastrowania do serwerów FS1 i FS2

Ponownie uruchamianie serwerów FS1 i FS2

Testowanie węzłów klastra

Wyświetlanie wyników testu weryfikacji klastra

Tworzenie klastra

Konfigurowanie kworum udostępniania plików na serwerze DC1

Konfigurowanie monitora dla klastra

Upewnianie się, że dyski iSCSI są podłączone

Dodawanie dysku iSCSI do klastra

Przenoszenie dysku iSCSI do udostępnionego woluminu klastra

Dodawanie roli serwera SOFS do klastra

Tworzenie folderu

Dodawanie ciągle dostępnego udziału plików

Wyświetlanie udziałów z poziomu serwera FS1

Podsumowanie

Rozdział 7

Zarządzanie drukowaniem

Systemy używane w tym rozdziale

Instalowanie i udostępnianie drukarek

Przed rozpoczęciem

Instalowanie funkcji serwera wydruku na serwerze PSRV

Tworzenie folderu dla sterowników drukarki

Pobieranie sterowników drukarki

Wyodrębnianie pliku ZIP

Instalowanie sterowników

Dodawanie nowego portu drukarki

Dodawanie nowej drukarki

Udostępnianie drukarki

Wyświetlanie konfiguracji drukarki

Publikowanie drukarki w AD

Przed rozpoczęciem

Pozyskiwanie obiektu drukarki

Sprawdzanie początkowego stanu publikacji

Publikowanie drukarki w AD

Wyświetlanie stanu publikacji drukarki

Zmienianie folderu buforu wydruku

Przed rozpoczęciem

Wczytywanie przestrzeni nazw System.Printing

Wyświetlanie domyślnego folderu bufora

Definiowanie wymaganych uprawnień

Tworzenie obiektu serwera wydruku

Tworzenie nowego folderu bufora

Zmienianie ścieżki do folderu bufora

Zatwierdzanie zmiany

Restartowanie usługi bufora wydruku

Wyświetlanie folderu bufora wydruku

Tworzenie kolejnego folderu bufora

Zatrzymywanie usługi bufora wydruku

Konfigurowanie nowego folderu bufora

Restartowanie bufora

Wyświetlanie rezultatów

Drukowanie strony testowej

Przed rozpoczęciem

Pozyskiwanie obiektów drukarki za pomocą usługi WMI

Wyświetlanie liczby zdefiniowanych drukarek

Pozyskiwanie obiektu WMI drukarki grupy Sales

Wyświetl szczegóły drukarki

Drukowanie strony testowej

Tworzenie puli drukowania

Przed rozpoczęciem

Dodawanie portu drukarki

Tworzenie puli drukowania dla drukarki SalesPrinter1

Wyświetlanie uzyskanych wyników

Podsumowanie

Rozdział 8

Zarządzanie Hyper-V

Systemy używane w tym rozdziale

Instalowanie i konfigurowanie Hyper-V

Przed rozpoczęciem

Instalowanie funkcji Hyper-V na maszynie wirtualnej HV1

Ponowne uruchamianie serwera HV1

Tworzenie folderów do przechowywania dysków i szczegółów maszyn wirtualnych

Tworzenie tabeli skrótów konfiguracji

Wyświetlanie kluczowych ustawień hosta maszyn wirtualnych

Tworzenie maszyny wirtualnej Hyper-V

Przed rozpoczęciem

Tworzenie zmiennych

Sprawdzanie, czy obraz ISO istnieje

Importowanie modułu DISM

Montowanie obrazu ISO

Wyświetlanie zawartości obrazu ISO

Tworzenie nowej maszyny wirtualnej na hoście HV1

Tworzenie pliku VHDX dla maszyny wirtualnej

Dodawanie dysku VHD do maszyny wirtualnej

Dodawanie obrazu ISO do maszyny wirtualnej

Uruchamianie maszyny wirtualnej

Instalowanie systemu Windows Server 2019

Wyświetlanie wyników

Korzystanie z PowerShell Direct

Przed rozpoczęciem

Tworzenie zmiennych używanych w tej części

Wyświetlanie szczegółów maszyny wirtualnej HVDirect

Wywoływanie polecenia z użyciem nazwy maszyny wirtualnej

Wywoływanie polecenia na podstawie identyfikatora maszyny wirtualnej

Konfigurowanie sieci maszyny wirtualnej

Przed rozpoczęciem

Pozyskiwanie szczegółów na temat wirtualnej karty sieciowej z HVDirect

Tworzenie poświadczeń dla maszyny wirtualnej

Pozyskiwanie szczegółów o karcie sieciowej

Tworzenie wirtualnego przełącznika

Podłączanie maszyny wirtualnej do przełącznika

Włączanie fałszowania adresów MAC

Wyświetlanie informacji o sieci maszyny wirtualnej

Wyświetlanie adresu IP wewnątrz HVDirect

Przyłączanie do domeny Reskit

Ponowne uruchamianie maszyny wirtualnej

Pozyskiwanie nazwy hosta maszyny wirtualnej HVDirect

Konfigurowanie sprzętu maszyny wirtualnej

Przed rozpoczęciem

Wyłączanie maszyny wirtualnej HVDirect

Ustawianie kolejności uruchamiania sprzętu

Ustawianie liczby gniazd

Ustawianie pamięci maszyny wirtualnej

Dodawanie kontrolera SCSI

Restartowanie maszyny wirtualnej

Tworzenie nowego wirtualnego dysku

Dodawanie dysku do maszyny wirtualnej

Wyświetlanie dysków SCSI wewnątrz maszyny HVDirect

Implementowanie wirtualizacji zagnieżdżonej

Przed rozpoczęciem

Zatrzymywanie maszyny wirtualnej

Konfigurowanie wirtualnego procesora

Włączanie fałszowania adresów MAC

Restartowanie maszyny wirtualnej

Tworzenie poświadczeń

Instalowanie Hyper-V w maszynie wirtualnej HVDirect

Ponowne uruchamianie maszyny wirtualnej

Sprawdzanie Hyper-V na maszynie HVDirect

Korzystanie z punktów kontrolnych maszyny wirtualnej

Przed rozpoczęciem

Tworzenie poświadczeń

Sprawdzanie woluminu C: na maszynie wirtualnej HVDirect

Tworzenie punktu kontrolnego

Sprawdzanie plików punktów kontrolnych

Tworzenie zawartości na maszynie HVDirect

Tworzenie drugiego punktu kontrolnego

Wyświetlanie szczegółów punktu kontrolnego dla maszyny wirtualnej HVDirect

Sprawdzanie plików składających się na punkty kontrolne

Tworzenie kolejnego pliku w maszynie wirtualnej HVDirect

Przywracanie maszyny wirtualnej do punktu kontrolnego Checkpoint1

Wyświetlanie plików maszyny wirtualnej

Odtwarzanie punktu kontrolnego Checkpoint2

Wyświetlanie plików maszyny wirtualnej po odtworzeniu jej stanu

Wyświetlanie punktów kontrolnych w maszynie wirtualnej

Usuwanie punktów kontrolnych

Sprawdzanie plików danych maszyny wirtualnej po usunięciu punktów kontrolnych

Korzystanie z replikacji maszyn wirtualnych

Przed rozpoczęciem

Konfigurowanie serwerów HV1 i HV2 pod kątem delegowania

Restartowanie serwerów HV1 i HV2

Konfigurowanie replikacji maszyn wirtualnych

Konfigurowanie replikacji z poziomu źródłowej maszyny wirtualnej

Wyświetlanie stanu replikacji maszyn wirtualnych

Wyświetlanie stanu maszyny wirtualnej

Inicjowanie replikacji

Sprawdzanie stanu replikacji początkowej

Wyświetlanie replikacji

Testowanie trybu failover repliki

Wyświetlanie stanu maszyny wirtualnej na hoście HV2 po przełączeniu w tryb failover

Pozyskiwanie szczegółów maszyny wirtualnej z hosta HV1

Pozyskiwanie szczegółów maszyny wirtualnej z hosta HV2

Zatrzymywanie testu trybu failover

Wyświetlanie stanu maszyny wirtualnej

Konfigurowanie adresu IP dla trybu failover maszyny wirtualnej

Zatrzymywanie maszyny wirtualnej HVDirect na hoście HV1

Przełączanie w tryb failover z hosta HV1 do HV2

Kończenie pracy w trybie failover maszyny wirtualnej HVDirect

Uruchamianie maszyny wirtualnej w trybie failover

Sprawdzanie stanu maszyny wirtualnej po przełączeniu w tryb failover

Testowanie sieci maszyny wirtualnej w trybie failover

Zarządzanie przenoszeniem maszyn wirtualnych

Przed rozpoczęciem

Wyświetlanie maszyny wirtualnej HVDirect

Pozyskiwanie lokalizacji konfiguracji maszyny wirtualnej

Pozyskiwanie lokalizacji dysków twardych maszyny wirtualnej

Migracja magazynu maszyny wirtualnej

Wyświetlanie szczegółów konfiguracji

Wyświetlanie maszyn wirtualnych na hoście HV2

Włączanie migracji maszyny wirtualnej

Konfigurowanie migracji maszyn wirtualnych

Migrowanie maszyny wirtualnej między hostami

Wyświetlanie czasu migracji

Sprawdzanie maszyn wirtualnych na hoście HV1

Sprawdzanie maszyn wirtualnych na hoście HV2

Sprawdzanie szczegółów wirtualnych dysków

Mierzenie użycia zasobów maszyny wirtualnej

Przed rozpoczęciem

Pozyskiwanie szczegółów maszyny wirtualnej

Włączanie mierzenia zasobów maszyny wirtualnej

Uruchamianie maszyny wirtualnej HVDirect

Tworzenie poświadczeń dla maszyny wirtualnej HVDirect

Pozyskiwanie początkowych pomiarów zasobów

Wykonywanie obliczeń

Ponowne mierzenie użycia zasobów maszyny wirtualnej

Podsumowanie

Rozdział 9

Korzystanie z WMI z użyciem poleceń CIM

Przegląd architektury WMI w Windows

Pozyskiwanie danych WMI

Korzystanie z poleceń CIM

Systemy używane w tym rozdziale

Poznawanie przestrzeni nazw WMI

Wyświetlanie klas w głównej przestrzeni nazw

Wyświetlanie przestrzeni nazw poniżej przestrzeni głównej

Wyliczanie klas w przestrzeni nazw root\CIMV2

Odkrywanie wszystkich przestrzeni nazw WMI

Wyświetlanie wybranych przestrzeni nazw WMI

Zliczanie klas WMI

Wyświetlanie przestrzeni nazw na serwerze zdalnym

Zliczanie przestrzeni nazw/klas na serwerze SRV2

Zliczanie przestrzeni nazw/klas na serwerze DC2

Poznawanie klas WMI

Poznawanie klasy Win32_Share

Wyświetlanie właściwości klasy

Wyświetlanie metod klasy

Wyświetlanie szczegółów klas w podanej przestrzeni nazw

Pozyskiwanie lokalnych i zdalnych obiektów WMI

Korzystanie z polecenia Get-CimInstance

Pozyskiwanie obiektów z przestrzeni nazw innej niż domyślna

Korzystanie z filtru WMI

Korzystanie z zapytania WMI

Pozyskiwanie zdalnych obiektów WMI

Wywoływanie metod WMI

Wyświetlanie metod statycznych klasy

Wyświetlanie właściwości klasy

Tworzenie nowego udziału

Wyświetlanie udziału SMB za pomocą polecenia Get-SMBShare

Wyświetlanie udziału SMB za pomocą polecenia Get-CimInstance

Usuwanie udziału SMB

Zarządzanie zdarzeniami WMI

Subskrybowanie zdarzenia

Uruchamianie procesu Windows

Pozyskiwanie zdarzenia WMI

Wyświetlanie szczegółów zdarzenia

Anulowanie subskrypcji zdarzenia WMI

Tworzenie subskrypcji zdarzenia zewnętrznego

Modyfikowanie rejestru

Anulowanie subskrypcji zdarzenia rejestru

Wyświetlanie szczegółów wyniku

Definiowanie zapytania zdarzenia WQL

Tworzenie tymczasowej subskrypcji zdarzenia WMI

Dodawanie do grupy administratorów przedsiębiorstwa

Wyświetlanie zdarzenia

Anulowanie subskrypcji zdarzenia WMI

Implementowanie trwałej obsługi zdarzeń WMI

Określanie prawidłowych użytkowników

Definiowanie funkcji pomocniczych

Tworzenie zapytania zdarzenia

Tworzenie filtra zdarzenia

Tworzenie skryptu do uruchomienia przez obsługę zdarzeń: Monitor.ps1

Tworzenie konsumenta zdarzenia

Wiązanie filtra zdarzenia z konsumentem zdarzenia

Wyświetlanie szczegółów filtra zdarzenia

Testowanie filtrowania zdarzeń

Wyświetlanie rezultatów

Usuwanie szczegółów filtra zdarzenia z WMI

Podsumowanie

Rozdział 10

Raportowanie

Systemy używane w tym rozdziale

Tworzenie raportów o użytkownikach i komputerach AD

Przed rozpoczęciem

Definiowanie funkcji do pozyskiwania kont użytkownika

Pozyskiwanie użytkowników domeny Reskit

Tworzenie nagłówka raportu

Raportowanie wyłączonych użytkowników

Raportowanie nieużywanych kont

Raportowanie nieudanych prób logowania z powodu podania błędnego hasła

Ustalanie uprzywilejowanych użytkowników

Dodawanie uprzywilejowanych użytkowników do raportu

Wyświetlanie raportu

Zarządzanie raportami systemu plików

Przed rozpoczęciem

Tworzenie raportu magazynowego

Wyświetlanie raportów FSRM

Wyświetlanie plików wynikowych raportu FSRM

Wyświetlanie raportu dużych plików

Korzystanie z wyniku XML funkcji FSRM

Tworzenie zaplanowanego zadania raportu FSRM

Tworzenie zaplanowanego raportu

Wyświetlanie zaplanowanego zadania raportu

Interaktywne uruchamianie raportu

Wyświetlanie raportu

Usuwanie raportów i zaplanowanych zadań

Zbieranie informacji o wydajności z użyciem PLA

Przed rozpoczęciem

Tworzenie modułu zbierającego dane

Definiowanie liczników

Dodawanie liczników wydajności do zestawu modułów zbierających dane

Tworzenie harmonogramu

Tworzenie i uruchamianie zestawu modułów zbierających dane

Tworzenie drugiego zestawu modułów zbierających dane

Wyświetlanie zestawów modułów zbierających dane

Tworzenie raportów dotyczących danych wydajności PLA

Przed rozpoczęciem

Importowanie liczników wydajności

Importowanie danych liczników wydajności

Naprawianie problemu zbierania danych

Pozyskiwanie statystyk procesora

Wyznaczanie 95. percentyla

Łączenie pomiarów procesora

Wyświetlanie statystyk procesora

Tworzenie wykresów monitorowania wydajności

Przed rozpoczęciem

Wczytywanie zestawu formularzy

Importowanie danych wydajności

Tworzenie obiektu wykresu

Definiowanie wymiarów wykresu

Definiowanie obszaru wykresu

Identyfikowanie kolumny z datą i godziną

Dodawanie danych wydajności do wykresu

Zapisywanie obrazu wykresu

Wyświetl obraz wykresu

Tworzenie raportu diagnostyki systemu

Przed rozpoczęciem

Uruchamianie wbudowanego modułu zbierającego dane

Oczekiwanie na ukończenie pracy modułu zbierającego dane

Zapisywanie raportu w formacie HTML

Wyświetlanie raportu diagnostyki systemu

Tworzenie raportów użycia drukarek

Przed rozpoczęciem

Włączanie rejestrowania zadań drukowania

Definiowanie funkcji Get-PrinterUsage

Tworzenie wydruku

Wyświetlanie plików wynikowych PDF

Wyświetlanie użycia drukarki

Tworzenie raportu stanu Hyper-V

Przed rozpoczęciem

Tworzenie tabeli skrótów dla obiektów prostego raportu

Dodawanie szczegółów hosta do raportu

Dodawanie wersji PowerShell i systemu operacyjnego

Dodawanie liczby procesorów

Dodawanie bieżącego użycia procesora

Dodawanie całkowitej pamięci fizycznej hosta Hyper-V

Dodawanie pamięci przypisanej do maszyn wirtualnych

Tworzenie obiektu raportu hosta Hyper-V

Tworzenie nagłówka raportu

Dodawanie obiektu raportu do raportu Hyper-V

Tworzenie tablicy dla szczegółów maszyn wirtualnych

Pozyskiwanie szczegółów maszyny wirtualnej

Kończenie raportu

Wyświetlanie raportu

Przeglądanie dzienników zdarzeń

Przed rozpoczęciem

Zliczanie dzienników zdarzeń

Pozyskiwanie całkowitej liczby rekordów zdarzeń

Pozyskiwanie liczby zdarzeń w kluczowych dziennikach

Pozyskiwanie wszystkich zdarzeń z dziennika Security

Pozyskiwanie zdarzeń logowania

Tworzenie podsumowania typu logowania

Wyświetlanie zdarzeń logowania według typu logowania

Badanie logowania RDP

Podsumowanie

Polecamy także

O autorze

Thomas Lee jest szkoleniowcem, konsultantem i autorem technicznym, który specjalizuje się w platformie Microsoft Windows. Thomas rozpoczął karierę w branży IT w 1968 roku jako operator komputerowy maszyny IBM 360/67, wyposażonej w system pracujący z podziałem czasu. Jego kariera trwa już pięć dekad i uwzględnia komputery typu mainframe, minikomputery, podział czasu (bardzo wczesne przetwarzanie w chmurze), sztuczną inteligencję oraz inne rozwijające się technologie.

Thomas pracował w branży konsultingowej, zaczynając od firmy Arthur Andersen (dzisiaj znaną jako Accenture), gdzie był świadkiem narodzin komputera PC jako narzędzia dla każdego klienta. Dla wielu swoich klientów wciąż świadczy usługi konsultingowe.

Napisał również wiele publikacji, zarówno w dziedzinie handlu technicznego w Wielkiej Brytanii, jak i dla światowej branży wydawniczej. Ten podręcznik jest jego czwartą książką poświęconą technologii PowerShell. Napisał setki artykułów o firmie Microsoft i innych technologiach, a także prowadzi technicznego bloga pod adresem tfl09.blogspot.com.

Przez ponad 25 lat Thomas był certyfikowanym trenerem Microsoft, aż 17 razy odznaczonym nagrodą Microsoft MVP. Działał w stowarzyszeniu British Computer Society i jest dyplomowanym inżynierem. Jest członkiem globalnego zarządu dla programu MVP Reconnect.

Obecnie żyje w starej chatce w angielskiej wsi. Cieszy go praca w ogrodzie, dobrze wyposażona piwniczka z winem, pokaźna kolekcja nagrań koncertowych zespołu Grateful Dead, a także miłość jego rodziny. Uwielbia pracować z PowerShell!

O redaktorze technicznym

Jim Topp jest administratorem systemów Windows Server z ponad 16-letnim doświadczeniem. Od 12 lat tworzy skrypty i automatyzuje kod PowerShell. Jest członkiem społeczności PowerShell.org i zredagował kilka książek napisanych przez Dona Jonesa. Jim mieszka w Bloomington w amerykańskim stanie Indiana.

Podziękowania

Każda książka wymaga dużego zaangażowania ze strony zespołu utalentowanych ludzi, którzy będą w stanie zapewnić udany produkt. Podczas gdy autor pisze tekst i kod, redaktorzy rozwojowi i techniczni skupiają się na treści i upewniają się, że skrypty działają prawidłowo i zgodnie z opisem. Publikacja książki była dla mnie tak honorem, jak i niezwykle cennym doświadczeniem. Zawsze wierzyłem, że aby napisać jakąś książkę trzeba najpierw dobrze poznać dany temat, a ja z pewnością nauczyłem się w tym czasie wielu nowych rzeczy.

Przede wszystkim chciałem wyrazić głęboką wdzięczność wydawnictwu Wiley i jego fantastycznemu zespołowi za pomoc w stworzeniu tej książki: Kenyonowi Brownowi, Pete'owi Gaughanowi i innym. Dziękuję, że dostrzegliście historię, którą chciałem opowiedzieć.

Wielkie podziękowania dla mojego redaktora prowadzącego, Jima Comptona, za jego mądrość, uprzejmość i cierpliwość podczas mojego "procesu" pisania. Byłeś dla mnie wielką inspiracją i jestem ci bardzo wdzięczny za twój wkład.

Pisanie setek linii kodu PowerShell 7 i dokładne ich przekształcanie na tekst książki i zrzuty ekranu jest bardzo ciężką pracą. Jim Topp wykonał kawał dobrej roboty sprawdzając każdą linię kodu i każdy zrzut ekranu, jak również przesyłając liczne sugestie mające na celu usprawnienie tego, co zostało zawarte w tej książce.

Podczas pisania tej książki byłem pod nieustannym wrażeniem całego zespołu rozwojowego PowerShell. Dostarczyliście wysokiej jakości kod, słuchaliście i przyjmowaliście opinie społeczności, dzięki czemu dostarczyliście światowej klasy produkt. Joey Aiello, Steve Lee, Jim Truher i wielu innych - byliście prawdziwą inspiracją.

Kolejną znaczącą inspiracją jest Jeffrey Snover. Od dnia, kiedy po raz pierwszy zaprezentował on Monad w Los Angeles, był on wspaniałym wzorem do naśladowania. Jest mądry, skupiony i jest jednym z najlepszych prezenterów, jakich kiedykolwiek miałem przyjemność oglądać. Gdy napisałem na Twitterze, że PowerShell Core 6.1 jest trochę jak niegdysiejszy Windows PowerShell 2.0, Jeffrey w typowy dla siebie skromny sposób napisał, że choć jest to prawda, to jednak PowerShell miał większą prędkość. Jest to co najmniej niedopowiedzenie.

Przedstawiony w tej książce kod PowerShell 7 został stworzony i przetestowany na różnych maszynach wirtualnych z systemem Windows Server 2019. Ponieważ jestem członkiem programu MVP Reconnect, zespół Visual Studio w firmie Microsoft udostępnił mi subskrypcję Visual Studio Online. Za pomocą pozyskanych z niej obrazów ISO możemy zbudować maszyny wirtualne. Nie mógłbym napisać tej książki bez ich hojnego wsparcia.

Podziękowania należą się również społeczności PowerShell. Społeczność stworzyła olbrzymią liczbę zasobów, kodu i dokumentacji PowerShell. Artykuły techniczne, nowe moduły, wskazówki i sztuczki - tak wiele świetnej treści. Podziękowania dla Jeffa Hicka, Dona Jonesa, Richarda Siddaway'a i wielu innych.

Na koniec dziękuję społeczności PowerShell na platformie Spiceworks - przyjaznej grupie pomocnych osób uzależnionych od PowerShella (community.spiceworks.com/programming/powershell). Jeśli interesuje cię PowerShell, zachęcam do odwiedzenia tej strony i przyłączenia się do tamtejszej społeczności.

Przedmowa

Dziesięć lat po wydaniu programu Windows PowerShell 1.0, zespół PowerShell ogłosił wersję PowerShell Core 6. Prace nad PowerShell Core 6 rozpoczęły się kilka lat wcześniej i to właśnie wtedy zostałem kierownikiem inżynierii PowerShell. Na początku nie było łatwo, zwłaszcza w zakresie zgodności z Windows PowerShell, ale wraz z wydaniem PowerShell 7 rozpoczynamy oficjalnie nowy rozdział technologii PowerShell, w którym to PowerShell 7 może być wykorzystywany jako zamiennik dla (lub używany jednocześnie z) Windows PowerShell 5.1.

PowerShell 7 reprezentuje przyszłość powłoki PowerShell z uwagi na wprowadzenie trzech dużych zmian:

Jeden język automatyzacji dla Windows, Linux i macOS: Windows PowerShell został dobrze przyjęty przez społeczność Windows. W miarę stopniowego przechodzenia branży IT w stronę chmury, pozwoliło to PowerShell stać się językiem pozwalającym korzystać z tej chmury. Usprawnienia poczynione w poleceniach sieciowych upraszczają wywoływanie API REST. Wczesne partnerstwa z Azure, Amazon Web Services, Google Compute Cloud i VMware zagwarantowały dostępność poleceń PowerShell dla dowolnego rozwiązania chmury na dowolnej platformie. Przy okazji PowerShell stał się świetną i użyteczną powłoką, bez względu na to, czy korzystamy z Windows, Linux czy macOS. Przejście do open source: Była to duża zmiana w sposobie pisania oprogramowania i angażowania się w społeczność. Możemy być teraz znacznie bardziej transparentni co do naszych planów, a także akceptować pomoc ze strony społeczności w celu rozwiązania problemów lub wprowadzania funkcji, które w innym przypadku nie byłyby priorytetem dla zespołu. Przy około 50 procentach żądań ściągnięcia pochodzących od społeczności, przyszłość PowerShella naprawdę jest projektem rozwijanym przez społeczność! Wczesne wykorzystanie .NET Core: Podczas przechodzenia z .NET Framework na .NET Core (a teraz po prostu .NET) nie zabrakło pewnych wyzwań. Zgodność z modułami programu Windows PowerShell była początkowo największym problemem. .NET przebył długą drogę w rozwiązywaniu problemu zgodności, wprowadzając z powrotem wiele API zapewniających zgodność PowerShell z istniejącymi modułami. Dodatkowo .NET Core zawiera pewne znaczące usprawnienia wydajności, które sprawiają, że istniejące skrypty i moduły PowerShell działają szybciej bez żadnych modyfikacji!

Misją powłoki PowerShell jest ułatwienie użytkownikom korzystania z zasobów obliczeniowych. W programie PowerShell 7 uwzględnia to różne platformy, takie jak Windows, Linux i macOS, ale również nowe architektury, takie jak ARM32 i ARM64. Przy modułach PowerShell dostępnych dla głównych chmur publicznych i prywatnych możemy uzyskać większą produktywność w scenariuszach hybrydowych lub korzystających z wielu chmur. Wciąż podtrzymujemy "świętą przysięgę" PowerShella - że nauka nowego języka jest trudna, ale dzięki inwestycji w naukę PowerShella będziemy nadal pomagać użytkownikom rozszerzać ich wpływ i podnosić swoją produktywność, jak choćby za pomocą bezserwerowych funkcji w formie usługi czy platformy Jupyter Notebooks. Jestem podekscytowany nową fazą powłoki PowerShell, którą rozpoczęliśmy wraz z wydaniem PowerShell 7, ale dla mnie osobiście jest to dopiero początek i wiele świetnych rzeczy dopiero przed nami! Ta książka autorstwa Thomasa jest świetnym sposobem na rozpoczęcie pracy z PowerShell 7 przy wykorzystaniu istniejącego doświadczenia zdobytego w pracy z programem Windows PowerShell.

Thomas Lee jest członkiem społeczności PowerShell znacznie dłużej niż ja byłem kierownikiem inżynierii PowerShell. Niektórych rzeczy o PowerShell dowiedziałem się czytając jego artykuły i posty na jego blogu. W czasie gdy zespół PowerShell robił postępy w pracach nad wydaniem programu PowerShell 7, Thomas był z nami przez cały czas, promując, nauczając i informując społeczność o wszystkich tych świetnych rzeczach, które przynosi ze sobą PowerShell 7. Najważniejszym aspektem, który zdecydował o sukcesie PowerShell, była jego społeczność, a Thomas był jej nieodłączną częścią.

Steve LeeGłówny kierownik inżynierii oprogramowaniaZespół PowerShell

Wprowadzenie

Cześć i dziękuję za zakup tej książki. Gdy w 2003 roku Jeffrey Snover na konferencji Professional Developers Conference w Los Angeles przedstawił po raz pierwszy projekt Monad, który został później przemianowany na Windows PowerShell, siedziałem wówczas na widowni. Byłem podekscytowany tym, co wtedy zobaczyłem i usłyszałem. Był to przełomowy moment w mojej karierze.

Dzisiaj mamy nową wersję powłoki PowerShell, PowerShell 7, którą znowu możemy się ekscytować. Zespół rozwojowy PowerShell wraz z fantastyczną społecznością PowerShell wyniósł ten produkt na nowy poziom. Ja jestem nadal podekscytowany i mam nadzieję, że Ty również.

Chciałbym, abyś przed zagłębieniem się w treść tej książki poświęcił kilka minut na przeczytanie tego krótkiego wstępu, w którym to wyjaśniam moją motywację do napisania tej książki, jej strukturę oraz sposób korzystania z przedstawionych w niej skryptów PowerShell z użyciem maszyn wirtualnych Hyper-V.

Książka składa się 10 rozdziałów. Pierwszy rozdział poświęcony jest konfigurowaniu powłoki PowerShell 7 w naszym środowisku. Rozdział 2 omawia problem zgodności z Windows PowerShell i pokazuje, w jaki sposób PowerShell 7 stara się go rozwiązać. Pozostałych osiem rozdziałów dotyczy różnych funkcji systemu Windows Server i sposobu zarządzania nimi z poziomu powłoki PowerShell 7.

Rozdział 1: Konfigurowanie środowiska PowerShell 7: W tym rozdziale przyglądamy się sposobom instalacji powłoki PowerShell 7 i edytora VS Code. VS Code zastępuje starszą powłokę Windows PowerShell ISE. Przedstawione w tej książce zrzuty ekranu pokazują kod PowerShell uruchamiany w edytorze VS Code. W środowisku produkcyjnym moglibyśmy zrezygnować z używania na naszym serwerze VS Code (lub dowolnego innego narzędzia z graficznym interfejsem użytkownika) i zamiast tego korzystać z konsoli PowerShell 7 ze zdalnym edytowaniem tekstu.

Rozdział 2: Zgodność PowerShell 7 z Windows PowerShell: Zgodność z programem Windows PowerShell jest istotnym celem i znaczącym zadaniem inżynierskim. Ten rozdział omawia ten problem zgodności, a przy tym dostarcza pewnych informacji na temat modułów. W dalszej części wyjaśniamy w nim sposób działania zgodności wstecznej i omawiamy niewielką część powłoki Windows PowerShell, z której nie można korzystać w PowerShell 7.

Rozdział 3: Zarządzanie Active Directory: Active Directory jest sercem sieci niemal każdej organizacji. Ten rozdział pokazuje, w jaki sposób możemy wdrożyć i zarządzać usługą Active Directory, wliczając w to tworzenie lasów i domen, jak również łączenie lasów za pomocą zaufania między lasami. Rozdział ten przedstawia również sposób zarządzania użytkownikami, komputerami, grupami i innymi obiektami Active Directory.

Rozdział 4: Zarządzanie siecią: Ten rozdział dotyczy zarządzania siecią w PowerShell 7. Sprawdzamy tu konfigurację kart sieciowych, a także instalujemy usługi DNS i DHCP.

Rozdział 5: Zarządzanie magazynem danych: Magazynowanie danych jest kluczowym aspektem każdego systemu komputerowego. Musimy gdzieś przechowywać nasze pliki i inne dane. Ten rozdział omawia zarządzanie dyskami i woluminami/partycjami, jak również korzystanie z modułu zewnętrznego do zarządzania uprawnieniami NTFS. Rozdział ten porusza temat funkcji Storage Replica do replikowania magazynu danych, także w kontekście odzyskiwania po awarii. Na koniec omawia on korzystanie z menedżera File Server Resource Manager do zarządzania przydziałami plików i osłoną plików.

Rozdział 6: Zarządzanie udostępnionymi danymi: Gdy mamy już skonfigurowane dyski jako woluminy i partycje, a przy tym ustawiliśmy odpowiednie uprawnienia, musimy udostępnić te dane w obrębie sieci. Ten rozdział pokazuje, w jaki sposób możemy skonfigurować serwer plików SMB, a także utworzyć i zabezpieczyć na nim udziały plików SMB. Omawia on również proces konfiguracji obiektu docelowego iSCSI i jego wykorzystanie w celu wdrożenia wysokoodpornego serwera plików skalowalnego w poziomie.

Rozdział 7: Zarządzanie drukowaniem: Drukowanie jest podstawową funkcją systemu Windows dostępną od samego początku jego istnienia. Ten rozdział pokazuje, w jaki sposób możemy skonfigurować i zarządzać serwerem wydruku. Dowiemy się z niego, jak dodać drukarkę i sterowniki drukarki, jak wydrukować stronę testową i jak skonfigurować pulę drukowania.

Rozdział 8: Zarządzanie Hyper-V: Hyper-V jest podstawowym produktem wirtualizacji firmy Microsoft. Ten rozdział omawia konfigurację i zarządzanie Hyper-V oraz tworzenie i zarządzanie maszynami wirtualnymi Hyper-V. Porusza on również temat maszyn wirtualnych, a także przenoszenia i replikacji magazynu maszyny wirtualnej - ważne tematy w dzisiejszym świecie ukierunkowanym na tego rodzaju maszyny.

Rozdział 9: Korzystanie z WMI z użyciem poleceń CIM: Windows Management Instrumentation jest funkcją systemu Windows dostępną od czasu wydania Windows NT 4.0. WMI zapewnia dostęp do informacji o naszym systemie i pozwala nam zarządzać wybranymi aspektami tego systemu. WMI oferuje dostęp do funkcjonalności systemu Windows, której nie uzyskamy za pomocą poleceń PowerShell. Rozdział ten omawia komponenty WMI i pokazuje, w jaki sposób możemy dowiedzieć się czegoś więcej. Wyjaśniamy w nim również sposób zarządzania zdarzeniami WMI i konfigurowania trwałej obsługi zdarzeń w celu zarządzania krytycznymi zdarzeniami bezpieczeństwa.

Rozdział 10: Raportowanie: Wiedza na temat stanu naszej infrastruktury IT jest niezbędna do zarządzania naszym środowiskiem komputerowym. Ten rozdział demonstruje nam, w jaki sposób możemy używać PowerShell 7 do pozyskiwania informacji na temat naszej infrastruktury. Rozdział ten omawia proces tworzenia raportów o użytkownikach i komputerach Active Directory, raportów o systemie plików z użyciem menedżera FSRM, także raportów dotyczących użycia drukarek i hostów z maszynami wirtualnymi Hyper-V. W rozdziale tym omawiany jest również temat rejestrowania wydajności i tworzenie alertów w celu przechwytywania szczegółowych informacji o wydajności oraz tworzenia rozbudowanych raportów i wykresów pokazujących wydajność naszej infrastruktury.

Napisałem tę książkę, aby pokazać profesjonalistom IT, że przejście do PowerShell 7 jest łatwe i warte poświęconego czasu. Podobnie jak po przeprowadzce do nowego domu, w PowerShell 7 niektóre rzeczy będą nieco inne. Ale gdy się już przyzwyczaimy, raczej nie będziemy chcieli już wracać. Wraz z edytorem VS Code, powłoka PowerShell 7 jest po prostu lepsza. Mam nadzieję, że każdy rozdział tej książki będzie w stanie to pokazać.

Ta książka zakłada, że czytelnik jest profesjonalistą IT chcącym nauczyć się wykorzystywać PowerShell 7 w jak najlepszy sposób. Może to być czynny administrator, konsultant lub kierownik - wymagana jest jedynie wiedza o funkcjach systemu Windows Server, wiedza z zakresu własnej dziedziny, a także znajomość samego programu Windows PowerShell.

Książka omawia różne podstawowe funkcje systemu Windows, wliczając w to Active Directory, File Services Resource Manager, WMI, drukowanie i więcej. Każdy rozdział opisuje obszar danej funkcji oraz komponenty, z którymi wchodzimy w interakcję. Następnie rozdział pokazuje nam, w jaki sposób możemy użyć PowerShell 7 do wdrożenia, zarządzania i korzystania z danej funkcji.

Nie jest możliwe omówienie w tej książce (a w zasadzie w żadnej książce o PowerShell) każdego aspektu każdej funkcji systemu Windows. Jak mawia Jeffrey Snover, "Aby dostarczyć, trzeba wybrać", i mam nadzieję, że wybrałem mądrze. Zawarłem również odnośniki do stron, na których można znaleźć więcej informacji. Bez problemu można do mnie napisać maila i przesłać mi swoją opinię (DoctorDNS@Gmail.Com).

Ta książka zawiera różne skrypty PowerShell 7, których możemy użyć do zarządzania pewnymi aspektami systemu Windows. Skrypty dostępne są do pobrania ze strony wydawnictwa Wiley lub z mojego repozytorium GitHub pod adresem github.com/doctordns/Wiley20. Gdyby ktoś odkrył jakiś problem z dowolnym z tym skryptów lub znalazł błąd w dokumentacji, proszę o zgłoszenie tego na moim repozytorium GitHub (github.com/doctordns/Wiley20/issues).

Głównym celem podczas tworzenia tej książki było pokazanie, jak łatwo możemy używać PowerShell 7 do zarządzania infrastrukturą Windows Server. Istnieją pewne różnice w sposobie instalacji tej powłoki, a do tego musimy przywyknąć do pracy z edytorem VS Code, który zastąpił powłokę ISE. W czasie pisania odkryłem kilka problemów związanych ze zgodnością z Windows PowerShell i omawiam je w rozdziale 2. Czas już przejść do PowerShell 7.

Skrypty i treść tej książki stworzyłem przy wykorzystaniu maszyn wirtualnych Hyper-V z systemem Windows Server 2019 Datacenter. Aby z tej książki i jej skryptów można było wynieść jak najwięcej, warto samemu zbudować wszystkie prezentowane tu maszyny wirtualne i używać ich do testowania skryptów. Oczywiście zamiast maszyn wirtualnych można używać hostów fizycznych, ale maszyny wirtualne są łatwiejsze w użyciu. Dla osób, które mogą nie mieć pod ręką wymaganego sprzętu, zawarłem w tej książce zrzuty ekranu pokazujące wyniki uzyskiwane w każdym z kroków każdego skryptu. Stworzyłem również odpowiedni zestaw skryptów ułatwiających budowę tych maszyn wirtualnych. Można je pobrać z mojego GitHuba. Więcej informacji na temat tych skryptów i sposobów ich pozyskiwania można znaleźć w rozdziale 1.

Od samego początku jednym z najbardziej imponujących aspektów produktu PowerShell była jego rozbudowana i aktywna społeczność. Tysiące ludzi z całego świata, którzy kochają PowerShell i dostarczyli nam już wiele wspaniałych rzeczy: tweety, wpisy na forach, artykuły na blogach, skrypty, moduły, strony internetowe i wiele więcej. Spora liczba funkcji dostępnych w PowerShell 7 pochodzi właśnie od społeczności.

Jeśli ktoś ma jakikolwiek problem z dowolnym aspektem dowolnego komponentu tej książki - lub dowolnym aspektem systemu Windows - pomoc w rozwiązaniu każdego z nich będzie mógł znaleźć w internecie.

Praktycznie każda strona mediów społecznościowych, na której gromadzą się osoby techniczne, będzie oferować jakiś rodzaj treści lub pomocy związanej z PowerShell. Zapraszam do odwiedzenia forum PowerShell na stronie Spiceworks, gdzie sam jestem moderatorem (community.spiceworks.com/programming/powershell).

Ciesz się tą książką i ciesz się PowerShell 7.

Fare thee well now,

Let your life proceed by its own design.

Nothing to tell now,

Let the words be yours; I'm done with mine.

"Cassidy", John Barlow/Robert Weir

Thomas LeeCzerwiec 2020Cookham, Anglia

Rozdział 1

Konfigurowanie środowiska PowerShell 7

Pierwsze wersje Windows PowerShell dla systemów Windows XP i Windows Server 2008 oferowane były w ramach dostępnych do pobrania plików, które instalowane były przez użytkownika. Dzisiaj systemy Windows Server i Windows 10 dostarczane są z domyślnie zainstalowanym środowiskiem Windows PowerShell w wersji 5.1, które w tej książce nazywam po prostu Windows PowerShell, aby odróżnić go od PowerShell 7 (i środowiska Windows PowerShell Integrated Scripting Environment). Windows PowerShell oferuje wiele różnych poleceń pozwalających na podstawową administrację systemem Windows.

W czasie pisania tej książki PowerShell 7 nie jest dostarczany z systemem Windows. W przyszłości zespół PowerShell może zacząć dostarczać PowerShell 7 w postaci składnika systemu Windows, ale dopóki tak się nie stanie, będziemy musieli sami pobierać i instalować to środowisko.

Środowisko graficzne Windows PowerShell Integrated Scripting Environment (ISE) nie obsługuje PowerShell 7. Profesjonaliści IT, którzy potrzebują dobrego interaktywnego środowiska programistycznego dla PowerShell mogą korzystać z programu Visual Studio Code (VS Code) - darmowego narzędzia, które również w prosty sposób możemy pobrać i zainstalować. VS Code dostarczany jest z szeregiem rozszerzeń, które oferują znacząco ulepszone możliwości programistyczne dla profesjonalistów IT (i nie tylko).

We wcześniejszych wersjach powłoki PowerShell znaczna większość poleceń dostarczana była wraz z systemem Windows, przy czym wiele z nich można było uzyskać po zainstalowaniu jakiejś aplikacji (takiej jak Exchange Server) lub włączeniu wybranej funkcji systemu Windows. W przypadku PowerShell 7 głównym źródłem modułów/poleceń, za pomocą których możemy wykonywać różne zadania administracyjne, jest galeria programu PowerShell. Aby móc w pełni korzystać ze wszystkich możliwości galerii PowerShell, należy zaktualizować moduł PowerShellGet.

Co nowego w PowerShell 7

PowerShell 7 jest najnowszą wersją powłoki PowerShell. Zespół rozwojowy PowerShell wydał PowerShell 7.0 w marcu 2020 roku. Zanim ktoś przeczyta tę książkę, zespół rozwojowy z pewnością zdąży już wydać nową pomniejszą aktualizację. PowerShell 7 ma wiele nowych kluczowych funkcji, które z pewnością będą przydatne dla profesjonalistów IT.

Jeśli jesteśmy już zaznajomieni i potrafimy wykorzystywać Windows PowerShell do zarządzania naszymi systemami Windows, będziemy mogli bezpośrednio przenieść całą naszą dotychczasową wiedzę do nowego środowiska. Potrzebujemy uzyskać pomoc dla jakiegoś polecenia? Wystarczy wpisać Get-Help w wierszu polecenia PowerShell. Podstawowa architektura PowerShell pozostaje taka sama i zawiera wiele wewnętrznych zmian i znaczących usprawnień, ale też kilka problemów z kompatybilnością.

Patrząc z perspektywy profesjonalisty IT z wiedzą na temat zarządzania systemem Windows z poziomu Windows PowerShell, kluczowe zmiany są następujące:

Opracowane na nowo polecenia cmdlet, oparte na technologii .NET Core i dostępne w wersji źródłowej w witrynie GitHub: Możemy teraz czytać kod, a nawet pomagać rozszerzać dowolne polecenia w PowerShell 7. Oznacza to również, że polecenia zostały napisane w taki sposób, aby wykorzystywały .NET Core - co doprowadziło do powstania kilku niewielkich problemów ze zgodnością. Solidna warstwa kompatybilności: Za jej pomocą uzyskujemy dostęp do modułów Windows PowerShell, które nie działają bezpośrednio w PowerShell 7. Oznacza to, że niemal wszystkie (poza niewielką liczbą) moduły Windows PowerShell 5.1 są dostępne i działają w PowerShell 7. Rozdział 2., "Zgodność PowerShell 7 z Windows PowerShell", opisuje tę warstwę zgodności bardziej szczegółowo, wyjaśnia sposób jej działania i jej ograniczenia oraz dostarcza rozwiązania obejściowe. Znaczące usprawnienia w zakresie wydajności: Podczas przenoszenia modułów Windows PowerShell do PowerShell 7, zespół rozwojowy był w stanie przejrzeć ich kod i dostarczyć dla nich usprawnienia w zakresie wydajności. Przykładowo przetwarzanie olbrzymich kolekcji za pomocą Foreach jest teraz znacznie szybsze. Polecenie Foreach-Object ma teraz przełącznik -Parallel, który pozwala nam wykonywać bloki skryptu równolegle, co może znacząco skrócić czas wykonywania, zwłaszcza na potężniejszych wielordzeniowych i wieloprocesorowych serwerach. Nowe operatory języka PowerShell: PowerShell oferuje teraz trzy nowe zestawy operatorów: operator trójargumentowy (a ? b : c), operatory łańcucha potoku (|| i &&), oraz nullowe operatory koalescencji (?? i ??=). Operatorów tych - zaimplementowanych również w innych powłokach, takich jak Bash czy Zsh - możemy teraz używać również w PowerShell 7. Uproszczone widoki błędów: W programie Windows PowerShell komunikaty o błędach były bardzo przydatne i dostarczały wielu cennych informacji. Jednak w większości przypadków zawierały one więcej informacji niż to było potrzebne. Komunikaty o błędach w PowerShell 7 są teraz znacznie bardziej zwięzłe. A gdy faktycznie potrzebujemy tych dodatkowych informacji, za pomocą polecenia Get-Error możemy pozyskać pełne szczegóły na temat dowolnego błędu. Jeśli zmiennej $ErrorView nadamy wartość NormalView, będziemy mogli wyświetlać komunikaty o błędach w starszym stylu Windows PowerShell. Jeśli z kolei nadamy jej wartość CategoryView, wyświetlane będą wyłącznie kategorie błędów. Funkcje eksperymentalne: Zespół PowerShell zaimplementował zestaw nowych funkcji w fazie eksperymentalnej. Jeśli chcemy, możemy korzystać z tych funkcji. Daje nam to możliwość wypróbowania nowych rzeczy i przesłania naszej opinii o nich. Automatyczne powiadamianie o nowej wersji: W czasie pisania tej książki nie jest świadczone wsparcie dla PowerShell 7 za pośrednictwem sklepu Windows Store czy poprzez Windows Update. Oznacza to, że aktualizacjami musimy zarządzać sami. Komunikaty te powiadamiają nas o dostępności nowej wersji PowerShell do pobrania. Set-Location obsługuje teraz - i + na ścieżce: W przypadku korzystania z polecenia Set-Location do resetowania naszego bieżącego katalogu roboczego, możemy skorzystać z przełącznika -Path "-" w celu poinstruowania polecenia Set-Location, że chcemy przenieść się do ostatnio odwiedzonego folderu. Po cofnięciu się możemy ustawić lokalizację za pomocą +, aby przemieścić się ponownie do przodu. Zdolność do bezpośredniego wywoływania zasobu DSC: PowerShell 7 nie obsługuje konfiguracji żądanego stanu (Desired State Configuration, DSC), a tym samym serwerów ściągania/raportów, menedżera lokalnej konfiguracji i tak dalej. Możemy jednak ręcznie wywoływać zasoby DSC na danym hoście, co stanowi częściowe rozwiązanie.

Zaprezentowane w tej książce fragmenty kodu PowerShell 7 wykorzystują i demonstrują większość z tych nowych funkcji. Więcej informacji na temat dowolnej z nich - wliczając w to przypadki użycia oraz przykłady - można znaleźć wyszukując je po prostu w sieci, jako że społeczność PowerShell stworzyła już pokaźną ilość treści opisujących te funkcje. Dostępnych jest wiele takich wpisów ogólnych, jak choćby artykuł pod adresem https://www.thomasmaurer.ch/2020/03/whats-new-in-powershell-7-check-it-out. Istnieją również bardziej szczegółowe artykuły, które omawiają konkretne nowe funkcje, jak na przykład artykuł tfl09.blogspot.com/2020/03/introduction-and-background-welcome-to.html, który dostarcza szczegóły na temat nowych operatorów trójargumentowych i łańcucha potoku.

Systemy używane w tej książce i w tym rozdziale

Ta książka omawia sposób wykorzystywania programu PowerShell 7 do wykonywania szerokiego zakresu zadań, wliczając w to przypisywanie uprawnień do udziału sieciowego, zbieranie i raportowanie danych na temat wydajności czy instalowanie i konfigurowanie usługi Active Directory. W celu zademonstrowania tych oraz wielu innych zadań książka ta wykorzystuje zbiór hostów oraz dwie domeny: Reskit.Org i Kapoho.Com. Systemy te można zaimplementować na dwa różne sposoby.

Skrypty tworzące maszyny wirtualne serwerów

Skrypty w tej książce zakładają, że dysponujemy zestawem serwerów gotowych do skonfigurowania. Jeśli ktoś chce, może skonfigurować każdy z tych komputerów przy użyciu sprzętu fizycznego, jednak znacznie prostszą alternatywą jest zbudowanie niezbędnych serwerów z maszyn wirtualnych Hyper-V z użyciem skryptów dostępnych na stronie github.com/doctordns/ReskitBuildScripts. To repozytorium GitHub zawiera plik README.MD (github.com/doctordns/ReskitBuildScripts/blob/master/README.md), który wyjaśnia, jak za pomocą tych skryptów można zbudować własną farmę maszyn wirtualnych.

Skrypty te wykorzystywane są do tworzenia maszyn wirtualnych na potrzeby różnych szkoleń oraz dla innych książek. Nie ma potrzeby tworzenia wszystkich maszyn wirtualnych. We wprowadzeniu do każdego rozdziału podawane są konkretne maszyny wirtualne wykorzystywane w danym rozdziale.

Te skrypty tworzą maszyny wirtualne, ale należy zwrócić uwagę na kolejność, w jakiej są one tworzone, oraz na lokalizację, w której przechowywane są maszyny wirtualne, wirtualne dyski twarde i tak dalej.

Skrypty tworzą maszyny wirtualne z podstawową obsługą sieci (jedna karta sieciowa), przy czym możliwe jest ich rozszerzenie poprzez dodanie do nich kolejnych kart sieciowych. Skrypty tworzą maszyny wirtualne na potrzeby tej książki z użyciem konkretnego zestawu adresów sieciowych. Dokument github.com/doctordns/ReskitBuildScripts/blob/master/ReskitNetwork.md pokazuje szczegóły hostów sieciowych i adresy IP.

Dostęp maszyn wirtualnych do internetu

Maszyny wirtualne (lub hosty, jeśli wykorzystujemy fizyczne komputery) wymagają dostępu do internetu. Wszystkie maszyny wirtualne znajdują się w sieci IPv4 10.10.10.0/24 zaimplementowanej jako wewnętrzna sieć Hyper-V za pomocą wewnętrznego wirtualnego przełącznika Hyper-V. Istnieją dwa mechanizmy, za pomocą których możemy to osiągnąć.

Możemy wyposażyć każdą maszynę wirtualną w drugą wirtualną kartę sieciową. Kartę tę należy skonfigurować w taki sposób, aby wykorzystywała zewnętrzny przełącznik powiązany z zewnętrzną kartą sieciową hosta naszej maszyny wirtualnej. Jest to proste rozwiązanie, które można szybko skonfigurować.

Alternatywą jest skonfigurowanie maszyny wirtualnej z systemem Windows Server z usługą Routing and Remote Access. W maszynie tej konfigurujemy dwie karty sieciowe (jedną wewnętrzną, drugą zewnętrzną) i konfigurujemy routing między podsiecią 10.10.10.0/24 używaną przez maszyny wirtualne wykorzystywane w tej książce a internetem.

Systemy używane w tym rozdziale

W tym rozdziale użyjemy PowerShell 7 do zarządzania różnymi aspektami sieci. Skrypty z tego rozdziału wykorzystują jeden z nich.

DC1: Na potrzeby tego rozdziału, DC1 jest po prostu hostem z systemem Windows Server 2019.

Rysunek 1.1 przedstawia systemy wykorzystywane w tym rozdziale.

Rysunek 1.1 Systemy używane w tym rozdziale

Na potrzeby tego rozdziału, DC1 jest maszyną wirtualną z zainstalowanym systemem Windows Server 2019 Datacenter. Serwer ten można utworzyć za pomocą wspomnianych wcześniej skryptów. W rozdziale 3., "Zarządzanie Active Directory", wypromujemy ten serwer do roli kontrolera domeny.

Instalowanie PowerShell 7

Firma Microsoft nie oferuje programu PowerShell 7 z żadną wersją systemu Windows, taką jak Windows 10, Windows Server 2019 czy dowolnym innym wspieranym wydaniem klienckim lub serwerowym Windows. Aby zainstalować i korzystać z programu PowerShell 7, musimy sami zainstalować go w naszym systemie operacyjnym.

W chwili pisania tej książki zespół PowerShell zapewnia wsparcie dla PowerShell 7 na następujących systemach operacyjnych:

Windows 7, 8.1 i 10 Windows Server 2008 R2, 2012, 2012 R2, 2016 i 2019 macOS 10.13+ Red Hat Enterprise Linux (RHEL) / CentOS 7+ Fedora 29+ Debian 9+ Ubuntu 16.04+ openSUSE 15+ Alpine Linux 3.8+

Lista ta jest stale aktualizowana. Zespół produktu PowerShell będzie rozszerzał ją o dystrybucje linuksowe i zapewniał wsparcie dla nowszych wersji wszystkich wymienionych platform.

Ta książka omawia instalowanie i korzystanie z programu PowerShell 7 na platformie Windows. Zamieszczone w niej rozdziały wykorzystują funkcje systemu Windows Server, takie jak Active Directory, które nie mają swoich odpowiedników na innych platformach. Niemniej jednak możliwe jest korzystanie z programu PowerShell 7 na platformach innych niż Windows w celu zarządzania klientami i serwerami Windows.

Książka ta wymaga, aby program PowerShell 7 został zainstalowany na każdym wykorzystywanym przez nas hoście, jako że wszystkie prezentowane w niej skrypty wymagają PowerShell 7.

Przed rozpoczęciem

Przedstawiony w tej części kod wykonywany jest na komputerze DC1 z systemem Windows Server 2019. Możliwe jest również użycie fragmentów tego kodu na innych wykorzystywanych hostach w celu zainstalowania na nich programu VS Code.

Zaczynamy od wykonania kodu z użyciem programu Windows PowerShell 5.1 (lub ISE) w konsoli z podwyższonym poziomem uprawnień. Możemy pobrać odpowiednie pliki skryptów, otworzyć je lokalnie i wykonać je na każdej maszynie wirtualnej w środowisku ISE (początkowo). Gdy mamy już zainstalowany program PowerShell 7, możemy korzystać z konsoli PowerShell 7 (z programu VS Code skorzystamy w dalszej części tego rozdziału).

Włączanie zasad wykonywania

Domyślnie PowerShell nie pozwala nam wykonywać skryptów. Aby to zrobić, musimy najpierw skonfigurować zasady wykonywania.

# 1. Włącz wykonywanie skryptów

Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Force

W tym miejscu ustawiamy zasady wykonywania na wartość Unrestricted (Bez ograniczeń). W przypadku systemów produkcyjnych rozsądniejsze będzie skonfigurowanie bardziej restrykcyjnych zasad wykonywania.

Instalowanie najnowszej wersji NuGet i PowerShellGet

PowerShell 7 dostarczany jest z olbrzymią liczbą modułów zawierających przydatny zbiór poleceń, ale nie zawiera on wszystkich modułów i poleceń do wykorzystania w każdej możliwej sytuacji. Społeczność programu PowerShell stworzyła kilka wspaniałych modułów dodatkowych, które możemy pobrać i wykorzystywać. Niektóre z nich omawiane są w tej książce.

Do pobrania modułów PowerShell omawianych w tej książce używamy galerii programu PowerShell. Na przykład, w dalszych rozdziałach za pomocą modułu NTFS Security będziemy zarządzać zabezpieczeniami plików i folderów NTFS.

Moduł z galerii programu PowerShell lub innego repozytorium modułów pobieramy i instalujemy za pomocą polecenia Import-Module. Aby móc pracować z galerią programu PowerShell, musimy mieć pewność, że korzystamy z najnowszych wersji narzędzi, które polecenie Install-Module wykorzystuje do pracy z galerią PowerShell.

Aby upewnić się, że pobieramy najnowszą wersję kluczowych modułów z galerii programu PowerShell, używamy następujących poleceń:

# 2. Zainstaluj najnowsze wersje Nuget i PowerShellGet

Install-PackageProvider Nuget -MinimumVersion 2.8.5.201 -Force |

Out-Null

Install-Module -Name PowerShellGet -Force -AllowClobber

Aby pobrać zawartość z galerii programu PowerShell, należy skorzystać z poleceń w module PowerShellGet. To z kolei wymaga narzędzia NuGet przynajmniej w wersji 2.8.5.201.

Więcej szczegółów na temat galerii programu PowerShell znajduje się na stronie docs.microsoft.com/powershell/scripting/gallery/overview. Aby zobaczyć polecenia dostępne w module PowerShellGet, przejdź na stronę docs.microsoft.com/powershell/module/powershellget/.

Tworzenie folderu Foo

Zawarte w tej książce przykładowe fragmenty kodu wykorzystują folder C:\Foo do przechowywania różnych plików wykorzystywanych w tym kodzie. Możemy go utworzyć za pomocą polecenia New-Item.

# 3. Utwórz lokalny folder C:\Foo

$LFHT = @{

ItemType = 'Directory'

ErrorAction = 'SilentlyContinue' # jeśli już istnieje

}

New-Item -Path C:\Foo @LFHT | Out-Null

Polecenia te wykorzystują technikę PowerShell o nazwie splatting (tworzenie pakietów parametrów). Najpierw tworzymy tabelę skrótów zawierającą nazwy i wartości parametrów. Następnie przekazujemy tę tabelę do polecenia, w tym wypadku New-Item. Przekazujemy tabelę skrótów zamiast parametrów i ich wartości. Ta książka wykorzystuje tę funkcję na szeroką skalę z kilku powodów. Przede wszystkim dzięki niej wszystkie polecenia mieszczą się na stronach, co pozwala uniknąć poleceń rozciągających się na wiele linii. Z kolei w przypadku kodu produkcyjnego podejście to upraszcza czytanie oraz aktualizowanie skryptów zawierających polecenia z duża liczbą parametrów. Aby uzyskać więcej informacji na ten temat, możemy wpisać Get-Help about_splatting w programie PowerShell lub wyświetlić plik pomocy dostępny na stronie docs.microsoft.com/powershell/module/microsoft.powershell.core/about/about_splatting. Zwróćmy uwagę, że zanim będziemy mogli podejrzeć w programie PowerShell 7 plik pomocy dotyczący techniki splattingu, będziemy musieli wykonać polecenie Update-Help.

Pobieranie skryptu instalacyjnego PowerShell 7

Program PowerShell 7 możemy zainstalować na wiele różnych sposobów. Jednym z najprostszych jest pobranie i uruchomienie skryptu instalacyjnego utworzonego przez zespół PowerShell. Skrypt ten dostępny jest w internecie (na stronie GitHub) i możemy go pobrać w następujący sposób:

# 4. Pobierz skrypt instalacyjny PowerShell 7

Set-Location C:\Foo

$URI = "https://aka.ms/install-powershell.ps1"

Invoke-RestMethod -Uri $URI |

Out-File -FilePath C:\Foo\Install-PowerShell.ps1

Polecenia te pobierają skrypt instalacyjny z witryny GitHub i zachowują go w folderze C:\Foo.

Wyświetlanie informacji pomocniczych z pliku instalacyjnego

Zawsze dobrze jest wyświetlić dowolny pobrany przez nas skrypt i zobaczyć, jak jego twórca chciał, aby był wykorzystywany. Z tego względu skrypt instalacyjny zawiera pewne podstawowe informacje pomocnicze, które możemy podejrzeć za pomocą polecenia Get-Help.

# 5. Wyświetl pomoc skryptu instalacyjnego

Get-Help -Name C:\Foo\Install-PowerShell.ps1

Wynik tego polecenia widoczny jest na rysunku 1.2.

Rysunek 1.2 Przeglądanie informacji pomocniczych

Skrypt instalacyjny pozwala nam zainstalować program PowerShell 7 za pomocą pliku MSI lub poprzez pobranie pliku ZIP i jego wyodrębnienie do wskazanego przez nas folderu. Możemy zainstalować bieżącą wersję programu PowerShell 7, najnowsze wydanie poglądowe nadchodzącej wersji, lub też zainstalować kompilację dzienną programu PowerShell. Wszystkie te wersje możemy zainstalować jednocześnie obok najnowszej pełnej wersji PowerShell 7.

Dla większości profesjonalistów IT najszybsze i najprostsze będzie skorzystanie z pliku MSI i dyskretne zainstalowanie programu. Ewaluacja przyszłych wersji i poprawek wydawanych w ramach dziennych kompilacji przeznaczona jest raczej dla najbardziej odważnych. Oczywiście zawsze powinniśmy postępować ostrożnie podczas korzystania z jakiejkolwiek niewspieranej wersji dowolnego produktu. Mając to na uwadze, te zaawansowane wersje są bardzo stabilne i pozwalają nam na wczesny dostęp do nowych funkcji i poprawek.

Instalowanie PowerShell 7

Aby zainstalować program PowerShell 7 na komputerze DC1, należy uruchomić skrypt instalacyjny z użyciem poniższego fragmentu kodu:

# 6. Zainstaluj PowerShell 7

$EXTHT = @{

UseMSI = $true

Quiet = $true

AddExplorerContextMenu = $true

EnablePSRemoting = $true

}

C:\Foo\Install-PowerShell.ps1 @EXTHT

Skrypt ten pobierze pakiet instalacyjny MSI programu PowerShell 7, a następnie dyskretnie wykona ten kod. Nie powinien zostać wyświetlony żaden znaczący rezultat. Ponieważ skorzystaliśmy z pliku MSI, program PowerShell został pobrany do dobrze znanej lokalizacji, a rejestr systemu Windows został zaktualizowany, aby wskazać, które wersje programu PowerShell zostały na nim zainstalowane.

Bez użycia tego pliku, na przykład w przypadku instalacji kompilacji dziennej, skrypt instalacyjny pobierze odpowiednią wersję w formie pliku ZIP i wyodrębni jego zawartość do wskazanego przez nas folderu.

Po zakończeniu wykonywania skryptu Install-PowerShell, w naszym systemie zainstalowany będzie program PowerShell 7.

Sprawdzanie folderu instalacji

Gdy mamy już zainstalowany PowerShell 7, możemy przyjrzeć się zawartości folderu instalacji za pomocą poniższej składni:

# 7. Przejrzyj folder instalacji

Get-Childitem -Path $env:ProgramFiles\PowerShell\7 -Recurse |

Measure-Object -Property Length -Sum

Wynik działania tych poleceń widoczny jest na rysunku 1.3.

Rysunek 1.3 Sprawdzanie folderu instalacji

Jak widzimy na powyższym rysunku, folder instalacji PowerShell 7 różni się od folderu instalacji programu Windows PowerShell (który będąc komponentem systemu Windows znajduje się w folderze C:\Windows\System32\WindowsPowerShell).

Jeśli uważnie przyjrzymy się plikom w tym folderze, ujrzymy pewne różnice względem programu PowerShell 7. W przypadku PowerShell 7 w folderze $PSHome znajduje się znacznie więcej plików (co może być mylące), a nazwą programu wykonywalnego, za pomocą którego uruchamiamy konsolę PowerShell 7, jest pwsh.exe. Kolejną zauważalną zmianą jest to, że w przypadku programu PowerShell 7 nie ma żadnych plików .PS1XML. W programie Windows PowerShell pliki XML definiowały domyślne formatowanie dla szerokiego zakresu obiektów i pozwalały administratorom na korzystanie z rozszerzeń dla obiektów środowiska .NET Framework. W przypadku PowerShell 7 formatowanie XML zostało zaimplementowane w samym programie w celu podniesienia wydajności. Pliki rozszerzenia typu pozwalały zapewnić spójność między nazwami właściwości w klasach .NET. Funkcja ta również jest teraz częścią PowerShell. Wciąż możemy tworzyć nasze własne typy lub formatować XML i rozszerzać PowerShell przy użyciu zaktualizowanych typów lub domyślnego formatowania, które lepiej pasuje do naszych potrzeb.

Wyświetlanie lokalizacji folderów modułów

W programie Windows PowerShell wykorzystywane przez nas polecenia zawarte są w modułach. Możemy dyskretnie zaimportować dany moduł przed jego użyciem, aby upewnić się, że jest dostępny. Możemy również skorzystać z funkcji automatycznego wczytywania modułów programu Windows PowerShell. Dzięki tej funkcji, jeśli użyjemy polecenia, które nie jest zawarte w żadnym z wczytanych już modułów, PowerShell przeszuka dostępne moduły i sprawdzi, czy polecenie to istnieje w jakimś innym module. Jeśli tak, PowerShell wczyta ten moduł i wykona to polecenie. PowerShell wykorzystuje wbudowaną zmienną środowiskową Windows do przechowywania listy ścieżek rozdzielanych średnikami. PowerShell przeszukuje każdą ścieżkę po kolei w celu odkrycia wszystkich wymaganych modułów. Za pomocą poniższego kodu w programie Windows PowerShell możemy podejrzeć zbiór folderów modułów:

# 8. Wyświetl foldery modułów

# Wyświetl foldery modułów do automatycznego wczytania

$I = 0

$env:PSModulePath -split ';' |

Foreach-Object {

"[{0:N0}] {1}" -f $I++, $_}

Wynik tych poleceń widoczny jest na rysunku 1.4.

Rysunek 1.4 Wyświetlanie ścieżek modułów

Jak widzimy, w przypadku programu Windows PowerShell domyślnie istnieją jedynie trzy ścieżki modułów. Po dodaniu do naszego systemu funkcji lub innych aplikacji/narzędzi, programy instalacyjne mogą dodać do zmiennej zawierającej ścieżki do plików modułów dodatkowe ścieżki.

Aby zoptymalizować wydajność, przy każdym uruchomieniu program Windows PowerShell tworzy wątek o niskim priorytecie, który przegląda dostępne moduły i przechowuje szczegóły na ich temat w lokalnej pamięci podręcznej. Funkcja automatycznego wczytywania modułów wykorzystuje tę pamięć podręczną do odkrywania modułów, które muszą zostać zaimportowane przed użyciem danego polecenia. Jednym ze skutków ubocznych tej funkcji jest to, że gdy różne moduły implementują polecenie o tej samej nazwie, zaimportowany zostanie moduł znajdujący się na wyżej położonej ścieżce. Oznacza to, że możemy tworzyć własne wersje polecenia Get-Command.

Wyświetlanie lokalizacji plików profilów

PowerShell definiuje cztery pliki profilów.

AllUsersAllHosts AllUsersCurrentHost CurrentUserAllHosts CurrentUserCurrentHost

Każdy plik profilu powiązany jest z dobrze znaną nazwą pliku profilu. PowerShell ma wbudowaną zmienną o nazwie $Profile. Podczas uruchamiania PowerShell dodaje cztery właściwości do tej zmiennej, która przechowuje dobrze znane ścieżki do każdego z plików profilu. Aby zobaczyć te właściwości, należy jawnie skorzystać z parametru -Force.

Te pliki profilów zapewniają nam znaczącą elastyczność w odniesieniu do profilów startowych. Każdy plik profilu (który PowerShell wczytuje podczas swojego uruchamiania) może tworzyć obiekty/zmienne, ustawiać opcje środowiskowe, wysyłać wiadomości e-mail, tworzyć transkrypt, tworzyć dyski PowerShell i tak dalej. W efekcie pliki profilów oferują możliwość utrwalania niestandardowego środowiska. Jeśli chcemy, aby przed rozpoczęciem naszej pracy w ramach sesji PowerShell wykonane zostały jakieś polecenia, wystarczy dodać je do profilu.

Plików profilów PowerShell możemy używać dla wszystkich użytkowników, chociażby do definiowania pewnych aliasów dla korporacji lub wydziału, tworzenia pewnych "dobrze znanych" lokalizacji plików dla wszystkich użytkowników lub wykonywania bardziej niestandardowych akcji wyłącznie dla bieżącego użytkownika. Do dyspozycji mamy profile dla wszystkich hostów PowerShell (programów, które hostują i wykorzystują środowisko uruchomieniowe PowerShell), jak również oddzielne pliki profilów dla różnych hostów. Przykładowo środowisko ISE zawiera zmienną $PSISE, która pozwala nam kontrolować to środowisko. Zmienna ta nie istnieje ani w konsoli PowerShell, ani w programie VS Code. Posiadanie różnych profilów dla różnych hostów PowerShell pozwala nam dostosować każdy host za pomocą różnych technik.

W miarę naszych potrzeb za pomocą kombinacji tych czterech plików profilów możemy realizować różne scenariusze wdrożeniowe. Większość profesjonalistów IT wykorzystuje jedynie profil Current User Current Host, który jest wartością zmiennej $Profile.

Cztery profile oraz powiązane z nimi dobrze znane nazwy plików możemy wyświetlić w następujący sposób:

# 9. Wyświetl lokalizacje plików profilów

# Wewnątrz ISE

$PROFILE |

Format-List -Property *Host* -Force

# Z konsoli Windows PowerShell

powershell -Command '$Profile| Format-List -Property *Host*' -Force

Wynik powyższego fragmentu kodu, widoczny na rysunku 1.5, pokazuje lokalizacje plików profilów zarówno dla środowiska ISE, jak i dla konsoli Windows PowerShell.

Rysunek 1.5 Wyświetlanie lokalizacji plików profilów

Uruchamianie PowerShell 7

Po zainstalowaniu programu PowerShell 7 możemy otworzyć jego konsolę klikając przycisk Start w systemie Windows, wpisując pwsh i naciskając Enter. Gdy otworzy się konsola PowerShell 7, możemy zweryfikować wersję posiadanego programu poprzez wyświetlenie wartości zmiennej $PSVersionTable.

# 10. Uruchom konsolę PowerShell 7, a następnie...

$PSVersionTable

Jak widzimy na rysunku 1.6, rezultat przechwycony został w programie PowerShell 7. Gdy ktoś czyta tę książkę, z pewnością istnieje już jakaś nowsza wersja programu (np. 7.0.1 lub 7.0.2), tak więc wyświetlana wersja programu PowerShell może być nieznacznie wyższa.

Rysunek 1.6 Przeglądanie informacji pomocniczych

Wyświetlanie nowych lokalizacji dla folderów modułów

W poprzedniej części, "Wyświetlanie lokalizacji folderów modułów", wyświetliliśmy foldery, w których Windows PowerShell poszukuje modułów. W programie PowerShell 7 możemy osiągnąć to samo w następujący sposób:

# 11. Wyświetl foldery modułów

$ModFolders = $Env:PSModulePath -split ';'

$I = 0

$ModFolders |

ForEach-Object {"[{0:N0}] {1}" -f $I++, $_}

Wynik tych poleceń widoczny jest na rysunku 1.7.

Rysunek 1.7 Wyświetlanie ścieżek do modułów PowerShell 7

Zwróćmy uwagę, że w uzyskanym wyniku mamy pięć ścieżek do plików modułów.

Wyświetlanie nowych lokalizacji dla plików profilów

Podobnie jak w programie Windows PowerShell, w PowerShell 7 mamy wiele plików profilów, przy czym znajdują się one teraz w nieco innym miejscu na dysku. Lokalizacje dla czterech plików profilów PowerShell 7 możemy wyświetlić w następujący sposób:

# 12. Wyświetl lokalizacje profilów

$PROFILE | Format-List -Property *Host* -Force

Jak widać na rysunku 1.8, istnieją cztery pliki profilów, każdy w innej lokalizacji niż w przypadku programu Windows PowerShell.

Rysunek 1.8 Wyświetlanie lokalizacji plików profilów

Tworzenie profilu bieżącego użytkownika/bieżącego hosta

Aby zademonstrować sposób działania plików profilów w programie PowerShell 7, możemy pobrać przykładowy profil z internetu i utworzyć profil bieżącego użytkownika/bieżącego hosta (CurrentUserCurrentHost) za pomocą następujących poleceń:

# 13. Utwórz profil bieżącego użytkownika/bieżącego hosta

$URI = 'https://raw.githubusercontent.com/doctordns/Wiley20/master/' +

'Goodies/Microsoft.PowerShell_Profile.ps1'

$ProfileFile = $Profile.CurrentUserCurrentHost

New-Item $ProfileFile -Force -WarningAction SilentlyContinue |

Out-Null

(Invoke-WebRequest -Uri $uri -UseBasicParsing).Content |

Out-File -FilePath $ProfileFile

Skrypty dla tej książki można pobrać ze strony wydawnictwa Wiley oraz z repozytorium GitHub autora. Repozytorium autora zawiera folder Goodies, w którym znajduje się przykładowy plik profilu ilustrujący sposób korzystania z profilów w konsoli PowerShell 7.

Ten przykładowy plik ustawia pewne przydatne wartości domyślne i aliasy, tworzy pewne zmienne, konfiguruje nagłówek konsoli i ustawia bieżący folder roboczy na tytułowy folder C:\Foo. Profil ten możemy dowolnie zmodyfikować, aby dostosować go do naszego stylu pracy. Po uruchomieniu tych poleceń należy uruchomić ponownie PowerShell, aby nowe profile zaczęły być wykorzystywane.

Instalowanie i konfigurowanie VS Code

PowerShell ISE jest interaktywnym środowiskiem programistycznym dla Windows PowerShell. ISE pozwala nam edytować, zarządzać i uruchamiać skrypty z poziomu pojedynczego programu. Choć dla PowerShell dostępnych jest wiele takich innych środowisk, środowisko ISE jest wbudowane i darmowe, a przy tym oferuje dobrą funkcjonalność, która będzie przydatna dla profesjonalisty IT. Wykonane dla tej książki zrzuty ekranu ukazujące kod PowerShell 7 ilustrują działanie programu VS Code.

Firma Microsoft poinformowała, że nie ma w planach aktualizować środowiska ISE pod kątem wsparcia dla PowerShell 7. Rekomendowaną alternatywą jest VS Code. VS Code firmy Microsoft jest darmowym, wieloplatformowym edytorem kodu źródłowego na licencji open source. VS Code działa w formie aplikacji tradycyjnej w systemach Windows, macOS i Linux, zapewniając świetne wsparcie dla PowerShell. VS Code jest doskonałym narzędziem do zarządzania nie tylko kodem źródłowym PowerShell, ale również dokumentami z kodem w językach Perl, Python, Markdown i wielu innych.

Choć VS Code jest narzędziem wieloplatformowym, ten rozdział opisuje korzystanie z VS Code w systemie Windows. Więcej informacji na temat programu VS Code można znaleźć na stronie code.visualstudio.com/.

VS Code obsługuje bogaty zestaw rozszerzeń, które dodatkowo poszerzają doświadczenie programistyczne. Możemy przykładowo zainstalować narzędzie do sprawdzania pisowni. Jeśli pracujemy z kodem Markdown (en.wikipedia.org/wiki/Markdown), również możemy skorzystać z utworzonych przez społeczność wbudowanych rozszerzeń VS Code, które nam tę pracę ułatwią. Za pomocą programu VS Code możemy dodać nowe rozszerzenia do naszego środowiska, w tym również zainstalować je podczas instalacji VS Code.

Aby zainstalować VS Code na naszym komputerze, musimy pobrać i uruchomić skrypt instalacyjny ze strony Visual Studio, która umożliwia nam zainstalowanie programu VS Code wraz z dowolnymi wymaganymi rozszerzeniami w ramach pojedynczej operacji.

Jeśli nie pracujemy wyłącznie z kodem PowerShell, warto odwiedzić witrynę sklepu Visual Studio pod adresem marketplace.visualstudio.com, gdzie znajdziemy bogatą kolekcję rozszerzeń. Niektóre rozszerzenia są darmowe, a niektóre komercyjne (zwykle oferują one darmowe wersje próbne).

Po zainstalowaniu programu VS Code możemy w prosty sposób zmienić wykorzystywaną przez niego czcionkę. VS Code może wykorzystywać dowolną czcionkę zainstalowaną w naszym systemie. Czcionkę możemy zmienić z poziomu interfejsu graficznego programu VS Code lub za pośrednictwem pliku ustawień użytkownika w formacie JSON.

Microsoft opublikował niedawno nową czcionkę o nazwie Cascadia Code. W programie VS Code czcionka ta wygląda bardzo dobrze. Wszystkie zaprezentowane w tej książce zrzuty ekranu z kodem PowerShell korzystają z tej czcionki.

Jeśli planujemy korzystać z programu VS Code i PowerShell 7, możemy zechcieć dodać do nich skróty do naszego paska zadań.

Uwaga Zrzuty ekranu dla tej książki zostały wykonane z użyciem programu VS Code. Z programu VS Code możesz korzystać we wszystkich swoich maszynach wirtualnych w celu przetestowania skryptów zawartych w tej książce, ale w pewnych środowiskach może to być zabronione lub uznane za złą praktykę.

Przed rozpoczęciem

Przedstawiony w tej części kod wykonywany jest na maszynie wirtualnej DC1 z systemem Windows Server 2019 Datacenter. Możemy również użyć tych fragmentów kodu na innych hostach, aby za ich pomocą zainstalować VS Code i przetestować skrypty zawarte w tej książce.

Skrypty przedstawione w tej części należy uruchamiać za pomocą programu PowerShell 7, który zainstalowaliśmy w poprzedniej części "Instalowanie PowerShell 7".

Pobieranie skryptu instalacyjnego VS Code

Zespół VS Code stworzył skrypt instalacyjny, za pomocą którego możemy zainstalować VS Code. Jest on dostępny w galerii programu PowerShell. Aby go pobrać, należy wykonać poniższy kod:

# 1. Pobierz skrypt instalacyjny VS Code

$VSCPATH = 'C:\Foo'

Save-Script -Name Install-VSCode -Path $VSCPATH

Set-Location -Path $VSCPATH

Ten fragment kodu pozyskuje skrypt Install-VSCode i zapisuje go w folderze C:\Foo.

Polecamy także

978-83-7541-429-5 Windows Server 2019 Inside Out

Opanuj Windows Server 2019 - od A do Z!

Doskonale uporządkowany poradnik, skoncentrowany na najważniejszych i innowacyjnych funkcjonalnościach Windows Server 2019, zawiera setki rozwiązań, wskazówek i technik oszczędzających czas - wszystko, co potrzebne, aby zaplanować, wdrożyć lub zarządzać systemami Windows Server w przedsiębiorstwie, centrum danych, chmurze lub środowisku hybrydowym. Autor omawia wszystko, od zestawów klastrów po Windows Subsystem for Linux. Dowiedz się, jak eksperci radzą sobie z niezbędnymi zadaniami i wkrocz na nowy poziom mistrzostwa.

Orin Thomas (Microsoft Cloud Operations Advocate, MCT, MCSE, MCITP) jest autorem ponad 40 książek wydanych przez Microsoft Press, poświęconych systemom Windows Server, Azure, System Center, Exchange Server, bezpieczeństwu i SQL Server.

978-83-7541-461-5 Koduj jak profesjonalista C#

Koduj jak profesjonalnista w C# pokazuje, jak pisać czysty kod C#, właściwy dla aplikacji klasy przedsiębiorstwa. Wraz z autorem przejdziesz proces refaktoryzacji odziedziczonej bazy kodu, stosując techniki nowoczesnego C#. Po drodze poznasz takie narzędzia, jak Entity Framework Core, techniki projektowe, takie jak wstrzykiwanie zależności oraz kluczowe praktyki wytwarzania sterowanego testami. Jest to doskonały sposób na zwiększenie już posiadanych umiejętności lub przejścia z innego języka obiektowego do C# i ekosystemu .NET.

Książka przeznaczona jest dla programistów z doświadczeniem w programowaniu obiektowym. Znajomość C# nie jest wymagana.

Jort Rodenburg jest inżynierem oprogramowania z bogatym doświadczeniem praktycznym, a także wykładowcą i autorem kursów na temat przyśpieszania i usprawniania pracy w C# i .NET.

978-83-7541-413-4 Zaawansowane zarządzanie pamięcią w .NET

Lepszy kod, wydajność i skalowalność

Pomimo automatycznego zarządzania pamięcią w .NET, zrozumienie zasad działania pozwoli pisać lepsze oprogramowanie obsługujące pamięć wydajnie i skutecznie. Zaawansowane zarządzanie pamięcią w .NET jest wyczerpującym przewodnikiem prowadzącym do pisania lepszego oprogramowania poprzez lepsze zrozumienie działania zarządzania pamięcią w .NET.

Konrad Kokosa jest doświadczonym projektantem i twórcą oprogramowania, specjalizującym się w technologiach Microsoft, ale interesującym się też wieloma innymi. Z zamiłowaniem rozwiązuje problemy związane z wydajnością, przyspieszaniem działania aplikacji oraz wszelkiego rodzaju łamigłówki architektoniczne. Ma tytuł MVP w dziedzinie w .NET. Jest niezależnym konsultantem i aktywnym członkiem społeczności, prowadzącym blog, szkolenia i prezentacje, współzałożycielem witryny Dotnetos.org.

978-83-7541-435-6 Programowanie gier przy użyciu Unity i C#

Podręcznik dla całkiem początkujących

Książka jest przeznaczona dla początkujących bez żadnej wiedzy ani doświadczenia w programowaniu gier albo programowaniu w ogóle i uczy podstaw silnika gier Unity, języka programowania C# oraz sztuki programowania zorientowanego obiektowo. Nowe pojęcia są nie tylko wyjaśniane, ale też dokładnie demonstrowane.

Na koniec uzyskamy solidne podstawy programowania, które utorują drogę do zrozumienia podstawowej składni C# i podstaw programowania zorientowanego obiektowo, żeby wiedzieć nie tylko co pisać, ale dlaczego i jak to naprawdę działa. Programowanie gier przy użyciu Unity i C# pomoże nam dobrze poznać silnik gier Unity i jego dokumentację oraz pokaże, jak niezależnie szukać dalszych informacji na temat nieporuszonych tutaj pojęć i wyzwań.

978-83-7541-440-0 Zarządzanie urządzeniami Apple

Zunifikowana teoria zarządzania urządzeniami Mac, iPad, iPhone oraz AppleTV

Efektywna praca z platformami Apple na poziomie korporacyjnym lub biznesowym wymusza odrzucenie 30 lat dogmatów IT. Dowiemy się, czym jest zarządzanie urządzeniami mobilnymi (MDM) i na czym polega jego działanie. Używając tej książki jako przewodnika będzie można dostosować wdrażane oprogramowanie oraz zablokować urządzenia, aby były całkowicie bezpieczne. Ułatwi ona także pracę nad zbudowaniem standardowych środowisk kontroli jakości, aby móc testować skuteczniej i przy mniejszym wysiłku.

Apple wytycza własną ścieżkę w IT. Możemy próbować nadal zarządzać urządzeniami Apple według przestarzałych technik albo zastosować podejście firmy Apple. To właśnie pokazuje ta książka.

978-83-7541-478-3 Praktyczne uczenie maszynowe w języku R

Uczenie maszynowe i analiza danych pełnią coraz ważniejszą rolę w tworzeniu wartości dodanej. Uczenie maszynowe pozwala znajdować ukryte w danych zależności, wnosząc nowe pomysły i wiedzę, którą trudno byłoby osiągnąć bez tej zaawansowanej techniki. Książka Praktyczne uczenie maszynowe w języku R to wstępne przygotowanie do pracy z dużymi zbiorami danych w języku programistycznym R, który jest łatwy w zrozumieniu i został opracowany specjalnie z myślą o analizie statystycznej. Nawet osoby bez doświadczenia w programowaniu mogą skorzystać z tej książki, dowiadując się, w jaki sposób praktyczne zastosowania uczenia maszynowego pozwalają analitykom danych pozyskiwać strategiczne informacje biznesowe, solidne prognozy i podejmować trafniejsze decyzje.

To jedyna publikacja, która łączy intuicyjne wprowadzenie do uczenia maszynowego z opisami zastosowań technicznych krok po kroku.