2014-09-05 4 views
0

원격 서버에서 다음과 같은 간단한 powershell 명령을 실행했습니다. 그러나 나는 NET LOCALGROUP 명령에 변수를 전달해야합니다 원격 연결을 그대로powershell 인수를 powershell 이외의 명령에 전달하려면 어떻게합니까?

$serverName = "SCO32" 
$groupName = "SCO33_Local_Admins" 
$Session = New-PSSession -ComputerName $serverName 

Invoke-Command -Session $Session -ScriptBlock { 

$args[1] 
$args[0] 

net localgroup administrators domainname\$args[1] /ADD 

} -ArgumentList $serverName, $groupName 

인수가 제대로 전달하는, 단지는 $를 사용하려고하기 때문에 명령을 실행할 수있을 것 같지 않습니다 args [1]은 도메인 이름이 아닌 리터럴로 \ SCO33_Local_Admins입니다.

미리 감사드립니다.

Invoke-Command -Session $Session -ScriptBlock { 
    param($servername, $group) 
    net localgroup administrators domainname\$servername /ADD 
} -ArgumentList $serverName, $groupName 

또는 v3의

Invoke-Command -Session $Session -ScriptBlock { 
    net localgroup administrators domainname\${using:servername} /ADD 
} 

또는 : V2에서

+0

[this script] (http://gallery.technet.microsoft.com/scriptcenter/Add-AD- UserGroup-to-Local-fe5e9239 # content)를 사용하고 있습니다. – TheMadTechnician

+0

@TheMadTechnician - 링크 주셔서 감사합니다. 그러나 이것은 더 큰 무언가의 일부이며 동시에 배우고 싶습니다. 감사. –

+0

ADSI를 사용하는 것이 좋습니다. –

답변

2
$servername = 'sv1' 

Invoke-Command -Session $Session -ScriptBlock { 
    net localgroup administrators domainname\$($args[1]) /ADD 
} -ArgumentList $serverName, $groupName 
+1

Thanks v3은 제 신청에 완벽하게 작동합니다. –

0

그냥 같은 함수 또는 당신이 매개 변수를 지정할 수있는 스크립트에 스크립트 블록. 자동 $ args를 사용하는 것이 효과가 없을 수도 있습니다.

$serverName = "SCO32" 
$groupName = "SCO33_Local_Admins" 
$Session = New-PSSession -ComputerName $serverName 

Invoke-Command -Session $Session -ScriptBlock { 
Param($SrvName,$GrpName) 
net localgroup administrators domainname\$GrpName /ADD 

} -ArgumentList $serverName, $groupName 
관련 문제