public PSWrapper(InputOutputBuffers buffers, Action exitCallback) { _buffers = buffers; _exitCallback = exitCallback; _psRemoteHost = new PSRemoteHost(buffers, this); var sessionState = InitialSessionState.CreateDefault(); sessionState.Variables.Add(new SessionStateVariableEntry("cls_handler", new ClearHostHandler(buffers),"cls_handler")); _runspace = RunspaceFactory.CreateRunspace(_psRemoteHost, sessionState); _runspace.Open(); using (var powerShell = PowerShell.Create()) { powerShell.Runspace = _runspace; powerShell.AddScript("function Clear-Host() { $cls_handler.Clear() }"); powerShell.Invoke(); } }