Listázza ki az összes kiszolgálói szerepkört az összes PowerShell Windows-kiszolgálóról
Tehát dokumentálni készül a hálózati és operációs rendszer környezetét? Nem szeretne harmadik féltől származó szoftvert vásárolni? Szeretné felsorolni az összes kiszolgálói szerepkört a hálózat összes kiszolgálójáról? Tessék… a PowerShell-lel, mi más? ?
Mit várhatok ettől a blogbejegyzéstől? Vessen egy pillantást az alábbi képre. Ha ezt keresed, olvass tovább…
A Windows Server támogatja az úgynevezett szolgáltatások és szerepkörök telepítését. A funkciók csak helyileg relevánsak. A szerepkörök hálózati szerepkörök, például DHCP, DNS és így tovább.
Ide másolhatja és beillesztheti a kódot, vagy letöltheti a teljes szkriptet, amelyet a bejegyzés végén és a letöltéseim részben talál.
Kód: Az összes kiszolgálói szerepkör lekérése
Itt van. Másolja és illessze be a sorokat a PowerShell ISE vagy a Visual Studio Code programba, és húzza meg a ravaszt, általában nyomja meg az F5 billentyűt.
Mellesleg: Ezt a szkriptet PowerShell 5.1-ben és PowerShell 7-ben tesztelték.
# .SYNOPSIS
# This script collects all installed Server Roles and Features
# from all domain-joined Windows Servers.
# .DESCRIPTION
# The result is displayed in the console and a report will be
# saved in $HOME\ServerRoles"Date".txt.
# The file will open automatically.
# .NOTES
# Run this script with administrative privileges
# on a domain-controller of your domain.
# Supported PowerShell versions: PowerShell 5.1, PowerShell 7
# .AUTHOR
# Patrick Gruenauer | Microsoft MVP PowerShell [2018-2020]
# .WEB
# https://sid-500.com
############################ CODE ###############################
### Retrieving all Servers by Name
$ErrorActionPreference = "SilentlyContinue"
$servers = (Get-ADComputer -Properties operatingsystem `
-Filter 'operatingsystem -like "*server*" -and enabled -eq "true"').Name
### Collection Point
$result = @()
### Ping all Member-Server and if ping is successful run
# Get-WindowsFeature
foreach ($item in $servers) {
$test = Test-Connection $item -Count 1
### Providing PowerShell 7 and 5.1 compatibility in terms of return code
If ($test.Status -eq 'Success' -or $test.StatusCode -eq '0')
{
$roles = Get-WindowsFeature -ComputerName $item |
Where-Object InstallState -EQ 'Installed'
### Write into the collection point
$result += New-Object -TypeName PSObject -Property ([ordered]@{
'Server' = $item
'Roles' = $roles.Name -join "`r`n"
### Escape Character CarriageReturn (`r) + NewLine (`n)
}
)
}
}
### Generating Outputs
# Collecting Point: Console Output
Write-Output $result | Format-Table -Wrap
# Text File Output
$date = Get-Date -Format MM.dd.yyyy
$result | Format-Table -Wrap |
Out-File "$HOME\ServerRoles$date.txt"
Write-Warning "Output file ServerRoles$date.txt generated in $HOME ... Opening file ..."
# Opening File
Start-Process $HOME\"ServerRoles$date.txt"
Mint említettük, másolja be a fenti kódot a választott PowerShell-szerkesztőbe, vagy töltse le a szkriptet a webhelyem Letöltések részében.
Az egyes szervereken lévő kiszolgálói szerepkörök lekéréséhez lásd: Windows Server: Az összes telepített szerepkör és szolgáltatás listája a PowerShell segítségével
Jó szórakozást a dokumentáláshoz!

