Share via


IIS: Attivazione della gestione remota di IIS

È possibile utilizzare la modalità di comunicazione di Windows PowerShell per accelerare l'attivazione della gestione remota da un server remoto.

Jason Helmick

Avete mai voluto da remoto gestire un server IIS, modificare la configurazione o aggiungere un semplice sito Web — e farlo da una postazione remota? Per motivi di sicurezza ovvio non solo aprire Gestione IIS e connettersi a un server remoto. Ogni server IIS che si intende gestire deve avere gestione remota abilitata, configurato e assegnato un certificato per HTTPS.

Attivazione remota IIS gestione utilizzando la grafica Gestione IIS è rapido e facile, ma solo se sei seduto al server Web o tramite Remote Desktop Protocol (RDP). Se avete diversi server Web che necessitano di gestione remota — o se, come me, si sta utilizzando Server Core — la GUI Gestione IIS non è pratico o addirittura possibile.

È possibile abilitare la gestione remota su un numero qualsiasi di server Web remoti tramite Windows PowerShell. Sarete in grado di fare questo come molti server Web come necessario, tutto in una volta. Userete Windows PowerShell con una speciale funzione chiamata Windows PowerShell remoting.

Dovrete abilitare Windows PowerShell remoting su tutti i server IIS. Non non c'è nessun modo per evitare che. Il modo migliore per attivare servizi remoti è attraverso un oggetto (criteri di gruppo). Se non sai fare questo o bisogno di ulteriori informazioni sul processo, controllare l'eBook gratuito, "segreti di PowerShell Remoting," da Don Jones e Dr. Tobias Weltner.

Prima di dire, "Non sono autorizzato a fare questo," sedersi e leggere questa guida. Istituito in un ambiente di test e invita i tuoi amici di sicurezza per esaminarlo e ottenere il permesso di attivare servizi remoti. Se il vostro Web server sono in esecuzione su Windows Server 2012, hai già remoto abilitato. Se così non fosse, dovrete completare questo prima di provare la procedura qui descritta.

Windows PowerShell remoting è completamente sicuro e ne avrai bisogno per molte attività di gestione IIS in futuro. Il processo per abilitare la gestione remota non è complicato, ma ci sono diversi passaggi. Ecco cosa aspettarsi:

  1. Creare una sessione di Windows PowerShell per ognuno dei server
  2. Installare il servizio di gestione di IIS Web (WMSvc)
  3. Abilitare la WMSvc IIS
  4. Avviare il WMSvc IIS
  5. Sostituire il certificato temporaneo
  6. Connettersi utilizzando il Gestione IIS

In questo esempio, potrai abilitare la gestione remota su quattro server IIS denominato Web1, Web2, Web3 e Web4 — tutti allo stesso tempo. Dopo aver ottenuto li lavoro, potrai sostituire il certificato temporaneo con un certificato attendibile da Active Directory Certificate Services (AD CS).

1. Creare Windows PowerShell remoting sessioni per i server Web

Il primo passo è quello di creare una sessione di Windows PowerShell remota per il server Web. Iniziare creando una variabile "$Servers" che contiene i nomi di computer del server Web. Quindi creare e memorizzare le sessioni in una variabile "$Sessions":

PS> C:\> $Servers = 'web1', 'web2', 'web3', 'web4' PS> C:\> $Sessions = New-PSSession –ComputerName $Servers

Avrete bisogno di entrambe le variabili durante tutto il processo. Don' t tenta di accorciare questo per una singola riga. Si potrebbe riempire $Servers da un file di testo, file CSV o Active Directory utilizzando il cmdlet Get-ADComputer, ma che è un altro argomento.

2. Installare il WMSvc IIS

Il WMSvc IIS è un componente aggiuntivo, che è necessario aggiungere ad IIS. Utilizzando le sessioni di comunicazione remota, Windows PowerShell rende questo facile (la prima riga non sarà necessaria se si utilizza Windows Server 2012):

PS C:\> Invoke-Command –Session $Sessions –ScriptBlock {Import-Module ServerManager} PS C:\> Invoke-Command –Session $Sessions –ScriptBlock {Add-WindowsFeature Web-Mgmt-Service}

A questo punto, una volta installato l'IIS WMSvc. Attivazione del servizio è il passo successivo.

3. Abilitare la WMSvc IIS

Le impostazioni predefinite per il servizio di gestione sono impostate per permettere le credenziali di Windows, utilizzare la porta 8172 e applicare un certificato temporaneo. Utilizzare queste impostazioni per ora e cambiare il certificato temporaneo a una fiducia alla fine di questo processo. Per attivare il servizio di gestione, modificare una chiave del Registro di sistema sui server Web remoto:

