Marc-AndrΓ© Moreau's Avatar

Marc-AndrΓ© Moreau

@awakecoding.com

Remote desktop protocol expert, OSS contributor and Microsoft MVP. I love designing products with Rust, C# and PowerShell. Proud to be CTO at Devolutions. πŸ‡¨πŸ‡¦

4,212
Followers
2,319
Following
2,986
Posts
22.04.2023
Joined
Posts Following

Latest posts by Marc-AndrΓ© Moreau @awakecoding.com

Post image Post image

good news: I can force-override $Env:PSModulePath with a startup hook in #PowerShell

bad news: PowerShellGet is a separate powershell module that doesn't care and does its own detection anyway

07.03.2026 16:47 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 1

I am 😜 I found a way to do it without changing the sources or making my own distribution

07.03.2026 12:37 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

for various reasons, this is hard to do in my case. I've got a native .NET host loading PowerShell and then calling the pwsh.dll entry point, but I can't easily insert more code into it. However, I found out about .NET startup hooks, and it looks like it works... bsky.app/profile/awak...

06.03.2026 22:47 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

well, I think we've got something here. let's startup hook PowerShell to get stuff everyone wanted for years:

06.03.2026 22:46 πŸ‘ 4 πŸ” 1 πŸ’¬ 1 πŸ“Œ 1

I'm considering trying things I wish I didn't have to: github.com/dotnet/runti...

06.03.2026 21:38 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Post image

Why can't PowerShell have nice things? this is not going to be easy to work around

06.03.2026 21:25 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Post image Post image

Argh. how can I prevent PowerShell from automatically adding more paths to PSModulePath, and just accept the one I'm setting in the PSModulePath environment variable before launching the process?

06.03.2026 21:12 πŸ‘ 3 πŸ” 0 πŸ’¬ 3 πŸ“Œ 0
Post image

πŸ”₯ dotnet tool install -g Devolutions.Cirup.Tool πŸ› οΈ

cirup, a Rust tool to perform operations on resource files (.resx, .json, .restext) using SQLite virtual tables, is now prebuilt and published as a dotnet tool with RID-specific packaging!

github.com/Devolutions/...

06.03.2026 02:19 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
Support WinDBG Time Travel Debugging Β· Issue #10 Β· blacktop/ida-mcp-rs First, let me say thanks for this awesome project. I've been using it successfully for the past week, and it totally transformed the way I use IDA. There's one thing I would really wish could be su...

github.com/blacktop/ida...

06.03.2026 02:03 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Just PER will suffice. There's a bit of it in RDP for absolutely no good reason

06.03.2026 01:20 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Preview
RDP NLA with Azure AD: The PKU2U Nightmare This post tackles the challenges of RDP Network Level Authentication (NLA) with Azure AD, labeled as the PKU2U nightmare, offering detailed solutions for common problems. It addresses enabling PKU2U a...

You know what? PKU2U works. I give up. awakecoding.com/posts/rdp-nl...

05.03.2026 22:23 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Hum... the RDP server is hybrid joined, no I'd need to figure out how to unjoin it from the domain to make it pure Entra ID joined

05.03.2026 22:05 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

I've got a pretty decent analysis into what's possible based on the actual decompiled code. It's complicated, as usual, but at least I don't have to trust the docs this time: bsky.app/profile/awak...

05.03.2026 21:56 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Thanks, it'll take some time before I can confirm that configuring it locally works with the customer, but if it does, then this group policy would be the best way to deploy it at scale

05.03.2026 21:55 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

Confirmed by Wireshark, I'm getting STATUS_NO_LOGON_SERVERS (0xD000005E) "No domain controllers are available to service the authentication request." back from the RDP server. It's RDP Entra ID, where are the domain controllers? Azure? Thanks for the unhelpful error code

05.03.2026 21:54 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Is there a group policy for this instead? bsky.app/profile/awak...

05.03.2026 21:31 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

There's no group policy, we're injecting the KDC proxy dynamically inside the RDP client through the SSPI APIs

05.03.2026 21:27 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

ksetup /AddHostToRealmMap .ad.it-help.ninja AD.IT-HELP.NINJA

+ reboot

05.03.2026 19:24 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 1
Post image Post image Post image Post image
05.03.2026 19:19 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 1

It's not my own environment, but what I understood is this is a standardized "red forest" environment where machines are joined to the red domain, but the machines you're connecting to are in separate forests with no trust in between. It's not a concept I'm familiar, I probably got it wrong

05.03.2026 18:12 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

When the docs don't exist, you generate your own docs

05.03.2026 17:14 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Preview
ksetup addhosttorealmmap Reference article for the ksetup addhosttorealmmap command, which adds a service principal name (SPN) mapping between the stated host and the realm.

ksetup /addhosttorealm never did anything useful in my testing: learn.microsoft.com/en-us/window...

05.03.2026 17:06 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

So, what's the proper way to do this? DNS from the domain the machine is connected to has forward zones to the other domains, so technically DNS SRV detection *should* work, but we can't contact the domain controllers from anything other than the KDC proxy.

05.03.2026 17:04 πŸ‘ 0 πŸ” 0 πŸ’¬ 2 πŸ“Œ 0

ksetup commands to force a domain mapping aren't helpful, I never managed to make any of them force a realm name for specific hosts, and even if it did, those are commands that require elevation and a full system reboot to see the effect because they're used by lsass.exe

05.03.2026 17:03 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

ksetup /dumpstate reports the domain to which the machine is joined to as the default realm. I do not want that Kerberos realm to be used by default when connecting to other domains, but that's what happens. The target domain is only reachable through the KDC proxy.

05.03.2026 17:01 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Sysadmins, I need help: a domain-joined machine is consistently picking up the default Kerberos realm from that same domain when connecting to other domains through a KDC proxy. I cannot for the life of me figure out how to get Kerberos in Windows *not* to use that realm name

05.03.2026 17:00 πŸ‘ 2 πŸ” 0 πŸ’¬ 3 πŸ“Œ 0

To be fair the only times I managed to extract the data I wanted from WinDBG was by copy/pasting into ChatGPT such that it would tell me the commands to dump parameters from the x64 registers as I was stepping through a breakpoint on a function for which I gave the C signature from IDA

05.03.2026 12:58 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Also, there is a vast pool of developers that would heavily benefit from time travel debugging but can't do much with the WinDBG command-line window, and have no clue how to dump parameters passed to a function, or navigate their way around. It's arcane knowledge I don't have myself

05.03.2026 12:56 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

The reason I feel TTD is due for a comeback with AI agents is because it becomes much easier to live analysis as if it were static analysis. Record once, load as a file, analyse at your own pace. No complexity of the AI agent having to attach to a live process, set breakpoints, restart process, etc

05.03.2026 12:53 πŸ‘ 1 πŸ” 1 πŸ’¬ 1 πŸ“Œ 0
Preview
CDB Command-Line Options - Windows drivers First-time users of CDB or NTSD should begin with the Debugging Using CDB and NTSD section.

I've never used the CDB command-line but it looks like it doesn't support TTD? learn.microsoft.com/en-us/window...

05.03.2026 02:37 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0