{"id":15192244,"url":"https://github.com/powershell/psl-omi-provider","last_synced_at":"2025-10-02T07:30:24.141Z","repository":{"id":65985534,"uuid":"49680471","full_name":"PowerShell/psl-omi-provider","owner":"PowerShell","description":"PSRP Linux support library","archived":true,"fork":false,"pushed_at":"2020-09-04T20:52:00.000Z","size":396,"stargazers_count":101,"open_issues_count":17,"forks_count":22,"subscribers_count":41,"default_branch":"master","last_synced_at":"2025-01-21T12:35:57.741Z","etag":null,"topics":["linux","omi","omi-provider","powershell"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PowerShell.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-01-14T22:50:16.000Z","updated_at":"2024-11-15T07:51:03.000Z","dependencies_parsed_at":"2023-02-19T19:00:36.090Z","dependency_job_id":null,"html_url":"https://github.com/PowerShell/psl-omi-provider","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/PowerShell/psl-omi-provider","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PowerShell%2Fpsl-omi-provider","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PowerShell%2Fpsl-omi-provider/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PowerShell%2Fpsl-omi-provider/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PowerShell%2Fpsl-omi-provider/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PowerShell","download_url":"https://codeload.github.com/PowerShell/psl-omi-provider/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PowerShell%2Fpsl-omi-provider/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":277974402,"owners_count":25908396,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-02T02:00:08.890Z","response_time":67,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["linux","omi","omi-provider","powershell"],"created_at":"2024-09-27T21:20:21.642Z","updated_at":"2025-10-02T07:30:23.855Z","avatar_url":"https://github.com/PowerShell.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"PowerShell Remoting Protocol [![Build Status](https://travis-ci.org/PowerShell/psl-omi-provider.svg?branch=master)](https://travis-ci.org/PowerShell/psl-omi-provider)\n============================\n\nPSRP communication is tunneled through the [Open Management\nInfrastructure (OMI)][OMI] using this OMI provider.\n\n[OMI]: https://github.com/Microsoft/omi\n\nTwo parts of PSRP are available - server and client.  The client PSRP part (libpsrpclient) is under development, and will be distributed together with PowerShell. The server PSRP package is available now and should be installed after installing [OMI][] as it is an OMI provider.\n\nGet PSRP-Server\n===============\n\nYou can download and install PSRP-Server from following links:\n\n| Platform     | Releases           | Link                             |\n|--------------|--------------------|----------------------------------|\n| Linux        | Debian             | [psrp-1.4.1-28.universal.x64.deb] |\n| Linux        | RPM                | [psrp-1.4.1-28.universal.x64.rpm] |\n\n[psrp-1.4.1-28.universal.x64.deb]: https://github.com/PowerShell/psl-omi-provider/releases/download/v1.4.1-28/psrp-1.4.1-28.universal.x64.deb\n[psrp-1.4.1-28.universal.x64.rpm]: https://github.com/PowerShell/psl-omi-provider/releases/download/v1.4.1-28/psrp-1.4.1-28.universal.x64.rpm\n\nAlternatively, you can now also download from Microsoft Repo. Instructions\non setting this up can be found [here](https://technet.microsoft.com/en-us/windows-server-docs/compute/Linux-Package-Repository-for-Microsoft-Software).  Follow the instructions for your platform.  You can then use your platform's package tool to install OMI (i.e. \"sudo apt-get install omi-psrp-server\", or \"sudo yum install omi-psrp-server\").\n\nPackage Requirement\n-------------------\n\nPrior to installing PSRP, make sure that [OMI][] and [PowerShell][] are installed.\n\nDevelopment Environment\n=======================\n\nToolchain Setup\n---------------\n\nPSRP has [OMI][OMI] as a submodule so install those dependencies first. Instructions are located in the [build-omi README.md][build-omi-readme].\n\nPSRP requires the following additional dependent packages:\n\n- On Ubuntu 14.04 and Ubuntu 16.04\n```sh\nsudo apt-get install cmake\n```\n- On CentOS 7.x\n```sh\nsudo yum install cmake\n```\nAlso install [PowerShell][] from the latest release per their instructions.\n\n[build-omi-readme]: https://github.com/Microsoft/Build-omi/blob/master/README.md#dependencies-to-build-a-native-package\n[PowerShell]: https://github.com/PowerShell/PowerShell\n\nGit Setup\n---------\n\nPSRP has a submodule, so clone recursively.\n\n```sh\ngit clone --recursive https://github.com/PowerShell/psl-omi-provider.git\n```\n\nBuilding\n--------\n\nRun `make debug` or `make release` to build OMI and the provider.\n\nIn debug mode, this script first builds OMI in developer mode:\n\n```sh\npushd omi/Unix\n./configure --dev\nmake -j\npopd\n```\n\nThen it builds and registers the provider:\n\n```sh\npushd src\ncmake -DCMAKE_BUILD_TYPE=Debug .\nmake -j\npopd\n```\n\nIn release mode, this script will build omi, the provider, and packages (for distribution).\n\nRunning\n=======\n\nConnecting from Windows to Linux\n--------------------------------\n\nSome initial setup on Windows is required. Open an administrative command\nprompt and execute the following:\n\n```cmd\nwinrm set winrm/config/Client @{TrustedHosts=\"*\"}\n```\n\n\u003e You can also set the `TrustedHosts` to include the target's IP address.\n\nThen on Linux, launch `omiserver` (if you installed OMI from its installation package, omiserver\nis probably already running):\n\n```sh\n./run.sh\n```\n\nNow in a PowerShell prompt on Windows (opened after setting the WinRM client\nconfigurations):\n\n```powershell\n$cred = Get-Credential\n$o = New-PSSessionOption -SkipCACheck -SkipRevocationCheck -SkipCNCheck\nEnter-PSSession -ComputerName \u003cIP address of Linux machine\u003e -Credential $cred -Authentication basic -UseSSL -SessionOption $o\n```\n\nThe IP address of the Linux machine can be obtained with:\n\n```sh\nip -f inet addr show dev eth0\n```\n\nConnecting from Linux to Windows\n--------------------------------\n\nFor Centos 7.3 and later, and Ubuntu 16.04 or later, Powershell supports Secure Protected Negotiated authentication (SPNEGO). \nThis allows the use of NTLM based authentication and encryption of traffic over the http connection.  Use of SPNEGO authentication is\nmore secure than basic authentication on http, and less complex than https.  Support of NTLM authentication on MacOS is deprecated by apple. \nWe are currently working on Kerberos protocol support which will allow SPNEGO or direct Kerberos authentication on MacOS as well as at least some\nolder Linux distributions.\n\nIn order to perform NTLM authentication there must be matching credentials on both ends of the transaction. The necessary setup of the ntlm credentials\nfor both server and client is described in the document [setup-ntlm-omi]( https://github.com/Microsoft/omi/blob/master/Unix/doc/setup-ntlm-omi.md). \n\nNote that the server side will need an additional registry setting to enable administrators, other than the built in administrator, to connect using NTLM. Refer to the LocalAccountTokenFilterPolicy registry setting under Negotiate Authentication in [Authentication for Remote Connections]( https://msdn.microsoft.com/en-us/library/aa384295(v=vs.85).aspx )\n\nIf you are not using SPNEGO authentication, or wish to use basic authentication on http, the WinRM server needs to be configured to allow unencrypted traffic\nand accept basic authentication for inbound connections. *Note that this sends passwords over unencrypted http. We do not recommend it*.  If the http socket is enabled\nand basic authentication is allowed, there is currently no way to prevent the use of basic authentication over http, which exposes passwords.  \n\nTo enable basic auth, on Windows in an administrative command prompt run:\n```cmd\nwinrm set winrm/config/Service/Auth @{Basic=\"true\"}\n```\nBasic authentication has acceptable security over https, but all communications using basic authentication over http are unencrypted. Connections using \nSPNEGO authentication are encrypted, and have acceptable security. \n\nTo enable unencrypted communication over http on Windows in an administrative command prompt you must also run:\n```cmd\nwinrm set winrm/config/Service @{AllowUnencrypted=\"true\"}\n```\nBasic authentication with WinRM can only access local machine accounts so you will need to create a local account on your Windows machine that is part of the administrator group.a SPNEGO connections can use domain credentials. \n\n\nBuilding this repository generates two new binaries that need to be picked up instead of the ones included by PowerShell for Linux itself. \nRun PowerShell as:\n\n```sh\nexport LD_LIBRARY_PATH=psl-omi-provider-path/src:psl-omi-provider-path/omi/Unix/output/lib:${LD_LIBRARY_PATH} \u0026\u0026 powershell\n```\n\nwhere psl-omi-provider-path is where you enlisted your psl-omi-provider code.\n\nNow in PowerShell prompt on Linux you can connect to Windows using this command:\n\n```powershell\n$cred = Get-Credential\nEnter-PSSession -ComputerName \u003cIP address of windows machine\u003e -Credential $cred -Authentication basic\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpowershell%2Fpsl-omi-provider","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpowershell%2Fpsl-omi-provider","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpowershell%2Fpsl-omi-provider/lists"}