A execução dos comandos do powershell arruinou os usuários

2

O computador onde o script está sendo executado está no domínio único, eu o chamarei de domínio interno. Os usuários que são testados estão no outro domínio (externo).

Eu fiz um script para verificar se o usuário existe em ambos os domínios. Aqui está um trecho do script que não causa o problema.

$domain = ‘domain.com’;
$user = ‘username’;

$objuser = New-Object System.Security.Principal.NTAccount($domain, $user);
$objUser.Translate([System.Security.Principal.SecurityIdentifier]) > $nil;

Antes eu tentei executar a terceira linha como esta que causou os problemas:

$objuser = New-Object System.Security.Principal.NTAccount('[email protected]');

O problema que estou tendo agora é que alguns usuários do domínio externo não são mostrados corretamente no Windows.

O bom exemplo é a guia de segurança de propriedades do arquivo. O usuário é mostrado como

DOMAIN \ [email protected] em vez de apenas DOMAIN \ username

Isso faz com que todos os tipos de coisas estranhas, como usuários que desejam acessar essa pasta, perdem permissões nela.

Existe uma maneira de recuperar o comportamento normal? Reiniciar a máquina não é uma opção, infelizmente.

    
por Vladimir 09.10.2013 / 13:11

2 respostas

0

Eu encontrei a solução. Pelo que eu descobri, eu precisava dizer ao servidor para obter o SID novamente e não usar o cashe.

Usar esse link de suporte da Microsoft solucionou o problema imediatamente, sem a reinicialização, e o usuário restante com o nome de usuário com defeito resolveu tudo.

link

Provavelmente, é seguro reativá-lo depois que o problema for resolvido.

    
por 14.10.2013 / 13:19
1

Você está chamando dois construtores diferentes, Vladimir. O trabalho faz exatamente o que você espera: definir o domínio e usuário de duas seqüências separadas. O segundo construtor, que leva uma única cadeia, espera apenas um nome de usuário e provavelmente usa o domínio da máquina em que o comando está sendo executado como padrão msdn é um pouco carente disso.

O problema é que, para todos os efeitos, o nome de usuário é [email protected], que é onde está o problema.

Recuperando o comportamento normal? tente alterar o nome do usuário ou (gasp) recriando o objeto da conta.

Se você quer dizer comportamento normal como na execução da terceira linha com uma única entrada de string, tente

$objuser = New-Object System.Security.Principal.NTAccount('username');
    
por 09.10.2013 / 13:47