여기에 간단한 코드입니다 :은 PowerShell을 함수에서 파이프 라인을 통과하려고
$sccmexe ="C:\Program Files (x86)\SCCM Remote Control Toolset\CmRcViewer.exe"
$ScriptName = $MyInvocation.MyCommand.Name
Write-Host $ScriptName
$a = Read-Host -Prompt 'Please type the computername (or Enter for list)'
getcomputer $a
foreach ($computer in $computers) {
if ((Test-Connection -ComputerName $computer -Count 1 -Quiet) -eq $true) {
& $sccmexe $computer
} else {
Write-Host "$computer offline"
}
}
는 내가 뭘 찾고하는 것 같다
function getcomputer() {
if (($a.Length) -eq "1") {
if (-not(Test-Path "C:\users\ka1\documents\listofmachines$a.txt")) {
Write-Host "File C:\users\ka1\documents\listofmachines$a.txt not Found"
exit
}
$comps = gc "C:\users\ka1\documents\listofmachines$a.txt"
}
if (-not($a)) {
if (-not(Test-Path "C:\users\ka1\documents\listofmachines.txt")) {
Write-Host "File C:\users\ka1\documents\listofmachines.txt not Found"
exit
}
$comps = gc "C:\users\ka1\documents\listofmachines.txt"
}
return $comps
}
이 getcomputer
기능이 여기에 처음 PowerShell에서 호출됩니다 간단하게, 그냥 메인 스크립트에 $Comps
파이프 라인 (컴퓨터를 처리 할 수 있도록)을 반환합니다. 나는 그것을 $a
으로 유지해야하며 그것을 변경하지 않고 $comps
으로 변경해야합니까?
당신이 그것을 사용하는 방법이 명확하지 않다 코드를 보면 왜 당신은 할 수 그냥'return $ comp'하지 마라. 또한 {} 중괄호는 불균형, 들여 쓰기는 오도 된 것입니다. 코드를 관련 최소값 ([MCVE] (https://stackoverflow.com/help/mcve))으로 줄이면 도움이됩니다. – wOxxOm
return $ comp를 사용하고 싶지만 파이프 라인을 반환하지 않는 것 같습니다. 나는 뭔가를 얻지 못할 것이라고 확신한다. 이 코드는 내가 작업하고있는 listofmachinesx.txt 파일을 가져옵니다. listofmachinesa.txt가 있으면 모든 기계를로드하고 코딩 한 항목을로드합니다. –