함수(Function) 역할 도메인/원격 함수 실행

6688 단어 function
함수는 변수와 마찬가지로 역할 영역이 있습니다: Global, Script, Local, Private
Global: 전체 PowerShell 세션에 작용합니다. PowerShell 세션이 끝나지 않으면 Global에 의해 수정된 변수와 함수를 사용할 수 있습니다.
Script: 스크립트가 실행되는 동안에만 사용되며, 스크립트가 실행되면 스크립트에 수정된 변수와 함수를 사용할 수 없습니다.
Local: 기본 역할 영역, 변수는 현재와 끼워 넣은 역할 영역에서 볼 수 있으며, 복제 작업 문법은 현재local 역할 영역에서 변수 값을 수정할 수 있습니다.
Private: 가장 엄격한 역할 영역입니다. 변수는 현재 역할 영역에서만 유효합니다.이 키워드를 통해 하위 스크립트 블록에 변수를 숨길 수 있습니다.
 
전역 함수 선언:
function global:test{param($x,$y)$x * $y}
실행 함수:
test 2 3
test -y 2 -x 3
이 전역 함수는 invoke-command를 통해 원격 컴퓨터에서 실행될 때 식별되지 않습니다.
 
function ab{param($a,$b)$c=$a-$breturn $c}
$a=10$b=20
함수 & $function: ab 5 8
 
이 컴퓨터가 정의한 함수 보기:dir functions:
 
이 매개변수가 있는 함수를 원격 시스템에서 실행하려면 다음과 같이 하십시오.
방법 1:
 1 function ab
 2 {
 3  param($a,$b)
 4  $c=$a+$b
 5  return $c
 6 }
 7 
 8 $a=10
 9 $b=20
10 invoke-command -computername 172.16.129.62 -Credential $cred -scriptblock ${function:ab} -ArgumentList $a,$b

이렇게 되면, 스크립트블록에 다른 문장을 추가해서 실행할 방법이 없습니다.
scriptblock에서만 함수를 정의할 수 있습니다. 원격 컴퓨터에서 함수를 정의한 후에 호출합니다. 다음과 같습니다.
 
1  invoke-command -computername 172.16.129.62 -Credential $cred -scriptblock { param ($a,$b)
2  function ab
3  {
4   param($a,$b)
5   $c=$a-$b
6   return $c
7  }
8   ab $a $b
9 }-ArgumentList $a,$b

param ($a, $b) [또는 Function FunctionName ($a, $b)] 의 변수는 순서대로 수신됩니다. - ArgumentList 부분의 첫 번째 변수는 $a이고 두 번째 변수는 $b입니다.만약-argumentList 부분의 $a가 뒤에 있고 $b가 앞에 있다면 $b의 값은 첫 번째 변수이고 $a의 값은 두 번째 변수입니다.
-argumentList의 $a, $b는 실제로param의 $a, $b와 아무런 관계가 없습니다.
 
방법 2:
 1 function localFunc($name,$age){
 2  write-host “name=$name,age=$age 3 }
 4  
 5 function Get-FuncDef($name)
 6 {
 7  $func="Function:\$name"
 8  if(Test-Path $func)
 9  {
10   return 'function {0} {{ {1} }}' -f $name,(dir $func).Definition
11  }
12 }
13  
14 Invoke-command -ComputerName localhost -ScriptBlock {
15 param($funcDef,$name,$age)
16 Invoke-Expression $funcDef
17 localFunc -name $name -age $age
18 } -ArgumentList (Get-FuncDef localFunc),'xiaoxiaoJiao',30

방법 2:http://www.pstips.net/question/2634.html

좋은 웹페이지 즐겨찾기