Apakah mungkin untuk mendaur ulang kumpulan aplikasi IIS7 dari baris perintah, pada mesin yang berbeda?
Saya telah menemukan APPCMD ( appcmd recycle apppool my-app-pool
), tetapi hanya beroperasi pada host yang dijalankan, AFAICT.
Saya mendengar desas-desus bahwa mungkin ada cara untuk melakukannya dengan Powershell, tetapi saya tidak tahu apa-apa tentang itu, dan saya tampaknya tidak pandai googling untuk itu.
Saya menggunakan Vista / Server 2008, jika itu penting.
EDIT: Saya menemukan sesuatu yang disebut WinRM yang diklaim seseorang dapat menjalankan APPCMD sendiri, tetapi saya belum tahu pasti bagaimana caranya.
Psexec \\computer c:\windows\system32\inetsrv\appcmd.exe" recycle apppool AppPoolName
Untuk melakukannya dari jarak jauh dari PowerShell, Anda harus menggunakan PowerShell remoting, atau menggunakan WMI.
Ini sebenarnya sangat sederhana menggunakan cmdlet Invoke-WMIMethod PowerShell, tetapi Anda harus menentukan
-Authentication PacketPrivacy
... dan jika Anda perlu menentukan kredensial yang berbeda, Anda dapat melakukannya dengan parameter-Credential (Get-Credential)
... berikut ini contohnya:Saya menulis fungsi yang bagus untuk menyelesaikan semuanya: http://poshcode.org/2466
sumber
Jika baris perintah adalah pilihan Anda, PsExec tampaknya menjadi solusi, tetapi untuk tugas-tugas penting misi saya tidak akan merekomendasikannya. Alasannya adalah sebagai berikut: PsExec memiliki masalah dengan beberapa kali proses.
Saya lebih suka menggunakan API untuk tujuan seperti itu.
sumber
Mirip dengan jawaban @ Jeff, dengan Powershell remoting akan menjadi:
Enter-PSSession -ComputerName <your server> -Credential <username, or (Get-Credential)>
Kemudian di sesi interaktif, lalu:
appcmd recycle apppool my-app-pool
untuk memulai kembali kumpulan aplikasi.
sumber
Daur ulang AppPool di PowerShell
Dalam contoh ini: MSExchangeSyncAppPool
sumber