Archiv für die Kategorie » Server «

19 | 09 | 2018

PSConf.EU 2019 – Call for Papers ist offen!

Geschrieben von um 9:46 Uhr

Ab heute (und bis zum 09.12.2018) können Vorträge für die PowerShell Konferenz 2019 in Hannover eingereicht werden: HIER.

Also los, Community – reicht eure Themen ein, Hannover wartet!

Tags » , , , , «

+

07 | 09 | 2018

HTML5-Client für RDS – große Freude mit kleinen Tücken

Geschrieben von um 20:16 Uhr

Anfang des Jahres hat Microsoft ohne viel Trara einen HTML5-Client für RDS herausgebracht. Ich habe mir das Ding angeschaut und war vom ersten Test ziemlich begeistert. Besonderheiten der neuen Komponente in Kürze:

  • einsetzbar nur für eine komplette RDS-Bereitstellung, nicht für den Zugriff auf einzelne Server
  • ist fest verheiratet mit RDWeb (und ersetzt ihn, wenn man den Webclient produktiv veröffentlicht)
  • erfordert zwingend den RD Gateway (und somit SSL-Zertifikate, denen ohne Wenn und Aber vertraut wird)
  • Drucker- und Zwischenablagenumleitung werden unterstützt, Laufwerke und SmartCard (noch) nicht, von anderer Peripherie ganz zu schweigen
  • Die RDS-Infrastruktur – Broker, RDWeb und Gateway – muss auf Server 2016 oder 2019 laufen (Worker können aus der 2012R2-Generation sein)
  • RDSCALs müssen per User vergeben werden (Device CALs würden sonst sehr schnell verbraucht werden)
  • Nach der offiziellen Guidance (https://docs.microsoft.com/en-us/windows-server/remote/remote-desktop-services/clients/remote-desktop-web-client-admin) muss jeder RDWeb-Server zum Zeitpunkt der Installation Zugang zum Internet, d.h. zur PowerShell Gallery, haben.

Da ich kein großer Freund von Previews bin, habe ich die Testumgebung mit Server 2016 aufgebaut. Deshalb muss ich auf meinem RDWeb-Server zunächst einmal das NuGet-Modul updaten:

Install-Module -Name PowerShellGet -Force

Danach muss die PowerShell geschlossen und neu gestartet werden. So auf die neueste NuGet-Version gebracht, kann das Management-Modul für den Web Client installiert werden:

Install-Module -Name RDWebClientManagement

Das Modul exportiert 12 Cmdlets mit vielversprechender Funktionalität:

Uninstall-RDWebClient
Get-RDWebClientBrokerCert
Import-RDWebClientBrokerCert
Remove-RDWebClientBrokerCert
Get-RDWebClientDeploymentSetting
Set-RDWebClientDeploymentSetting
Find-RDWebClientPackage
Get-RDWebClientPackage
Install-RDWebClientPackage
Publish-RDWebClientPackage
Uninstall-RDWebClientPackage
Unpublish-RDWebClientPackage

Schauen wir mal, was Find-RDWebClientPackage so findet… Das sieht vielversprechend aus:

packageId                       : rd-html5
version                         : 1.0.0
author                          : Microsoft
summary                         : The Remote Desktop Web Client
minRDWebClientManagementVersion : 1.0.0
url                             : https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE2mzyl
_baseVersion                    : 1.0.0

Doch was ist das? Bereits durch dieses „Finden“ wurde der Ordner „C:\Program Files\RemoteDesktopWeb“ erzeugt, mit einem Ordner „Internal“, auf den ich gar keine Rechte habe! OK, „Deny Everyone Read“ ist ein bisschen plump, aber Internal ist Internal. Drin sind drei Ordner: „Clients“, „Config“ und „Temp“. Alle drei sind noch leer bis auf die „Config\deploymentSettings.js“, die folgenden Inhalt hat:

var DeploymentSettings = {
    "deploymentType":  "rdWeb",
    "suppressTelemetry":  false
}

Echt jetzt? Es wird also früh vorgesorgt, dass die Telemetrie schön an ist. Weiter im Text. Sowohl Get-RDWebClientPackage als auch Install-RDWebClientPackage haben keinen Parameter, mit dem man einen lokalen Speicherort angeben kann, meine RDWeb-Server brauchen also wirklich Zugang zum Internet, damit ich den Web Client installiert bekomme. Im Moment hat mein RDWeb-Server Internet, also installiere ich:

Install-RDWebClientPackage

(das ausgepackte Archiv aus dem Internet liegt nun unter „C:\Program Files\RemoteDesktopWeb\Internal\Clients\4csqnmex.0iv“…)

Import-RDWebClientBrokerCert C:\temp\RDWeb.cer

(das Zertifikat wurde nach „C:\Program Files\RemoteDesktopWeb\Internal\Config\brokercert.cer“ kopiert…)

Publish-RDWebClientPackage -Type Test -Latest

Das war’s! Bereits im IE11 bekomme ich unter https://F.Q.D.N/RDWeb/webclient-test eine moderne Oberfläche angezeigt, verbunden mit dem Hinweis, dass Audio nicht geht: OK, IE11 ist nicht gerade ein HTML5-fähiger Browser…
In Chrome sieht es schon ganz anders aus:

Soweit, so gut. Sieht richtig gut aus, und die Performance haben die RDSGURUS ja auch positiv getestet. Schauen wir mal, was man so einstellen kann, denn oben rechts ist ja ein Zahnrad:

Na, da hat es sich ja richtig gelohnt, einen Dialog dafür zu basteln.
Freunde, diese Telemetrie-Einstellung ist gar nicht so harmlos wie sie aussieht. Wenn ich nämlich die Telemetrie anlasse und der Testumgebung den Internet-Zugang wegnehme, so startet der Web-Client gar nicht erst!

Hmm, das ist nicht schön. Zum Glück betrifft das den Rechner, von dem aus man den Browser öffnet, und nicht die gesamte Bereitstellung. Macht ja auch irgendwie Sinn, dass die am Frontend Telemetrie-Daten sammeln. Könnte diese Zeile sein:

Nicht umsonst hat Microsoft dem PowerShell-Modul das Cmdlet Set-RDWebClientDeploymentSetting mitgegeben, damit kann man nämlich auch ohne Internet-Zugang die Telemetrie ausschalten:

Set-RDWebClientDeploymentSetting -Name SuppressTelemetry -Value $true

Und falls sich jemand die Frage gestellt hat, ob das Ganze auch auf anderen Betriebssystemen geht (z.B. weil er MacOS-User ist und von den ewigen Troubles mit dem RDP Client die Nase voll hat)…

Happy RDSing!

Tags » , , , , , , «

+

02 | 09 | 2018

CIM Lingen 2018 – das war schön

Geschrieben von um 8:17 Uhr

Gestern hatte ich die Ehre, auf der CIM Lingen 2018 zu „Running Scripts in the Enterprise“ (was sonst?) zu sprechen. Bis dato hatte ich die CIM gar nicht auf dem Schirm gehabt, aber die Emsländer Community-Konferenz hat sich als eine ganz tolle Veranstaltung entpuppt. Trotz einer ordentlichen Größe von 300 Teilnehmern ist die Atmosphäre eines User Group-Treffens unverkennbar vorhanden. An dieser Stelle nochmals vielen Dank an das Orga-Team und natürlich an die Sponsoren, zu denen sowohl mein jetziger als auch mein ehemaliger Arbeitgeber gehören.

Ich habe einige tolle Menschen kennengelernt und einige bisher nur aus dem Online-Geschehen bekannte endlich in Person getroffen. Etwas traurig war es zu sehen, dass langjährigen MVPs und absoluten Grundsteinen der deutschen Microsoft-Community die Auszeichnung mit der Begründung „too little cloud content“ entzogen wurde. Schämt euch, Microsoft! Ihr werdet schon sehen, was ihr davon habt.

Nächstes Jahr soll die (nunmehr 15.) CIM an zwei Tagen stattfinden – 13. + 14.09.2019 (save the date!) und über acht Tracks gehen. Es sind 50 Sessions angekündigt, es ergeben sich also rechnerisch, abzüglich der Opening und der Closing Keynote, drei Slots pro Tag in jedem Track. Somit hätte jeder Slot voraussichtlich eine Länge, die einen deutlich tieferen Einstieg in das jeweilige Thema erlaubt. Drückt mir die Daumen – das wäre genau mein Ding, denn diesmal bin ich etwas aus der Zeit geraten und musste am Ende des 45-minütigen Slots ganz schön hetzen.

Also: auf zur nächsten CIM: #cimlingen #communityrocks

 

Tags » , , , «

+

28 | 07 | 2018

Ich spreche auf der CIM Lingen 2018

Geschrieben von um 14:18 Uhr

Am 01.09.2018 steigt wieder die CIM Lingen. Dismal bin ich auch dabei, mit einem Vortrag zu „Running Scripts in the Enterprise“ 🙂

Tags » , , , , «

+

16 | 07 | 2018

PowerShell Quirks: Beware of collections, die N+1.

Geschrieben von um 23:31 Uhr

Ich habe ja schon des öfteren über Eigenarten von Sammlungen aller Art in PowerShell berichtet. Heute ein Beispiel aus der Active Directory-Administration.

Nehmen wir einfach mal an, wir haben ein mehrwertiges Attribut und wollen zu diesem einen zusätzlichen Wert hinzufügen. Für diese Beispiel nehme ich msExchExtensionCustomAttribute1, da kann man nichts kaputt machen.

Set-ADUser john.doe -Replace @{msExchExtensionCustomAttribute1=@("A","B","C")}
$user = Get-ADUser john.doe -Properties msExchExtensionCustomAttribute1
$a1 = $user.msExchExtensionCustomAttribute1
Write-Host "Unser Attribut msExchExtensionCustomAttribute1:"
$a1.GetType()
$a1

Nun wollen wir zu $a1 ein viertes Element hinzufügen. IntelliSense in ISE bietet folgendes an:

Auch wenn’s bei nativen PowerShell-Arrays nicht funktioniert, ist Add doch vielversprechend. Probieren wir’s aus:

$a1.Add("D")
Write-Host "`r`nNach dem Add:"
$a1.GetType()
$a1

liefert

Sieht doch super aus, richtig? Der Typ ist derselbe, alle vier Elemente sind wie erwartet da. Nun bleibt also die neue Sammlung zurück in das Attribut zu schreiben und das Ergebnis zu überprüfen:

Set-ADUser john.doe -Replace @{msExchExtensionCustomAttribute1=$a1}
Get-ADUser john.doe -Properties msExchExtensionCustomAttribute1

Doch das Ergebnis ist leider nicht ganz das, was wir erwartet haben:

Das soeben beschriebene Attribut ist leer. Hmmm.

Machen wir das gleiche Spiel und nehmen statt der Methode .Add das PowerShell-eigene Anfügen:

$a1 += "D"

so ist das Ergebnis wie erwartet:

Der alles entscheidende Unterschied ist anscheinend, dass die Operation += die ADPropertyValueCollection in ein System.Array konvertiert. Und dieses wird offenbar von Set-ADUser korrekt interpretiert, sein nativer Datentyp hingegen nicht!

Happy updating!

Tags » , , , , , «

+

23 | 05 | 2018

Die Exchange User Group Berlin trifft sich am 31. Mai

Geschrieben von um 13:05 Uhr

Das 2. Quartalsmeeting 2018 der Exchange User Group Berlin steht fest. Es findet bei der JAEMACOM am 31.05.2018 um 18 Uhr statt. Alle Details und Anmeldung über Meetup: https://www.meetup.com/de-DE/EXUSG-DE/events/250512828/

Es gibt noch freie Plätze 🙂

Tags » , , , «

+

15 | 05 | 2018

Die Windows Server User Group Berlin trifft sich am 24. Mai

Geschrieben von um 10:22 Uhr

Das nächste Treffen (Q2/2018) der WSUG-B findet am Donnerstag, dem 24.05.2018 bei der COMPAREX AG in Berlin-Adlershof. Details und Anmeldung über Meetup.com: https://www.meetup.com/de-DE/Windows-Server-User-Group-Berlin/events/250092212/

 

Tags » , , , «

+

29 | 01 | 2018

Und ich dachte, SMB1 wäre schädlich…

Geschrieben von um 16:14 Uhr

Nach Ansicht eines deutschen Software-Herstellers ist der wahre Bösewicht aber SMB2. Die folgende Warnmeldung ist kein Scherz:

Die haben sogar einen extra Menüpunkt, der SMB2 auf dem Server abschaltet (wenn man das Programm dort startet). Gut, der Hotline-Mitarbeiter sagte zum Server auch „Hauptrechner“ 😉

Tags » , , «

2

16 | 01 | 2018

Windows Server User Group Berlin: Das erste Treffen des Jahres am 25.01.2018

Geschrieben von um 19:27 Uhr

Das erste Treffen der Windows Server User Group Berlin wird am Donnerstag, dem 25.01.2018 um 18 Uhr bei der Jaemacom GmbH in der Friedenstr. 91 stattfinden. Auf dem Programm stehen Vorträge zu künstlicher Intelligenz und zu Security in Windows-Landschaften.

Für das leibliche Wohl wird auch gesorgt sein.

Um die Organisation zu unterstützen, bitten wir um Anmeldung unter https://winsvr.events/event.php?vnr=11-106 .

Bis bald bei der WSUGB!

Tags » «

+

09 | 01 | 2018

PST über LAN ist ja doch supported ;-)

Geschrieben von um 21:50 Uhr

…zumindest so ein bißchen, nur in einem Szenario und nur in Bezug auf die Funktion, nicht auf die Performance. Das ist einer aus der Rubrik „wieder was gelernt“. Enjoy: https://support.microsoft.com/en-us/help/297019/limits-to-using-personal-folders–pst-files-over-lan-and-wan-links

P-L-E-A-S-E don’t do this at homework! (hier ist, warum: https://blogs.technet.microsoft.com/askperf/2007/01/21/network-stored-pst-files-dont-do-it/) Wenn jemand Hilfe bei der Abschaffung von PSTs braucht, fragt mich 😉

Tags » , , , , «

+