Private/Request-TCPCredential.ps1
function Request-TCPCredential { [CmdletBinding()] Param( [Parameter(Mandatory)] [Ref]$Client ) $Client.Value.Client = $Client.Value.Listener.AcceptTcpClient() Write-Verbose -Message 'Getting Stream' $Client.Value.Stream = $Client.Value.Client.GetStream() Write-Verbose -Message 'Opening Negotiation Stream' $Client.Value.Session = New-Object Net.Security.NegotiateStream -ArgumentList $Client.Value.Stream Try { $Client.Value.Session.AuthenticateAsServer( [System.Net.CredentialCache]::DefaultNetworkCredentials, [System.Net.Security.ProtectionLevel]::EncryptAndSign, [System.Security.Principal.TokenImpersonationLevel]::Impersonation ) $AuthMessage = @{ MessageData = ("{0} authenticated as {1} via {2}" -f @($Client.Value.Client.RemoteEndPoint.Address, $Client.Value.Session.RemoteIdentity.Name, $Client.Value.Session.RemoteIdentity.AuthenticationType)) Tags = 'Auth' InformationAction = 'Continue' } Write-Information @AuthMessage } Catch { Write-Warning $_.Exception.Message } } |