.NET 4.0 Bug: RegDeleteKeyEx remote auf XP

Im .NET Framework 4.0 führt Microsoft.Win32.RegistryKey.DeleteSubKeyTree() remote gegen einen XP Rechner geschossen zu einer netten Exception „The procedure number is out of range.“. Grund: Die Win32 Funktion RegDeleteKeyEx() wird erst ab Vista in advapi32.dll unterstützt (MSDN-Thread). Workaround: Selber rekursiv löschen, Beispiel:       [DllImport(„advapi32.dll“, EntryPoint = „RegDeleteKey“, SetLastError = true)]       public static extern int RegDeleteKey(IntPtr hKey, string sSubKey);       public static int RecurseDeleteKey(RegistryKey oKey, string sKey)       {          int nStatus;          RegistryKey oSubKey;          oSubKey = oKey.OpenSubKey(sKey);          foreach (string sSubKey in oSubKey.GetSubKeyNames())          {             if ((nStatus = RecurseDeleteKey(oSubKey, sSubKey)) != 0)             {                try { oSubKey.Close(); } catch (Exception) { }                return nStatus;             } …

WDS Discover Image ohne DHCP

Das Problem: Rechner ohne DHCP soll mit WDS beatmet werden. Das Discover-Image besteht aber auf DHCP, findet der Rechner keine Adresse kommt Fehler – macht man in der Zwischenzeit SHIFT+F10 und netsh Interface ip set address „<Verbindungsname, z.B. LAN-Verbindung>“ static <Adresse> <Subnet> <Gateway> hat man zwar eine superdolle statische Adresse aber sobald man den Fehler vom …

PortUsers

Wer schon immer (filterbar) wissen wollte welches Programm in welcher Sitzung (Terminalserver) von welchem Rechner (Terminalserver) mit welchem User auf welche Ports auf welchen Zielen zugreift: PortUsers kann das 😀

RemoteApps und das Logoff-Problem

Selbst wenn man alle Möglichkeiten wie tsconfig.msc/RDP-Tcp/Sitzungen/Wenn das Sitzungslimit erreicht oder die Verbindung getrennt wurde: Sitzung beenden lokale Policy: Computereinstellungen/Adm.Vorlagen/Remotedesktopdienste/Remotedesktopsitzungs-Host/Sitzungslimits/Zeitlimit für die Abmeldung bei RemoteApp-Sitzungen festlegen (aktiviert/sofort) ausnutzt passiert es immer wieder dass Sessions im disconnected Status (wenn auch nur für kurze Zeit) herum lungern. Wenn man nun viele Sessions mit einem Benutzer betreibt und …

Alle Wege führen zur RemoteApp

RemotePrograms.msc kennt ja jeder, weiß jetzt grad nicht ob sie das wegen des großen Erfolges so wie z.B. tsadmin.msc im Windows Server 2012 entsorgt haben. Die die sich mit dem Thema schon mal befasst haben sind vermutlich auch schon über die WMI Klasse Win32_TSPublishedApplication gestolpert. Im Rahmen eines Calls hat mir ein MS Supportler auch …

Java CRL Checks einschalten

Wie wir heute gelernt haben prüft Java Zertifikate per Default nicht auf Revocation (CRL oder OCSP). Abhilfe über Loginscript: AppData/Local AppData ermitteln (SpecialFolders oder HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerUser Shell FoldersLocalAppData, siehe auch unten) und dort eine Datei deployment.properties mit folgendem Inhalt erstellen/hin kopieren: # Allow user to grant permissions to signed content (true by default) deployment.security.askgrantdialog.show=true # Allow user …

Tools

GARCopy – das Ding mit dem man (wenn man Administrator ist und es auch elevated startet) unabhängig von ACLs im Backupkontext Dinge kopieren kann. GARDirSize – das Ding mit dem man (wenn man Administrator ist und es auch elevated startet) unabhängig von ACLs die Größe (Anzahl der Dateien+Bytes) eines Verzeichnisses ermitteln kann. GARDelete – das …

IIS >= 6.0, ASP.NET und VMware.VimClient

Wie ich eben lernen musste kommt VMware.VimClient (Teil von Power CLI) ab 2003/IIS6 nicht mit den dort limitierten Stack von 256 KB (KB932909) zurecht. Man kann das aber umgehen in dem man einen Thread mit entsprechendem Stack startet: public void SomeHandler(object sender,EventArgs e) { Thread oWorker=new Thread(new ParameterizedThreadStart(SomeHandlerWorker),1024*1024*4); // 4 MB Stack oWorker.Start(e); oWorker.Join(); } …

Translate »