PS C:\> Invoke-command –Session $Sessions -ScriptBlock{Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\WebManagement\Server -Name EnableRemoteManagement -Value 1}

Ora che è abilitato il servizio di gestione, si può avere iniziato.

4. Avviare il WMSvc IIS

Per impostazione predefinita non è iniziato il WMSvc IIS. Infatti, il servizio è impostato per l'avvio manuale. Se si riavvia un server Web in futuro, non si avvia il servizio di gestione. Cambiare il tipo di avvio su automatico e quindi avviare il servizio:

PS C:\> Invoke-command –Session $Sessions -ScriptBlock {Set-Service -name WMSVC -StartupType Automatic} PS C:\> Invoke-command –Session $Sessions -ScriptBlock {Start-service WMSVC}

A questo punto, viene eseguito il servizio di gestione ed è possibile gestire in remoto i server Web utilizzando il Gestione IIS. L'unico problema è che il certificato in uso è temporaneo e non attendibili, quindi sostituire questo certificato con una attendibile.

5. Sostituendo il certificato temporaneo

Ci sono molte opzioni per sostituire il certificato temporaneo, tra cui la nuova funzionalità di IIS 8 di avere i certificati nell'archivio certificati centrale. Questo è il mio preferito.

Potrai attraversare il breve processo di copia e l'installazione di un nuovo certificato da un file pfx e quindi impostando le associazioni di sito Web per il nuovo certificato. Questo esempio ha un certificato jolly sul mio computer locale C:\_.Company.loc.pfx. In primo luogo, copiare il certificato (file con estensione pfx) ai server Web remoto, quindi utilizzare CertUtil.exe per installare il certificato:

PS C:\> $Servers | Foreach-Object {Copy-Item -Path C:\_.Company.loc.pfx -Destination "\\$_\c$"} PS> c:\> Invoke-Command -Session $Sessions {certutil -p P@ssw0rd -importpfx c:\_.company.loc.pfx}

Notare che ho inviato la password in testo non crittografato. Windows PowerShell remoting è completamente sicuro e criptato. Dopo aver installato il certificato, è importante ricordarsi di eliminare il file pfx dal server Web:

PS> $Servers | Foreach-Object {Remove-Item -Path "\\$_\c$\_.Company.loc.pfx"}

A questo punto, è necessario l'identificazione digitale del certificato installato e sarà necessario modificare l'associazione per il servizio di gestione. Per fare questo, avrete bisogno del provider IIS. Iniziare il caricamento del modulo WebAdministration sui server Web remoto:

PS C:\> Invoke-Command -Session $Sessions {Import-Module WebAdministration}

Ottenere il certificato di identificazione personale per fare una nuova associazione:

PS C:\> Invoke-Command -Session $Sessions {$cert = Get-ChildItem -Path Cert:\LocalMachine\My | Where {$_.subject -like "*company*"} | Select-Object -ExpandProperty Thumbprint}

Rimuovere la vecchia associazione di SSL:

PS C:\> Invoke-command -Session $Sessions {Remove-Item -Path IIS:\SslBindings\0.0.0.0!8172}

Aggiungere la nuova associazione di SSL utilizzando il certificato di identificazione personale:

PS C:\> Invoke-Command -Session $Sessions {Get-Item -Path "cert:\localmachine\my\$cert" | New-Item -Path IIS:\SslBindings\0.0.0.0!8172}

Ora sei pronto per connetterti al server Web utilizzando il Gestione IIS.

6. Connettersi ai server Web remoto utilizzando il Gestione IIS

L'ultimo passo è quello di aprire il vostro Gestione IIS, selezionare la pagina iniziale sul riquadro di sinistra e nel riquadro centrale selezionare "Connetti a un server." Fornire il nome del server e le credenziali e vedrete un nuovo collegamento visualizzato nel riquadro di spostamento del Gestione IIS.

Perché eseguire questa operazione un po, ho preso i comandi precedenti e metterli in uno script. Se pensi che potrebbe essere necessario fare questo più di una volta, e sono sicuro che sarà — è sempre meglio automatizzare questo processo.

Jason Helmick

Jason Helmick ha più di 20 anni di esperienza in esso come consulente aziendale, formatore e autore. Come il direttore di Windows PowerShell tecnologie alla formazione tecnica di interfaccia, si concentra sull'automazione con Active Directory e IIS. Si può vedere di più su IIS nel suo prossimo libro da Manning Publications, "imparare Windows IIS in un mese di pranzi.

Contenuti correlati