반응형
배열 또는 목록을 PowerShell 함수에 매개 변수로 전달하는 방법은 무엇입니까?
30일 이내에 만료되는 인증서 목록을 얻기 위해 PowerShell 스크립트를 작성하고 있습니다.스크립트는 작동하고 있지만, 문제는 앱과 프레스 서버가 너무 많아서 스크립트 코드를 최소화하고 싶습니다.내 기능은 다음과 같습니다.
function CheckCert($ComputerNames)
{
$deadline = (Get-Date).AddDays($global:threshold) # Set deadline date
Invoke-Command -ComputerName $ComputerNames { Dir Cert:\LocalMachine\My } |
foreach {
If ($_.NotAfter -le $deadline)
{
$_ | Select Issuer, Subject, NotAfter, @{Label="Expires In (Days)";Expression={($_.NotAfter - (Get-Date)).Days}}
}
}
}
그리고 저는 이 기능을 다음과 같이 부릅니다.
Switch ($xMenu1)
{
1 {CheckCert -ComputerNames "CUKIRUNCSVR0242"}
2 {CheckCert}
3 {CheckCert}
...
저는 serv1, serv2, serv3와 같은 컴퓨터 이름을 전달하고 싶습니다. 이 서버 수는 메뉴에서 선택한 옵션에 따라 1에서 6까지 다양합니다. **또는 다른 환경의 서버 목록을 정의하고 목록 이름을 매개 변수로 전달하고 CheckCert 함수를 수정하여 각 서버에 대해 루프오버하여 만료된 인증서 세부 정보를 가져올 수 있습니까?
Switch ($xMenu1)
{
1 {CheckCert -ComputerNames CIT_envList}
2 {CheckCert -ComputerNames SIT_envList}
3 {CheckCert -ComputerNames Prod_envList}
...
서버 목록은 다음과 같습니다.
CIT_envList = serv1, serv2
SIT_envList = serv1, serv2, serv3,
PROD_envList = serv1, serv2, serv3, serv4
사용해 보십시오.
function CheckCert([string[]]$ComputerNames)
{
$deadline = (Get-Date).AddDays($global:threshold) # Set deadline date
foreach ($computer in $ComputerNames)
{
Invoke-Command -ComputerName $Computer { Dir Cert:\LocalMachine\My } |
foreach {
If ($_.NotAfter -le $deadline)
{
$_ | Select Issuer, Subject, NotAfter, @{N="Expires In (Days)";E={($_.NotAfter - (Get-Date)).Days}}
}
}
}
}
PS 4.0 이상을 사용하면 다음과 같이 정의할 수 있습니다.CheckCert([array]$ComputerNames)
뿐만 아니라.
언급URL : https://stackoverflow.com/questions/22656450/how-do-i-pass-an-array-or-list-as-a-parameter-to-a-powershell-function
반응형
'programing' 카테고리의 다른 글
"with open(...)"과 "sys.stdout" 둘 다 잘 다루는 방법은? (0) | 2023.08.22 |
---|---|
Powershell'이(가) 내부 또는 외부 명령, 작동 가능한 프로그램 또는 배치 파일로 인식되지 않습니다. (0) | 2023.08.22 |
Tomcat에서 배포되지 않은 메모리 누수를 방지할 수 있는 방법이 있습니까? (0) | 2023.08.22 |
CSS 크로스 브라우저로 수직 텍스트를 어떻게 그릴 수 있습니까? (0) | 2023.08.22 |
그루비를 사용하여 오라클에서 커서를 가져오는 방법은 무엇입니까? (0) | 2023.08.22 |