Powershell 스크립트를 사용하여 IISRESET을 수행하는 방법
PowerShell 스크립트로 IISRESET을 수행하는 방법을 아는 사람?파워를 사용하고 있습니다.Windows 2008 상자에 PowerShell 1.0이 설치된 GUI 편집기.
Invoke-Command cmdlet을 사용하면 다음 작업을 수행할 수 있습니다.
invoke-command -scriptblock {iisreset}
업데이트:
또한 &call 연산자를 사용하여 명령을 단순화할 수 있습니다.
& {iisreset}
사용한 적이 있음& {iisreset}
가끔 실패를 거듭하면서 이 점을 생각해 봅니다.
Start-Process "iisreset.exe" -NoNewWindow -Wait
이제 그것은 기다려집니다.iisreset.exe
우아하게 끝내려고요
이것은 저에게 잘 맞습니다.이 응용 프로그램에서는 반환 코드에 관심이 없습니다.
Start-Process -FilePath C:\Windows\System32\iisreset.exe -ArgumentList /RESTART -RedirectStandardOutput .\iisreset.txt
Get-Content .\iisreset.txt | Write-Log -Level Info
Write-Log cmdlet은 제가 로깅에 사용하는 맞춤형이지만, 다른 것으로 대체할 수도 있습니다.
이것이 아주 오래된 것은 알지만, 파워셸의 명령줄에서 어떤 명령줄 프로세스도 실행할 수 있습니다.따라서 필요한 스위치를 사용하여 IISReset을 호출하는 스크립트가 필요합니다.
iisreset.exe
는 컴퓨터 이름을 매개 변수로 지원합니다.아래 예제에서는 여러 서버에서 IIS를 재설정하는 기본 아이디어를 보여 줍니다.
$servers = @()
$servers += 'server1'
$servers += 'server2'
...
$servers += 'serverN'
부터iisreset.exe
다중값 매개변수를 지원하지 않기 때문에 이를 루프로 포장해야 합니다.
$servers | %{ iisreset $_ /restart /noforce }
간단한 모니터링을 추가할 수 있습니다.
$servers | %{ Write-Host "`n`n$_`n" -NoNewline ; iisreset $_ /restart /noforce /timeout:30 }
서버가 많은 경우 장애에만 관심이 있을 수 있습니다.
$servers | %{ Write-Host "`n`n$_`n" -NoNewline ; iisreset $_ /restart /noforce /timeout:30 | Select-String "failed" }
가독성 향상을 위한 다중 라인 버전:
foreach ( $server in $servers ) {
Write-Host "`n`n$server`n" -NoNewline ;
iisreset $server /restart /noforce /timeout:30 | Select-String "failed"
}
당신의 스크립트를 다음과 같이 테스트하는 것을 강력히 추천합니다./status
실시 전에/reset
작업:
$servers | %{ iisreset $_ /status }
정지된 구성요소를 다음과 같이 확인할 수 있습니다./status
또한:
$servers | %{ Write-Host "`n`n$_`n" -NoNewline ; iisreset $_ /status | Select-String "Stopped" }
언급
/restart
는 기본 매개 변수입니다.iisreset.exe
사용중입니다./restart
다른 조치가 지정되지 않은 경우/noforce
예방할 것입니다iisreset.exe
오류가 발생할 경우 실행할 수 있습니다./timeout
- IIS가 중지 상태로 고착되지 않도록 서버가 요청을 처리하는 데 더 많은 시간을 할애해야 하는 경우도 있습니다.
정확히 무엇을 찾고 있는지는 모르지만 "iisreset / noforce" 본문으로 스크립트를 만듭니다.
예를 들자면: http://technet.microsoft.com/en-us/library/cc785436.aspx
IIS 중지 또는 시작(테스트됨)
WaitForExit and ExitCode work fine
[System.Reflection.Assembly]::LoadWithPartialName("System.Diagnostics").FullName
$procinfo = New-object System.Diagnostics.ProcessStartInfo
$procinfo.CreateNoWindow = $true
$procinfo.UseShellExecute = $false
$procinfo.RedirectStandardOutput = $true
$procinfo.RedirectStandardError = $true
$procinfo.FileName = "C:\Windows\System32\iisreset.exe"
$procinfo.Arguments = "/stop"
$proc = New-Object System.Diagnostics.Process
$proc.StartInfo = $procinfo
[void]$proc.Start()
$proc.WaitForExit()
$exited = $proc.ExitCode
$proc.Dispose()
Write-Host $exited
저는 아래의 간단한 명령어를 사용하는 것이 가장 쉽다는 것을 알았습니다.
D:\PS\psexec \server_nameieset
언급URL : https://stackoverflow.com/questions/1670872/how-to-perform-iisreset-with-powershell-script
'programing' 카테고리의 다른 글
는 인덱스에서 키 열로 사용할 수 없는 유형입니다. (0) | 2023.09.06 |
---|---|
my gitlab-ci에서 주상 mariadb 서비스를 추가하는 방법 (0) | 2023.09.06 |
HTML/PHP - 양식 - 배열로 입력 (0) | 2023.09.06 |
스판이나 디브 포장 방지 (0) | 2023.09.06 |
큰 관계 하나와 작은 관계 세 개 중 어느 것이 더 나을까요? (0) | 2023.09.06 |