lazywinadmin/AdsiPS

Compatibility with .Net Core framework to make the module cross platform (compatible with linux/macos)

lazywinadmin opened this issue ยท 7 comments

The system.directoryservices class is in preview version :
https://dotnet.myget.org/feed/dotnet-core/package/nuget/System.DirectoryServices
(The feed : https://dotnet.myget.org/gallery/dotnet-core)
To install it in Linux (Debian 8) with PackageManagement :

  • Add Feed in sources :
    PS > Register-PackageSource -Name 'dotnet-core' -Location https://dotnet.myget.org/F/dotnet-core/api/v2 -Provider NuGet

  • To find package preview :
    PS > Find-Package System.DirectoryServices -Source dotnet-core -AllowPrereleaseVersions -Force

  • To install package preview :
    PS > Find-Package System.DirectoryServices -Source dotnet-core -AllowPrereleaseVersions -Force | Install-Package -Force

Before this, you need to install 4 dependecies with the same method :

  • System.IO.FileSystem.AccessControl
  • System.Security.AccessControl
  • System.Security.Permissions
  • System.Security.Principal.Windows

All package downloaded in : /usr/local/share/PackageManagement/NuGet/Packages/

Every packages have a dll file in ./"PackageName"/lib/netstandard2.0. Put them in /usr/share/dotnet/shared/Microsoft.NetCore.App/2.0.0

I'm here now. I did not succed to load the System.DirectoryServices.dll.

@lazywinadmin I don't know if you've tried this but if I import the PSCoreWindowsCompat package from PowerShell Gallery I've been able to use the AdsiPS module, at least in PowerShell Core on Windows. I haven't really tested much yet but it looks promising. ๐Ÿ˜ƒ

Thanks @gwojan ! Looks promising indeed. Will give it a shot probably in January.

As mentioned by @LxLeChat there is some new capabilities in .Net Core 3:
https://docs.microsoft.com/en-us/dotnet/api/?view=netcore-3.0&term=direct

To investigate

I Make some test on Centos VM which is integrate into the domain ADDS but with no success I have all Namespaces.
image (5)
img1
image (2)
img2

Thanks for checking @JM2K69
what do you see if you do [System.DirectoryServices.ActiveDirectory]|gm -static

I will test it not this weekend but Monday. ๐Ÿ˜‰