private NamedPipeProcessMediator( RemoteSessionNamedPipeServer namedPipeServer) : base(false) { if (namedPipeServer == null) { throw new PSArgumentNullException("namedPipeServer"); } _namedPipeServer = namedPipeServer; // Create transport reader/writers from named pipe. originalStdIn = namedPipeServer.TextReader; originalStdOut = new OutOfProcessTextWriter(namedPipeServer.TextWriter); originalStdErr = new NamedPipeErrorTextWriter(namedPipeServer.TextWriter); // Flow impersonation if requested. WindowsIdentity currentIdentity = null; try { currentIdentity = WindowsIdentity.GetCurrent(); } catch (System.Security.SecurityException) { } _windowsIdentityToImpersonate = ((currentIdentity != null) && (currentIdentity.ImpersonationLevel == TokenImpersonationLevel.Impersonation)) ? currentIdentity : null; }
private NamedPipeProcessMediator( RemoteSessionNamedPipeServer namedPipeServer) : base(false) { if (namedPipeServer == null) { throw new PSArgumentNullException("namedPipeServer"); } _namedPipeServer = namedPipeServer; // Create transport reader/writers from named pipe. originalStdIn = namedPipeServer.TextReader; originalStdOut = new OutOfProcessTextWriter(namedPipeServer.TextWriter); originalStdErr = new NamedPipeErrorTextWriter(namedPipeServer.TextWriter); #if !UNIX // Flow impersonation as needed. Utils.TryGetWindowsImpersonatedIdentity(out _windowsIdentityToImpersonate); #endif }
private NamedPipeProcessMediator( RemoteSessionNamedPipeServer namedPipeServer) : base(false) { if (namedPipeServer == null) { throw new PSArgumentNullException("namedPipeServer"); } _namedPipeServer = namedPipeServer; // Create transport reader/writers from named pipe. originalStdIn = namedPipeServer.TextReader; originalStdOut = new OutOfProcessTextWriter(namedPipeServer.TextWriter); originalStdErr = new NamedPipeErrorTextWriter(namedPipeServer.TextWriter); // Flow impersonation if requested. WindowsIdentity currentIdentity = null; try { currentIdentity = WindowsIdentity.GetCurrent(); } catch (System.Security.SecurityException) { } _windowsIdentityToImpersonate = ((currentIdentity != null) && (currentIdentity.ImpersonationLevel == TokenImpersonationLevel.Impersonation)) ? currentIdentity : null; }