Haikos Blog Blog von Haiko Hertes zu allen Themen rund um Microsoft und Datacenter

22Mrz/170

PowerShell – RAM-Konfiguration eines Systems auslesen

Bei der Frage, ob ein Server (oder auch Client) noch etwas mehr RAM vertragen kann, stellt sich oft die Frage, wieviel RAM dann aktuell in wie vielen Modulen verbaut ist und wieviele Slots noch frei sind. Natürlich gibt es dazu auch bereits grafische Werkzeuge, die das können, aber spätestens, wenn mehrere Maschinen (ggf. auch Core-Server ohne GUI) abgefragt werden sollen, kann die PowerShell ihre Stärken ausspielen. Daher habe ich ein kleines Skript gebaut, welches diese Aufgabe erfüllt:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[Cmdletbinding()]
Param(
    [string]$Computername = "localhost"
)
cls
$PysicalMemory = Get-WmiObject -class "win32_physicalmemory" -namespace "root\CIMV2" -ComputerName $Computername
 
Write-Host "Memory Modules:" -ForegroundColor Green
$PysicalMemory | Format-Table Tag,BankLabel,@{n="Capacity(GB)";e={$_.Capacity/1GB}},Manufacturer,PartNumber,Speed -AutoSize
 
Write-Host "Total Memory:" -ForegroundColor Green
Write-Host "$((($PysicalMemory).Capacity | Measure-Object -Sum).Sum/1GB)GB"
 
$TotalSlots = ((Get-WmiObject -Class "win32_PhysicalMemoryArray" -namespace "root\CIMV2" -ComputerName $Computername).MemoryDevices | Measure-Object -Sum).Sum
Write-Host "`nTotal Memory Slots:" -ForegroundColor Green
Write-Host $TotalSlots
 
$UsedSlots = (($PysicalMemory) | Measure-Object).Count 
Write-Host "`nUsed Memory Slots:" -ForegroundColor Green
Write-Host $UsedSlots
 
If($UsedSlots -eq $TotalSlots)
{
    Write-Host "All memory slots are filled up, none is empty!" -ForegroundColor Yellow
}

Die Ausgabe sieht dann etwa so aus:

PS_Memory1

Auf meinem Notebook mit nur zwei RAM-Slots (beide belegt) kommt zusätzlich noch eine kleine “Warnung”:

PS_Memory2

Ihr könnt das Skript auch hier herunterladen:

https://gallery.technet.microsoft.com/scriptcenter/Get-Memory-RAM-configuratio-35dda12e

13Mrz/170

Windows Server Usergroup Leipzig–Übersicht über die bisherigen Treffen und Recordings

Auf den bisher drei Treffen der in 2016 neu gegründeten Windows Server Usergroup Leipzig (WSUG L.E. – organisiert über Meetup unter meetup.com/de-DE/wsugle/) haben bereits diverse Leute Vorträge gehalten, darunter auch einige MVPs.

Hier möchte ich eine kurze Übersicht der Video geben, die ihr dann ganz bequem von zuhause anschauen könnt. Die Qualität der Videos variiert leider recht stark – seid also bitte nicht gleich abgeschreckt, wenn das erste Video das ihr euch zum Anschauen ausgewählt habt nicht so toll ist. Danke!

11.08.2016 – 1. Treffen – Begrüßung & Einleitung (Haiko Hertes) Link
11.08.2016 – 1. Treffen – Windows Server 2016 (Eric Berg) Link
11.08.2016 – 1. Treffen – Storage Spaces Direct S2D (Florian Klaffenbach) Link
03.11.2016 – 2. Treffen – Begrüßung & Einleitung (Haiko Hertes) Link
03.11.2016 – 2. Treffen – Windows PowerShell DSC (Haiko Hertes) Link
02.03.2017 – 3. Treffen – Begrüßung & Einleitung (Haiko Hertes) Link
02.03.2017 – 3. Treffen – Active Directory Security (Jan-Henrik Damaschke) Link
02.03.2017 – 3. Treffen – Übersicht System Center (Haiko Hertes) Link
02.03.2017 – 3. Treffen – Übersicht Altaro Hyper-V Backup (Haiko Hertes) Link

 

Diese und auch alle folgenden Videos werdet ihr auch über diese YouTube-Playlist finden:

https://www.youtube.com/playlist?list=PLPK8RW8p4Ok8-2qVVi0AHdoKuC448OEcM

24Jun/160

Windows Server / Client: Alle geplanten Tasks per PowerShell auslesen

