Powershell Anexar texto à descrição do objeto no Active Directory

5

Como posso acrescentar ou preceder a descrição no AD Quero deixar a descrição atual e colocar um texto na frente dele

por exemplo, um computador tem a descrição como "Contabilidade Dept" (sem aspas)

Eu tentei isso:

set-QADComputer -Identity computername
    -Description {Disabled 8/17/2012, Termrpt "$($_.description)"}

Eu entendo isso para a descrição

Disabled 8/17/2012, "$($_.description)"

mas quero que a descrição original precedida do texto seja semelhante à seguinte

Disabled 8/17/2012, Accounting dept

alguma ideia?

Em vez disso, tentei usar parênteses, mas depois coloquei o texto pré-formatado e apaguei o original.

    
por Cheryl 17.08.2012 / 15:17

3 respostas

4

Eu não uso os cmdlets do QWEST AD, por isso não sei a sintaxe exata, mas geralmente a melhor maneira é recuperar a descrição atual, salvá-la em uma variável e escrever apenas $ Current_Desc + $ addendum de volta ao objeto.

    
por 17.08.2012 / 15:20
4

Eu não uso os módulos da Qwest. Se você estiver disposto a usar o módulo Microsoft AD, incluído no RSAT, o seguinte é bastante simples.

Import-Module ActiveDirectory

# Let's check the Description
Get-ADUser jscott -Properties Description |
  Select-Object -Property Description

Description
-----------
Junior Keyboard MRO Tech

# Cool, set it the new value
Get-ADUser jscott -Properties Description |
  ForEach-Object {
    Set-ADUser $_ -Description "Disabled 8/17/2012, Termrpt $($_.Description)"
  }

# Let's check the new Description
Get-ADUser jscott -Properties Description |
  Select-Object -Property Description

Description
-----------
Disabled 8/17/2012, Termrpt Disabled Junior Keyboard MRO Tech

Acho que o que está lhe atrapalhando é o uso de $_ como parâmetro de um cmdlet, em vez de um bloco de script. Eu agrupei Set-ADUser em ForEach_Object , garantindo que $_ seja o objeto do pipeline. Fora de um bloco de script, como no seu caso, usar $_ como um parâmetro retornará $null .

    
por 17.08.2012 / 16:24
0

Além da resposta do MDMarra (me vencer), você também pode definir uma variável de string como igual a um valor acrescentado com += , então algo como $Description += "blah" acrescentaria "blah" ao final de seu valor variável.

( $Description += "blah" sendo ponteiro curto para $Description = $Description + "blah" )

    
por 17.08.2012 / 15:27