Pergunta

I'm new to powershell and my first module is for simply adding users to the local admin group on remote computers. It looks like:

function AddAdmin {

[CmdletBinding()]
Param(
[Parameter (Mandatory=$True,ValueFromPipeline=$True,Position=1) ]
            [string[]]$Computer,
[Parameter (Mandatory=$True,ValueFromPipeline=$True,Position=2) ]
            [string]$username
)
$Domain = "the domain"
$Group = [ADSI]"WinNT://$Computer/Administrators,group"
$Usertoadd = [ADSI]"WinNT://$Domain/$username,user"
$Group.Add($Usertoadd.Path)
}

so I can just type addadmin computername username and it gets added. I want to do the same for groups, the problem I'm having is figuring out how to set a parameter that has multiple values/words. For example let's say I want to add a group called Executive Team to local admins. addadmin computername executive team doesn't work - it only picks up executive as the value.

Googled quite a bit and can't seem to figure this out, I'm sure I'm missing something simple.

Foi útil?

Solução

You just have to put the multiple words value into double quotes :

addadmin computername "executive team"

Outras dicas

Positions start at 0, just FYI, and while JPBlanc's answer is correct (and honestly better from a technical standpoint) you should be able to add this to your Parameter list for the User Name to get the same results without having to put them in quotes.

ValueFromRemainingArguments = $true

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top