async upgradeComplex () {
    this.spinner = new Spinner(`${strings.startingUpgradeComplex} %s`)

    if (this.options.spinner === false) {
      console.log(strings.startingUpgradeComplex)
    } else {
      this.spinner.start()
    }

    const output = await powershell.runUpgrade(this.options.npmVersion, this.options.npmPath)

    this.spinner.stop(false)
    console.log('\n')

    // If we failed to elevate to administrative rights, we have to abort.
    if (output.stdout[0] && output.stdout[0].includes('NOTADMIN')) {
      utils.exit(1, strings.noAdmin)
    }
  }
Upgrades npm in the correct directory, securing and reapplying
existing configuration

@param  {string} version - Version that should be installed
@param  {string} npmPath - Path where npm should be installed
@private