- Dokładny inwentarz i filtry: lista, wyszukiwanie i segmentacja ról/funkcji za pomocą Get-WindowsFeature.
- Automatyzacja wdrażania: Instalowanie/odinstalowywanie (w tym narzędzi) i praca zdalna przy użyciu Invoke-Command.
- Przykłady z życia wzięte: przygotowanie usług IIS i promocja usług AD DS za pomocą poleceń cmdlet ADDSDeployment.
- Pożądany stan: Wymuś obecność/brak przy użyciu zasobu DSC WindowsFeature.
Jeśli ci się uda Windows Codzienne korzystanie z serwera, opanowanie funkcji Get-WindowsFeature robi całą różnicę pomiędzy marnowaniem czasu na klikanie w Menedżerze serwera lub zautomatyzuj w kilka sekund Inwentaryzacja i wdrażanie ról i funkcji. W tym samouczku dowiesz się, bez zbędnych ceregieli, jak tworzyć listy, filtrować, instalować, odinstalowywać i pracować zdalnie za pomocą tego polecenia cmdlet, z przykładami z życia wziętymi, które przydadzą Ci się w codziennym życiu.
Ponadto połączymy użycie Get-WindowsFeature z typowymi zadaniami, takimi jak wdrażanie usług IIS lub Active Directory Domain Services (AD DS), przyjrzymy się sposobowi wykonywania zapytań do struktury lasu i zakończymy pełną sekcją dotyczącą zasobu DSC WindowsFeature, aby wymusić pożądany stan (zainstalowany czy nie) o właściwościach takich jak Zapewniać o Uwzględnij wszystkie podfunkcje.Zawieram polecenia, filtry i Tricks więc możesz zastosować go w takiej formie, w jakiej jest.
Czym jest polecenie Get-WindowsFeature i jaka jest jego składnia?
Get-WindowsFeature to polecenie cmdlet, które wysyła zapytanie o role i funkcje dostępne i zainstalowane w systemie Windows Server. (od wersji Windows Server 2008). Wyświetla nazwę wewnętrzną, nazwę wyświetlaną i status instalacjii akceptuje filtry i wykonywanie na komputerach zdalnych.
Zwykła składnia polecenia cmdlet, w tym kluczowe parametry, takie jak -Nazwa, -NazwaKomputera, -Mandat, -Ścieżka dziennika o -Vhd:
Get-WindowsFeature <String[]> ]
Przydatna wskazówka:parametr -Ścieżka dziennika umożliwia zrzucanie wyników do pliku dziennika, co jest przydatne w przypadku audytów lub CI/CD.
Zinterpretuj wynik i filtruj jako profesjonalistę
Oznaczenia wyjściowe zawierają już zainstalowane funkcje i z dostępnymi. Dodatkowo kolumna Stan instalacji Można wybrać opcję „Zainstalowane” lub „Dostępne”. Możesz filtrować wyniki według dowolnej z tych właściwości.
Pełna lista bez filtrów (i tak, może być długa):
Get-WindowsFeature
Filtruj według symboli wieloznacznych w nazwie wewnętrznej Aby na przykład znaleźć wszystko, co zawiera DHC (jak DHCP):
Get-WindowsFeature -Name *DHC*
Pozostać sam na sam z tym, co zainstalowany korzystanie ze stanu instalacji, bardzo przydatne przy inwentaryzacji:
Get-WindowsFeature | Where-Object { $_.InstallState -eq "Installed" }
Wypisz co jest dostępne do zainstalowania (nie zainstalowano):
Get-WindowsFeature | Where-Object { $_.InstallState -eq "Available" }
Wyszukaj według dokładnego dopasowania nazwy wewnętrznej (na przykład rola DNS) lub według nazwy wyświetlanej w języku hiszpańskim:
# Por Name exacto
Get-WindowsFeature | Where-Object { $_.Name -eq "DNS" }
# Por DisplayName exacto
Get-WindowsFeature | Where-Object { $_.DisplayName -eq "Servidor DNS" }
Instalowanie i odinstalowywanie ról i funkcji z poziomu programu PowerShell
Aby zainstalować, użyj Install-WindowsFeature wskazując nazwę roli lub funkcji. Jeśli chcesz uwzględnić powiązane narzędzia administracyjne, dodaj -IncludeManagementTools.
# Ejemplo: instalar IIS con sus herramientas de administración
Install-WindowsFeature -Name Web-Server -IncludeManagementTools
Aby odinstalować, użyj Uninstall-WindowsFeature (jeśli dotyczy) lub zadzwoń ponownie do Install Zapewnić = Nieobecny w DSC, jak zobaczymy później. Możesz również sprawdzić powiązane samouczki na stronie zarządzaj użytkownikami z poziomu programu PowerShell.
Rejestruj operację za pomocą -LogPath Jeśli potrzebujesz śladu, aby spełnić wymagania audytu:
Install-WindowsFeature -Name Desktop-Experience -LogPath C:\logs\install-desktop-experience.log
Zapytania zdalne: zdalne sterowanie serwerami
Get-WindowsFeature może wskazywać na pojedynczy serwer zdalny za pomocą -ComputerName, idealne do sprawdzania statusu ze stanowiska administracyjnego:
Get-WindowsFeature -ComputerName SRV-CORE-01
Jeśli musisz wysłać zapytanie do wielu serwerów jednocześnie, oprzeć się na tobie Invoke-Command Daje Ci elastyczność i zwraca także źródło każdego wyniku na wyjściu:
Invoke-Command -ComputerName SRV-A,SRV-B -ScriptBlock { Get-WindowsFeature ADRMS, RemoteAccess }
Można również wyszukiwać zdalnie za pomocą symboli wieloznacznych. aby zlokalizować funkcje takie jak kopie zapasowe, klastrowanie itp.:
Invoke-Command -ComputerName SRV-CORE-01 -ScriptBlock { Get-WindowsFeature *Backup* }
Przykład praktyczny 1: przygotowanie i zarządzanie usługą IIS za pomocą programu PowerShell
Zacznij od sprawdzenia, jakie komponenty IIS są obecne a których brakuje, przy użyciu zapytania filtrowanego według symboli wieloznacznych w nazwie:
Get-WindowsFeature -Name *IIS*
Zainstaluj serwer WWW i jego narzędzia w jednym ujęciu, dzięki czemu nie musisz już dodawać komponentów zarządzających:
Install-WindowsFeature -Name Web-Server -IncludeManagementTools
Poznaj dostępne polecenia cmdlet do zarządzania usługami IIS Po instalacji, w celu zautomatyzowania witryn, pul, powiązań itp.:
Get-Command -Module IISAdministration
Utwórz nowy folder witryny i jego plik index.html ze standardowymi poleceniami cmdlet PowerShell dla systemu plików:
New-Item -ItemType Directory -Path 'C:\inetpub\wwwroot\MiSitio'
New-Item -ItemType File -Path 'C:\inetpub\wwwroot\MiSitio\index.html'
Wdróż witrynę i ustaw jej powiązanie obsługiwać konkretny port (na przykład 8080):
New-IISSite -Name 'MiSitio' -PhysicalPath 'C:\inetpub\wwwroot\MiSitio' -BindingInformation '*:8080:'
Uruchom, zatrzymaj lub sprawdź status witryny jak potrzebujesz i użyj -WhatIf w celu zatwierdzenia operacji destrukcyjnych, takich jak usuwanie:
Start-IISSite -Name 'MiSitio'
Stop-IISSite -Name 'MiSitio'
(Get-IISSite -Name 'MiSitio').Bindings
Remove-IISSite -Name 'MiSitio' -WhatIf
Przykład praktyczny 2: Sprawdzanie ról w systemie Windows Server 2022 i stanu usług AD DS
Na serwerach bez GUI (Server Core) często wychodzi się z sconfig i pracuje w konsoli. Zaimportuj moduł Active Directory, jeśli zamierzasz przeprowadzać kontrole lasu:
Import-Module ActiveDirectory
Skonsultuj role lub cechy konkretnego zespołu Aby sprawdzić, czy usługi AD DS i DNS są już obecne (instalacje usług AD DS zazwyczaj obejmują usługę DNS):
Get-WindowsFeature -ComputerName server-2022-b
Pobierz konfigurację lasu (nazwa lasu, domeny, GC itp.) za pomocą bezpośredniego polecenia cmdlet i bez obowiązkowych parametrów, a także zapytania o strukturę infrastruktury z powiązanymi zasobami Migracja ról i usług do innego serwera Windows.
Get-ADForest
Jeśli pracujesz na wielu maszynach, filtruj lub przeglądaj dane wyjściowe aby zlokalizować „Usługi domenowe Active Directory” i „Serwer DNS”.
Wdrażanie usług AD DS za pomocą programu PowerShell: od zera do lasu, domen i kontrolerów
Zacznij od zainstalowania roli i narzędzi usługi AD DS Aby zapewnić polecenia cmdlet i narzędzia graficznego interfejsu użytkownika (Użytkownicy i komputery, ADAC itp.):
Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools
Odkryj polecenia cmdlet modułu ADDSDeployment do automatyzacji promocji i instalacji. W tym procesie możesz również wykorzystać zasoby w awansować serwer do kontrolera domeny.
Get-Command -Module ADDSDeployment
Żądaj poświadczeń bezpiecznie w konsoli i użyj bezpiecznych ciągów dla hasła DSRM, gdzie jest to właściwe:
# Credenciales
$cred = Get-Credential
# Solicitud de contraseña DSRM como SecureString
$dsrm = Read-Host -Prompt 'DSRM Password:' -AsSecureString
# (No recomendado) Texto plano a SecureString
ConvertTo-SecureString "Password1" -AsPlainText -Force
Sprawdź wymagania wstępne za pomocą poleceń cmdlet testowych (warianty Test-*) przed uruchomieniem ostatecznej instalacji.
Utwórz nowy las z interaktywnym monitem o hasło DSRM, biorąc pod uwagę jego zastosowanie w:
Install-ADDSForest -DomainName 'corp.contoso.com'
Konfigurowanie poziomów funkcjonalnych, delegowania DNS i ścieżek DB/SYSVOL/Log w tworzeniu lasu:
Install-ADDSForest -DomainName corp.contoso.com -CreateDNSDelegation -DomainMode Win2008 -ForestMode Win2025 -DatabasePath 'D:\NTDS' -SYSVOLPath 'D:\SYSVOL' -LogPath 'E:\Logs'
Dodaj domenę podrzędną lub domenę drzewa z Install-ADDSDomain definiowanie danych uwierzytelniających, lokalizacji, źródłowego kontrolera domeny i tras, tak aby wdrożyć całą niezbędną strukturę.
RODC w dwóch fazach: wstępnie skonfigurowane konto i skojarzenie
W przypadku kontrolera RODC z wieloma poziomami najpierw utwórz konto kontrolera domeny tylko do odczytu za pomocą odpowiedniego polecenia cmdlet i delegowania administracji, jeśli to konieczne:
Add-ADDSReadOnlyDomainControllerAccount -DomainControllerAccountName RODC1 -DomainName corp.contoso.com -SiteName Boston -DelegatedAdministratorAccountName AdminUser
Na serwerze, który zostanie dołączony do tego konta, nie jest jeszcze dołączony do domeny, zainstaluj rolę i zakończ promocję, korzystając z istniejącego konta:
Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools
Install-ADDSDomainController -DomainName corp.contoso.com -SafeModeAdministratorPassword (Read-Host -Prompt 'DSRM Password:' -AsSecureString) -Credential (Get-Credential Corp\AdminUser) -UseExistingAccount
Możesz potwierdzić przyciskiem Y lub zautomatyzować za pomocą -Confirm aby wyłączyć pytania interaktywne w skryptach.
Instalowanie usług AD DS za pomocą interfejsu graficznego (Menedżera serwera): podstawowe kroki
Jeśli wolisz kreatora graficznego, Menedżer serwera obejmuje cały cykl: Dodaj rolę AD DS, a następnie awansuj serwer do roli kontrolera domeny przy użyciu kreatora konfiguracji.
- Rozpocznij „Dodaj role i funkcje”, wybierz instalację opartą na rolach i serwer docelowy.
- Marka „Usługi domenowe Active Directory”, zaakceptuj dodanie funkcji i kontynuuj.
- Zainstaluj i po zakończeniu kliknij „Awansuj ten serwer do kontrolera domeny” aby otworzyć kreatora konfiguracji.
- W konfiguracji wdrożenia, wybierz: dodaj DC do istniejącej domeny, utwórz domenę podrzędną, utwórz domenę drzewa lub utwórz nowy las.
- W opcjach kontrolera domeny, wybierz odpowiednio DNS, GC lub RODC, wybierz witrynę, zdefiniuj hasło DSRM.
- Jeśli zainstalujesz DNS, w opcjach DNS zdecyduj, czy zaktualizować delegację (wymagane są uprawnienia w strefie podstawowej).
- Dla RODCW opcjach RODC można delegować administrację i dostosować zasady replikacji haseł.
- W opcjach dodatkowych, weryfikuje NetBIOS domeny lub kontrolera domeny replikacji. IFM wskazuje ścieżkę do nośnika (nie jest ważny dla pierwszego kontrolera domeny w domenie).
- W ścieżkach, definiuje lokalizacje baz danych, dzienniki i SYSVOL (lub zaakceptuj domyślne ścieżki).
- Opcje w przygotowaniu, użyj poświadczeń z uprawnieniami do uruchomienia adprep.
- Zaznacz opcje, eksportuj scenariusz si quieres i uruchamia kontrolę wymagań wstępnych.
- Zainstaluj i pozwól serwerowi uruchomić się ponownie aby dokończyć promocję.
W scenariuszach RODC z wstępnie utworzonym kontemKreator umożliwia „Użyj istniejącego konta RODC”, wybór IFM, trasy i zakończenie sprawdzeń.
Zasób funkcji systemu Windows DSC: Wymuś żądany stan
Oprócz polecenia cmdlet zasób DSC WindowsFeature sprawdza, czy rola lub funkcja jest obecna lub nieobecna. na jednym lub większej liczbie serwerów, co pasuje do w pełni zautomatyzowanych infrastruktur.
Streszczenie- Deklaratywne instalowanie lub odinstalowywanie roli lub funkcji systemu Windows.
Składnia zasobu w konfiguracji DSC:
WindowsFeature #ResourceName
{
Name =
]
]]
{ Absent | Present }]
]
]
]
}
Wymagania:Windows Server 2008 lub nowszy na komputerze docelowym oraz dostęp do modułów DISM i ServerManager PowerShell.
Nazwa kluczowej właściwości: Użyj wewnętrznej nazwy roli lub funkcji (nie nazwy wyświetlanej). Aby wyświetlić listę prawidłowych opcji dla zespołu, użyj , uzupełniając w ten sposób wiedzę niezbędną do automatyzacji zarządzania rolami i funkcjami.
Inne właściwości istotne w scenariuszach z życia realnego:
- Poświadczenie: Poświadczenie umożliwiające dodanie lub usunięcie roli danej tożsamości. Typ poświadczenia PS.
- Zapewniać: „Obecny” – instalacja, „Nieobecny” – usunięcie. Wartość domyślna: Obecny.
- Uwzględnij wszystkie podfunkcje: instaluje wszystkie podfunkcje, jeśli mają zastosowanie
$true. Jeśli Ensure = Absent, usuń również podfunkcje. - Ścieżka dziennika: ścieżka do pliku dziennika instalacji lub deinstalacji.
Właściwość tylko do odczytu DisplayName: Nazwa wyświetlana, którą zasób otrzymuje po zastosowaniu stanu.
Ucz się szybciej: aktualizowana pomoc i wbudowane przykłady
Utrzymuj pomoc na bieżąco dzięki funkcji Update-Help a następnie użyj Sprowadź pomoc Aby zobaczyć streszczenie i przykłady dowolnego polecenia cmdlet, w tym omawianego przez nas:
Update-Help
Get-Help Get-WindowsFeature -Examples
Dzięki temu połączeniu unikniesz marnowania czasu na przeszukiwanie sieci gdy chcesz po prostu mieć gotowe przykłady do skopiowania i wklejenia.
Zakres i produkty objęte
Polecenie Get-WindowsFeature i opisane tutaj operacje dotyczą systemu Windows Server (2008 i nowsze). Niektóre źródła podają, że problem dotyczy systemów Microsoft Windows Server 2012 i 2012 R2.
W środowiskach producentów funkcjonalność jest udostępniana na szerokiej gamie serwerów korporacyjnych. (np. rodziny Dell PowerEdge, takie jak C4130, C4140, C6400 i inne), co wzmacnia jego przydatność w heterogenicznych środowiskach centrów danych. Jeśli chcesz poszerzyć swoją wiedzę, możesz również skorzystać z zasobów na stronie o serwerach i lokalizacjach.
Dzięki tym elementom inwentaryzacja i standaryzacja ról za pomocą Get-WindowsFeature, wdrażanie usług IIS lub promowanie usług AD DS stają się zadaniami powtarzalnymi, możliwymi do śledzenia i łatwymi do zautomatyzowania.; a jeśli chcesz zagwarantować stan, zasób DSC WindowsFeature uzupełnia cykl solidną warstwą deklaratywną.
Pisarz z pasją zajmujący się światem bajtów i technologii w ogóle. Uwielbiam dzielić się swoją wiedzą poprzez pisanie i właśnie to będę robić na tym blogu, pokazywać Ci wszystkie najciekawsze rzeczy o gadżetach, oprogramowaniu, sprzęcie, trendach technologicznych i nie tylko. Moim celem jest pomóc Ci poruszać się po cyfrowym świecie w prosty i zabawny sposób.