SQL Server Express TCP abdrehen

Rausfinden:

$cn="mysqlexpress";(gwmi -ComputerName $cn -Namespace "root\microsoft\sqlserver\$((gwmi -ComputerName $cn -Namespace "root\microsoft\sqlserver" -Query "select * from __NAMESPACE where Name like 'ComputerManagement%'").Name)" -Query "select * from ServerNetworkProtocol where ProtocolName='Tcp'").Enabled

Abdrehen:

$cn="mysqlexpress"; iwmi -InputObject (gwmi -ComputerName $cn -Namespace "root\microsoft\sqlserver\$((gwmi -ComputerName $cn -Namespace "root\microsoft\sqlserver" -Query "select * from __NAMESPACE where Name like 'ComputerManagement%'").Name)" -Query "select * from ServerNetworkProtocol where ProtocolName='Tcp'") -Name "SetDisable"

(geht davon aus dass nur eine Version vom SQL Server installiert ist – sollten es mehr sein muss man halt ein ForEach-Object einbauen)

Digitale Signatur mit Powershell

Weil nicht alle Timestampdienstleister mit Powershell funktionieren und ich es leid bin dauern einzufahren:

Set-AuthenticodeSignature -Certificate (gci cert:currentuser\my -CodeSigningCert) -TimestampServer http://timestamp.sectigo.com ...myfile...

(geht natürlich davon aus dass im Userzertifikatsstore genau ein Code Signing Zertifikat liegt)

Neuer CNAME Registrykey

Als wären notwendige SPNs, DisableStrictNameChecking, DisableLoopbackCheck, BackConnectionHostnames nicht schon genug gibts (eh schon seit 2010…) noch einen weiteren Wert der helfen könnte:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\SrvAllowedServerNames

Ein REG_MULTI_SZ wo man dann die gewünschten CNAMES reinschreibt.

Hier beschrieben (u.a.): Description of the update that implements Extended Protection for Authentication in the Server service (microsoft.com)

Rerun Advertisement Powershell Oneliner

([wmiclass]"\\$computername\root\ccm:SMS_Client").TriggerSchedule(((gwmi -computername $computername -namespace root\ccm\policy\machine\actualconf
ig -query "select * from ccm_scheduler_scheduledmessage where ScheduledMessageID like '%$advertisementid_or_packageid%'").ScheduledMessageID))   

Wenn das nicht hilft hat der Client für sich beschlossen dass er/sie/es das schon zur Zufriedenheit Aller nach bestem Wissen und Gewissen erledigt hat dann hilft das hier (dafür muss das Deployment aber auf “Always rerun”) stehen!) – anschließend MachinePol triggern oder CCMEXEC restarten um Rerun zu beschleunigen:

gwmi -Computername $computername -Namespace root\ccm\Scheduler -Query "select * from ccm_scheduler_history where ScheduleID like '%$advertisementid_or_packageid%'"|Remove-WmiObject

Geklaut von hier bzw. hier.

ETL auf PCAP konvertieren

NETSH TRACE START CAPTURE=YES PERSISTENT=YES ist ja fein, erzeugt aber leider nur ein ETL welches man sich (diskussionswert sinnvoll) nur mit dem nicht mehr supporteten Message Analyzer anschauen kann – mit

https://github.com/microsoft/etl2pcapng

kann man aber eine solche ETL Datei in ein PCAPNG File umwandeln und dann mit Wireshark in gewohnter Manier öffnen.

Besonderheit: Im Paketkommentar wird die PID des Prozesses welcher das Paket gesendet oder empfangen hat hinterlegt (was nicht immer stimmt wegen DPCs aber manchmal doch hilfreich sein kann). Filter mit:

frame.comment == "PID=1234"

Dreist geklaut von: https://4sysops.com/archives/how-to-capture-a-network-trace-from-a-remote-computer/

UNC Pfad mit IPv6 Adressen

Aus irgendeinem nicht wirklich nachvollziehbaren Grund kann Explorer nicht mit IPv6 Adressen in UNC Pfaden umgehen. MS hat dafür wohl eine sehr “spezielle” Lösung gebaut (geklaut von hier): Einfach die Adresse nehmen, alle : durch – ersetzen (% durch s) und “ipv6-literal.net” hinten dran hängen.

Der Name wird dann nicht über den DNS aufgelöst sondern bleibt als Spezialzweig völlig intern.

Beispiel:

\\fd00-123-456-789-abc-def-1234-4567.ipv6-literal.net\share$

ISATAP “renewen”

Falls ISATAP Adapter mal nicht will (keine Adresse) scheint folgendes zu helfen:

Set-NetISATAPconfiguration -Router ''
Set-NetISATAPconfiguration -Router 'meinisataprouter.meins.at'

ISATAP Config:

Get-NetISATAPconfiguration
netsh interface ipv6 isatap show router
netsh interface ipv6 isatap show state

IP Helper Service restarten ist natürlich immer ein gute Idee 😀

SCCM Query: Windows 10 Buildnummern

Weil die meisten SCCM Reports nur bis zur dritten Buildnummer (10.0.n) gehen und die letzte Nummer fast nirgends zu bekommen ist:

select v_GS_OPERATING_SYSTEM.Caption0, vSMS_R_System.BuildExt as Build, count(*) as Anzahl
from vSMS_R_System
inner join v_GS_OPERATING_SYSTEM on v_GS_OPERATING_SYSTEM.ResourceID = vSMS_R_System.ItemKey
where v_GS_OPERATING_SYSTEM.Caption0 like '%Windows 10%'
group by v_GS_OPERATING_SYSTEM.Caption0,vSMS_R_System.BuildExt
order by v_GS_OPERATING_SYSTEM.Caption0,vSMS_R_System.BuildExt

SCCM Query: Failed Deployment

Namen der Rechner auf denen ein Deployment fehlgeschlagen ist:

select sys.Name0 from vSMS_R_System as sys inner join vSMS_ClientAdvertisementStatus as offer on sys.ItemKey=offer.ResourceID WHERE AdvertisementID = 'XXXnnnnnn' and LastStateName = 'Failed'