Redefina ou apague as sessões remotas do Powershell

2

Eu uso um script Powershell remoto para adicionar uma máquina a um domínio. Reinicializações da máquina, é adicionado ao domínio, tudo bem.

$Uri = Get-AzureWinRMUri -ServiceName $ServiceName -Name $VMName -Verbose
$PSSession = New-PSSession -ConnectionUri $Uri -Credential $Credential -Verbose
$PSDomainSession = New-PSSession -ConnectionUri $Uri -Credential $DomainCredential -Verbose

Invoke-Command -Session $PSSession -ScriptBlock { Add-Computer -DomainName $Using:DomainName -Credential $Using:DomainCredential -Restart -Passthru -Verbose }

Ao tentar usar a sessão de credenciais de domínio definida anteriormente depois que a máquina voltar a ficar on-line:

Invoke-Command -Session $PSDomainSession -ScriptBlock { ps }

esse erro aparece:

Cannot invoke pipeline because runspace is not in the Opened state. Current state of runspace is 'Broken'.
    + CategoryInfo          : OperationStopped: (Microsoft.Power...tHelperRunspace:ExecutionCmdletHelperRunspace) [],
   InvalidRunspaceStateException
    + FullyQualifiedErrorId : InvalidSessionState,myvm.cloudapp.net

Como redefinir ou excluir as sessões "quebradas" existentes somente para esta máquina? Eles estão listados com Get-PSSsesion.

    
por Razvan Zoitanu 27.04.2015 / 16:10

1 resposta

2

Aguarde até que a máquina volte a ficar on-line e, finalmente, limpe usando Remove-PSSession :

$Uri = Get-AzureWinRMUri -ServiceName $ServiceName -Name $VMName -Verbose
$PSSession = New-PSSession -ConnectionUri $Uri -Credential $Credential -Verbose
$PSDomainSessionCreate = { New-PSSession -ConnectionUri $Uri -Credential $DomainCredential -Verbose }

Invoke-Command -Session $PSSession -ScriptBlock { Add-Computer -DomainName $Using:DomainName -Credential $Using:DomainCredential -Restart -Passthru -Verbose }
# Wait for machine to restart
$PSDomainSession = &$PSDomainSessionCreate
# Use $PSDomainSession to configure the machine
# Then cleanup using the Remove-PSSession cmdlet as suggested by @Andy
Remove-PSSession -Session $PSSession,$PSDomainSession
    
por 27.04.2015 / 17:41