code: func NewOpenShellRequest(uri string, params *Parameters) *soap.SoapMessage {
  	if params == nil {
  		params = DefaultParameters
  	}
  
  	message := soap.NewMessage()
  	defaultHeaders(message, uri, params).
  		Action("http://schemas.xmlsoap.org/ws/2004/09/transfer/Create").
  		ResourceURI("http://schemas.microsoft.com/wbem/wsman/1/windows/shell/cmd").
  		AddOption(soap.NewHeaderOption("WINRS_NOPROFILE", "FALSE")).
  		AddOption(soap.NewHeaderOption("WINRS_CODEPAGE", "65001")).
  		Build()
  
  	body := message.CreateBodyElement("Shell", soap.DOM_NS_WIN_SHELL)
  	input := message.CreateElement(body, "InputStreams", soap.DOM_NS_WIN_SHELL)
  	input.SetContent("stdin")
  	output := message.CreateElement(body, "OutputStreams", soap.DOM_NS_WIN_SHELL)
  	output.SetContent("stdout stderr")
  
  	return message
  }
docs: //NewOpenShellRequest makes a new soap request