“o powershell parou de funcionar” na saída do PS após criar o usuário IIS

“o powershell parou de funcionar” na saída do PS após criar o usuário IIS

Em uma caixa do Windows Server 2012, estou usando PS para criar um novo usuário IIS (para implantações automatizadas usando MSDeploy). O comando em si parece funcionar bem - o usuário é criado - mas assim que eu saio da minha sessão do PowerShell (digitando exitou apenas fechando a janela de comando), uma caixa de diálogo é exibida informando "o powershell parou de funcionar", com os seguintes detalhes :

Problem signature:
  Problem Event Name:   PowerShell
  NameOfExe:    powershell.exe
  FileVersionOfSystemManagementAutomation:  6.2.9200.16628
  InnermostExceptionType:   Runtime.InteropServices.InvalidComObject
  OutermostExceptionType:   Runtime.InteropServices.InvalidComObject
  DeepestPowerShellFrame:   unknown
  DeepestFrame: System.StubHelpers.StubHelpers.GetCOMIPFromRCW
  ThreadName:   unknown
  OS Version:   6.2.9200.2.0.0.400.8
  Locale ID:    1033

Os comandos PS em questão são:

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Web.Management")
[Microsoft.Web.Management.Server.ManagementAuthentication]::CreateUser("Foo", "Bar")

Por que isso está acontecendo e como posso evitá-lo?

EDITAR:Também confirmei que isso é um problema com o PowerShell 4.0, então adicionei essa tag. Eu também enviei emConectar.

ATUALIZAR:Parece que o Windows Server 2012 R2 não possui esse mesmo bug.

Responder1

Post antigo, mas me deparei exatamente com esse problema e precisava de ajuda com ele. Espero que esta resposta ajude outra pessoa.

Isso estava acontecendo comigo no Windows Server 2012 R2 executando o PowerShell 4. Minha solução não é exatamente uma solução verdadeira, mas me dá o que eu precisava. O que fiz foi colocar essa operação em um "thread" de segundo plano para que o processo principal não fosse bloqueado pela janela pop-up indicando que o PowerShell travou. Observação O PowerShell só estava travando para mim quando executei um script que fazia isso por meio do cmd ou do Microsoft Release Management. Ao chamar o script diretamente em uma janela do PowerShell, ele não travou. Mesmo quando estava travando, tudo que eu queria que o script fizesse estava sendo executado. Ele só travou depois que o script terminou.

Aqui está um pouco do meu código

param($password)

$jobScript = {
Try
{
    <# Clear the $Error variable so errors do not build up when debugging this script #>
    $Error.Clear()

    $userName = "SomeUser"

    If([ADSI]::Exists("WinNT://./$userName"))
    {
        Add-Type -Path "C:\windows\system32\inetsrv\Microsoft.Web.Management.dll"
        Add-Type -Path "C:\windows\system32\inetsrv\Microsoft.Web.Administration.dll"

        <# Set IIS Permissions on Default Web Site #>
        Try
        {
            $errorMessage = "Error setting IIS Permissions on Default Web Site for $userName"
            [Microsoft.Web.Management.Server.ManagementAuthorization]::Grant("$userName", "Default Web Site", $false)
            Write-Output "IIS Permissions set on Default Web Site for $userName"
        }
        Catch <# Tried catching the specific exception thrown, but was not working #>
        {
            Write-Output "IIS Permissions already set on Default Web Site for $userName"
        }
    }
    Else
    {
        $errorMessage = "The SomeUser user must be created prior to running this script"
        Write-Output $errorMessage
        Throw $errorMessage
    }
}
Catch
{
    # Signal failure to Microsoft Release Management
    Write-Error "$errorMessage - $Error"
}
}

$job = Start-Job $jobScript
Wait-Job $job
Receive-Job $job

Responder2

Resolvido - erro "O Powershell parou de funcionar" ao iniciar o powershell ou o powershell_ise. Este erro não acontecia ao iniciar estes programas “Executar como Administrador”. Todos os 20 servidores físicos e virtuais nesta rede enfrentam esse problema. Parece estar relacionado ao Windows Management Framework. Todos os servidores possuem o Windows Management Framework V5.1 instalado.

Isso resolveu o erro em todos os servidores testados:

Instale o Windows Management Framework se ainda não estiver instalado.

https://docs.microsoft.com/en-us/powershell/scripting/wmf/overview?view=powershell-6

Se o seu computador já tiver o Windows Management Framework instalado, instale esta atualização:

http://www.catalog.update.microsoft.com/Search.aspx?q=3191564

Depois de instalado, reinicie o servidor.

Por favor vote se você achar isso útil.

informação relacionada