Wer mit Powershell die Systemdaten seiner Windows Server und Clients auslesen möchte, dem wird diese Zusammenstellung der Powershell-Befehle hilfreich sein.
allgemeine Befehlsübersicht
Get-WmiObject im Microsoft Technet
Nutzerverwaltung
Lokale Nutzer und lokale Gruppen auslesen

Get-WmiObject Win32_Group -Filter "LocalAccount = $true"
Dateisystem, Dateien, Ordner- und Freigabeberechtigungen
Get-WmiObject -Class Win32_Share
Ordnerberechtigungen auslesen
Get-Acl zeigt euch in Powershell die Ordnerberechtigungen an.
Get-Acl -Path "C:\Windows"
(Get-Acl -Path "C:\Windows").Access
Mit den folgenden Zeilen werden die Ordnerberechtigungen in eine CSV-Datei geschrieben. Dis Auswahl an Ordnern könnt ihr über das Array $folder an Get-Acl übergeben.
### NTFS Berechtigungen von mehreren Ordner auslesen
$csv_file="c:\temp\csv_acl.csv"
$folder=@("c:\windows\","c:\temp")
foreach ($folder in $special_folders){
if (Test-Path -Path $folder) {
$perm=(Get-Acl -Path $folder).Access
$perm | Add-Member -MemberType NoteProperty -Name Share_Path -Value $folder -PassThru | Add-Member -MemberType NoteProperty -Name Share_name -Value "" -PassThru
}
}
if($perm.count -gt 0){
$perm | Export-CSV $csv_file -Delimiter ";" -NoTypeInformation
}
Mit „Get-WmiObject -Class Win32_Share“ und „Get-SmbShareAccess“ könnt ihr euch alle konfigurierten Shares eines Rechner samt Berechtigungen anzeigen lassen. In dem folgenden Zeilen wird die Ausgabe in einer CSV-Datei gespeichert. Das Heißt, Freigabe und NTFS Berechtigungen werden in separate CSV-Dateien geschrieben. Sicherlich geht das auch kompakter. 😉
$shares = Get-WmiObject -Class Win32_Share
$csv_report_file_shareinfo = "C:\temp\csv_shareinfo.csv";
$csv_file = "C:\temp\csv_shareinfo_ntfs.csv";
$csv_data_share="Name;Path;s_Name;s_ScopeName;s_AccountName;s_AccessControlType;s_AccessRight;workaround;`r`n"
foreach($local_path in $shares){
write-host "- Get Data from: "$local_path.Name" ("$run")"
### get NTFS permissions
if($local_path.Path.Length -gt 1){
get-acl $local_path.Path | ForEach {
$Sharename= $local_path.Name
$Share_descr=$local_path.Description
$Path = (Convert-Path $local_path.Path)
$_.Access | ForEach {
$_ | Add-Member -MemberType NoteProperty -Name Share_Path -Value $Path -PassThru | Add-Member -MemberType NoteProperty -Name Share_name -Value $Sharename -PassThru | Add-Member -MemberType NoteProperty -Name Share_Descr -Value $local_path.Description -PassThru
}
} | Export-CSV $csv_file -Delimiter ";" -NoTypeInformation
}
### get share permissions
write-host "- Get Share Infos from: "$local_path.Name
if($local_path.Path.Length -gt 1){
$share_data = Get-SmbShareAccess -Name $local_path.Name
$csv_data_share+=$local_path.Name+";"+$local_path.Path+";"+$share_data.Name+";"+$share_data.ScopeName+";"+$share_data.AccountName+";"+$share_data.AccessControlType+";"+$share_data.AccessRight+";workaround;`r`n"
}
}
$csv_data_share | out-file $csv_report_file_shareinfo -Encoding ascii;
Systeminformationen mit Powershell auslesen
Festplatten auslesen

Get-WmiObject -Class Win32_logicaldisk
installiertes Betriebssystem auslesen (Windows Buildnummer, Version ,….)
Get-WmiObject -class win32_operatingsystem
Systemdaten wie Seriennummer, Modell und Hersteller mit Powershell auslesen
Get-WmiObject -Class win32_computersystem
Prozesser mit Powershell auslesen

Get-WmiObject -Class Win32_Processor
Bios Version und Seriennummern auslesen
get-wmiobject win32_bios
Netzwerkeinstellungen, das ip-connfig unter Powershell
Mit get-wmiobject -class win32_quickfixengineering könnt ihr euch eure Netzwerkeinstellungen
Get-WmiObject win32_networkadapterconfiguration
installierte Windows Updates mit Powershell auslesen
Mit „get-wmiobject -class win32_quickfixengineering“ könnt ihr euch die installierten Windows Updates anzeigen lassen. Die folgende Zeile leitet die Ausgabe in eine CSV-Datei um.
get-wmiobject -class win32_quickfixengineering | Select-Object -Property Source,Description,HotFixID,InstalledBy,InstalledOn | Export-Csv C:\temp\csv_export.csv
weitere Beiträge um das Thema Powershell
- Mit Powershell Systemdaten von Windows Systemen auslesen
- Powershell Programmierung – Tipps für verständliche Scripte
- Mit Powershell alle SCCM Clients auslesen
- WMI-Filter Zusammenstellung
- Active-Directory Clients mit Powershell inventarisieren
- Userprincipalname mit Powershell vervollständigen
- AD-User und AD-Gruppen mit Powershell bearbeiten
- alte Dateien löschen mit Powershell
- verbundene Drucker per Powershell als CSV auslesen
- sämtliche Computer der Active-Directory neu starten