Aktuelle Windows Update-Quelle anzeigen

Manchmal muss man „mal eben“ herausfinden, von welcher Update-Quelle ein lokales Windows Computer seine Updates beziehen möchte. Leider gibt es seit (Windows 2003) keine einfache, schnelle und zuverlässige Anzeige dafür.

Man kann die tatsächliche aktuelle Update-Quelle (natürlich nur zur Sicherheit) am zuverlässigsten direkt über den Windows Update-Dienst mit einem kurzen PowerShell-Befehl ausgeben. Der aktuelle Zustand des Dienstes wird sofort angezeigt, ganz ohne den Zugriff auf Registry-Schlüssel, Intune-Konfigurationen oder Gruppenrichtlinien.

Lösung

Man benötigt eine PowerShell „Als Administrator“:

(New-Object -ComObject Microsoft.Update.ServiceManager).services | Select-Object Name,IsDe*

Setzen der „DefaultUsageLocation“ für das Feld „UsageLocaten“ für die Lizenzierung (Exchange, Teams, Audiokonferenzen)

Für die Vergabe von Lizenzen in Microsoft 365 ist die Pflege des Feldes „UsageLocation“ in EntraID bei jedem Benutzer verpflichtend.

Außerdem wird diese Information mittlerweile auch beim Teams „Dialplan“ verwendet. Man muss hier immer das Land eintragen, in dem der Anwender arbeitet.

Dazu gibt es mehrere Möglichkeiten:

  • Manuelle Pflege: Man setzt das Feld direkt im Admin-Center bei der Lizenzzuweisung für jedes Microsoft 365 Objekt einzeln
  • Tenant Default: Neue Nutzer übernehmen die im Tenant als Default hinterlegte Eigenschaft. Änderungen sind pro Benutzer weiter möglich
  • EntraID Connect (ehemals AdSync) + AD Feld „msExchUsageLocation“: Das Feld msExchUsageLocation wird On-Premises bislang zwar nicht genutzt (oder automatisch gepflegt). Wenn man das tut, wird es von EntraIDConnect automatisch synchronisiert.
    Get-AdUser -identity "EXAMPLEDUDE" | Set-AdUser -replace @{msExchUsageLocation="DE"}
  • Eine EntraID Sync-Regel erstellen, die einen festen Wert in das AzureAD schreibt oder ein anderes Feld (z.B. „c“ [Country]) dazu verwendet

Lösung

In den vermutlich meisten Fällen reicht es, das Attribut als Standard vorzugeben und die Ausnahmen zu pflegen. Bei deutschen Organisationen ~500 Nutzende war das bisher die pragmatischste und effizienteste Lösung.

Das geht recht schnell an der PowerShell, wenn man verstanden hat wie Microsoft’s Vibecoder arbeiten.

Hier ein Beispiel für die PowerShell7 (pwsh) mit dem aktuellen Graph-Modul:

Install-Module Microsoft.Graph -AllowClobber
Install-Module Microsoft.Graph.Authentication
Install-Module Microsoft.Graph.Identity.DirectoryManagement
Connect-MgGraph -Scopes Organization.ReadWrite.All

Update-MgOrganization -OrganizationId (Get-MgOrganization).Id -DefaultUsageLocation "DE"

Zur (Erfolgs-)Kontrolle des Attributes:

Get-MgOrganization | fl DefaultUsageLocation

Wenn man noch einen älteren Client mit der PowerShell 5 und den („deprecated“) MSOnline-Modulen hat, ist das hier das equivalent:

Install-Module MSOnline
Import-Module MSOnline -UseWindowsPowerShell 
Connect-MSOnlineService
Set-MsolCompanySettings -DefaultUsageLocation "DE"

VMWare.PowerCli VMs nach Custom Attribute filtern (Oneliner)

Die eine oder andere vmWare Migration steht nun an. Nach und nach Ziehen aller Ortens VMs nach der Offenbarung von Broadcoms’s Koksproblem auf bezahlbare Hypervisoren um und Admins haben alle Hände voll zu tun. Gut das es auf der vSphere-Seite die „Custom Attributes“ gibt: Datacenterweit nutzbare „tags“ mit denen man Maschinen markieren kann. Die Attribute gibt es zwa schon lange, aber wir sehen dieses feature grade so oft genutzt wie noch nie.

Denn: An der PowerShell kann man so „mal eben“ eine Liste bestimmter VMs ausgeben und konfortabel filtern.

