문제

Invoke-Command의 함수 내에서 함수를 호출하기를 희망합니다.나는 이것을 제대로하지 않는 것처럼 보입니다."get-group_users"가 인식되지 않습니다.모든 것이 하나의 PS1 스크립트에 있습니다.

잘린 스크립트 :

function get-session {
$session = New-PSSession -ComputerName $ip -Credential $cred -Auth CredSSP
$ComputerName = $cred.Replace('\Admin',"")
$csv = "C:\Scripts\Serverlists\" + $ComputerName + ".txt"
$subcomps = import-csv $csv | foreach-object {$_.Name}

foreach ($ComputerName in $subcomps)
{
$ComputerName
$xmlWriter.WriteStartElement("Computer",$ComputerName)

Invoke-Command -Session $session -ScriptBlock { (get-groups_users -ComputerName $ComputerName) } -ArgumentList $ComputerName

$xmlWriter.WriteEndElement()
}
Remove-PSSession -ComputerName $ip
}



$ip = '172.16.24.11'
$ComputerName = "COMP1"
$user = '\Admin'
$cred = $ComputerName + $user

(get-groups_users -ComputerName $ComputerName)
(get-session -Credential $cred -ComputerName $ip)
.

그래서, get-groups_users 기능을 남겨두고 있습니다.누군가가 모든 것을 설명하는 데 도움이 될 것이라고 생각하면 게시 할 수 있습니다.그것은 긴 것입니다.또한 $xmlwriter 정의를 벗어나고 있습니다.

get-groups_users가 Comp1에서 실행될 때 작동하지만 PSSession를 입력하고 하위 경기에 대한 invoke-command에서 invoke-moded에서 사용해보십시오.

뭔가 잊어 버리고 있습니까?

도움이 되었습니까?

해결책

get-groups_users를 호출 할 때 -ScriptBlock 매개 변수에 Invoke-Command 함수 정의를 포함시켜야합니다.그렇지 않은 경우 원격 세션에는 get-groups_users 함수에 대한 지식이 없습니다.

여기를 고치는 방법은 다음과 같습니다.

$ScriptBlock = {
    function get-groups_users {
         ############ Put your function's code here ############
    }
    (get-groups_users -ComputerName $ComputerName)
};
Invoke-Command -Session $session -ScriptBlock $ScriptBlock -ArgumentList $ComputerName
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top