Insbesondere auf Servern kann es schnell vorkommen, dass hier sehr viele Gepante Tasks ("Aufgaben") vorhanden sind, die aber über viele Ordner im Taskplaner verteilt sind:

TaskPlaner

Wenn man nun einen bestimmten Task sucht oder einfach wissen möchte, was so an Aufgaben alles geplant ist, dann ist die GUI hier leider keine große Hilfe. Aber mit der PowerShell bekommt man schnell das Gewünscht:

1
Get-ScheduledTask | Select URI,@{n="LastRun";e={($_ | Get-ScheduledTaskInfo).LastRunTime}} | Sort-Object LastRun

TaskPlaner2

Viel Spaß damit!

6Dez/112

Umstellen, wie im ActiveDirectory Anzeigenamen gebildet werden

Wenn man auf einem Windows Server, der als DomainController fungiert, einen neuen Benutzer anlegt, dann wird dessen Anzeigename aus dem Vor- und dem Nachnamen nach dem Schema "VORNAME NACHNAME" gebildet. Will man dies z.B. auf "NACHNAME, VORNAME" oder "VORNAME NACHNAME (DEPARTMENT)" umstellen, so muss man folgende Schritte gehen:

  • Über "Start" / "Verwaltung" den "ADSI-Editor" starten
  • Rechtsklick auf "ADSI-Editor" / "Verbindung herstellen..."
  • Bei den Verbindungseinstellungen "Bekannten Namenskontext auswählen" den Punkt "Konfiguration" auswählen und den Dialog mit "OK" schliessen
  • In der Baumstruktur zu "Konfiguration / CN=Configuration,DC=DOMAIN,DC=LOCAL / CN=DisplaySpecifiers / CN=407" navigieren (407 steht für Deutsch, bei einem englischen System muss 409 gewählt werden
  • "CN=user-display" mit einem Doppelklick öffnen
  • Den Wert "createDialog" bearbeiten
  • Für das Schema "NACHNAME, VORNAME" muss z.B. "%<sn>, %<givenName>" eingetragen werden
  • Mit "OK" bestätigen und den ADSI-Editor schliessen
21Nov/119

Exchange Server aus Domäne entfernen – auf die harte Tour

Offiziell wird von MS das Entfernen eines Exchange-Servers nur durch dessen Deinstallation unterstützt.

Ein mögliches Szenario, in dem die händische Entfernung dennoch notwendig sein kann, ist aber recht schnell umschrieben: Beim Update bzw. einer Versions-Migration ist etwas schief gegangen und die Exchange-Installation eines Exchange-Servers ist defekt. In der Exchange-Verwaltungskonsole der anderen Server taucht er aber weiterhin auf und ist Bestandteil des ActiveDirectoy - das kann zu Problemen führen. Hier hilft es auch nichts, den Server aus der Domäne zu entfernen oder gar sein Computerkonto zu löschen.

Eine weitere Möglichkeit wäre, dass einer der Mailserver (z.B. physikalisch) defekt ist, und smit nicht mehr sauber deinstalliert werden kann.

Also muss eine Lösung her. Die (in meinen Augen) einfachste ist die Verwendung des ADSI-Editors. Dazu startet man eine mmc (Start -> Ausführen -> mmc) und fügt das Snap-In für den ADSI-Editor hinzu (Datei -> Snap-In hinzufügen / entfernen).  Dort muss man mit einem Rechtsklick auf "ADSI-Editor" eine Verbindung zu dem entsprechenden Domänencontroller herstellen und als Namenskontext "Konfiguration" auswählen.

Hier muss man nur zu folgendem Zweig navigieren:

  • CN=Configuration,DC=DOMAIN,DC=NAME
    • CN=Services
      • CN=Microsoft Exchange
        • CN=NAME
          • CN=Exchange Administrative  Group
            • CN=Servers

Dort sind nun alle Exchange-Server, die im AD bekannt sind, aufgelistet. Derjenige, der entfernt werden soll, kann hier einfach entfernt werden und taucht dann z.B. in der Exchange Verwaltungskonsole nicht mehr auf.

4Feb/080

TurboLAN III nähert sich unaufhaltsam

Nun sind es keine 3 Wochen mehr bis zur TurboLAN III im Volkshaus in Pegau. Die Vorbereitungen laufen auf Hochtouren. In den letzten Tagen wurden einige neue Server fertig gemacht und werden nun mit der nötigen Software versehen.

Wenn du noch nicht angemeldet bist, dann hol dies jetzt nach und sichere dir den Vorverkaufs-Vorteils-Preis!

-> http://www.turbolan.de !