Lösung

VMs nach Attributen filtern (als Einzeiler, der Lesbarkeit halber als Blöcke)

Get-VM | ? {
    ($_ | Get-Annotation -CustomAttribute "ATTR").Value -eq "EXAMPLE"
}

… gibt alle VMS mit dem Attribut „ATTR“ das den Wert „EXAMPLE“ hat aus.

Vielleicht braucht man auch alle VMs, die das Attribut nicht gesetzt haben:

Get-VM | ? {
    -not [string]::IsNullOrWhiteSpace(($_ | Get-Annotation -CustomAttribute "ATTR").Value)
}

Dateien in Microsoft Teams (Chats) an externe Benutzern senden erlauben

In Teams-Chats mit einem externen Kontakt, einem Kunden, Lieferanten oder Partner möchte man gerne mal eine Datei versenden. Man sucht das „Plus“ Symbol und … diese Option gibt es plötzlich nicht. Wenn man versucht, eine Datei aus dem Explorer in den Chat zu ziehen, blockiert ein rotes „X“ den Versuch.

Das ist kein Fehler, sondern eine Sicherheitsrichtlinie. Standardmäßig verhindert Microsoft Teams, dass Unternehmens-Benutzer Dateien in Chats mit externen Teilnehmern anhängen. Viele uns bekannte Admins (und Endbenutzer) wissen nicht, dass der Versand überhaupt möglich ist.

Lösung: Dateiversand (und „Freigabe“) über PowerShell aktivieren

In der PowerShell kann man mit dem Teams-Modul die globale Richtlinie schnell bearbeiten:

# Teams PS-Modul installieren
Install-Module -Name MicrosoftTeams -Force -AllowClobber

# Modul Importieren/Verbinden
Import-Module MicrosoftTeams
Connect-MicrosoftTeams

# Richtlinie ansehen
Get-CsTeamsFilesPolicy

# Externe Dateifreigabe ("FileSharingInChatsWithExternalUsers") aktivieren

Set-CsTeamsFilesPolicy -Identity "Global"-FileSharingInChatsWithExternalUsers Enabled

Die „Global“ Richtlinie gilt stets für alle Benutzer des Mandanten.

Wenn man die Berechtigung nur bestimmten Benutzern (oder Gruppen) gewähren möchten, erstellt man stattdessen eine benutzerdefinierte Richtlinie und weiset diese den entsprechenden Objekten zu. Die Globale lässt man auf „disabled“.

Die Änderung der Richtlinie greift sofort. In größeren Tenantns (400+ Nutzer) haben wir auch schon minutenlange Wartezeit gesehen, aber grundsätzlich geht das schnell und benötigt überraschenderweise keinen Neustart des Teams-Clients.

HP Savi 8200 UC-Serie Poly Headset plötzlich ohne Mikro

Die kabellose USB-DECT-Headset „Savi 8200“ von HP scheint im Laufe der Zeit so seine Zicken zu entwickeln. Nach mehreren (Support-)Anrufen deswegen bei uns, dachten wir, wir geben das Geheimnis der Wiederbelebung nun Preis.

NAch vielen Jahre praktisch ohne Fehler häufen sich grade (gefühlt) die Effekte mit dem Gerät.

Fehler

Das Mikrofon („Micro“) ist einfach weg. Im Gerätemanager ist das „Earset“ noch da, aber das „Mikro“ ist weg. Wenn man die „ausgeblendeten Geräte“ anzeigt, ist der Treiber noch sichtbar, wird aber nicht mehr geladen. In den Einstellungen gibt es kein Gerät, das als „Audioeingang“ auswählbar ist.

Das Mikro bleibt vollkommen stumm, in allen Apps.

Oft passiert das auch nicht „auf einmal“, sondern nach und nach. In Teams geht es noch, in VoIP-Software nicht mehr, dann auch kein Teams mehr, dann auch kein Browser (BBB, Zoom) mehr. Ein klassischer Fall von „heute morgen ging’s noch“).

Lösung

Der beherzte Hardware-Reset half bisher immer sofort:

  1. Headset ausschalten (mit dem Button an der Basisstation)
  2. Headset ausstecken (USB und Stromkabel)
  3. Batterie aus dem Earpiece entfernen
  4. 15 Sekunden (!) warten
  5. Alles wieder zusammenbauen, USB wieder einstecken

Und schon ist beides wieder da.