Supporto remoto per assistenza PowerShell. Lavora con sessioni di Powershell remote. Creazione di sessioni in PowerShell
Riepilogo: Conoscente z in lontananza keruvannyam da Windows PowerShell.
Weekend Scripter: abilita la crenatura remota di Windows.
Microsoft Scripting Guy, Ed Wilson su chiamata. Oggi pubblicherò un estratto dal mio nuovo libro Passo dopo passo di Windows PowerShell 3.0, che assomiglia a Microsoft Press. Allo stesso tempo, il libro è disponibile per la prenotazione anticipata.
WinRM - Rimuovere il kernel di Windows
In Windows Server 2012, WinRM è in esecuzione dietro le quinte per supportare la rimozione dei comandi remoti di Windows PowerShell. WinRM è l'implementazione di Microsoft dello standard del settore WS-Management Protocol. Ecco perché WinRM spera modo manuale l'accesso ai sistemi remoti a colpo d'occhio non poteva chiudere il firewall. Lo stesso meccanismo che vince nuovi comandi CIM. In questo modo è possibile connettersi a un computer Windows Server 2012 in esecuzione per eseguire comandi o aprire una console Windows PowerShell interattiva. Su Windows 8, invece, WinRM è bloccato. Non significa cosa succede dopo, cosa è necessario fare, quindi eseguire il cmdlet Abilita-PSRemoting. Quando si esegue questo cmdlet, vengono visualizzate le seguenti righe:
1. Avviare o riavviare il servizio WinRM.
2. Tipo di avvio del servizio WinRM viene installato automaticamente.
3. Viene creato un listener per ricevere connessioni per tutti gli indirizzi IP.
4. Disattivare il firewall per il traffico WS-Man.
5. Configurazione Microsoft.powershell caricata
6. Configurazione Microsoft.powershell.workflow caricata
7. Configurazione Microsoft.powershell32 caricata
Allungando questo processo, la funzione di energizzare il miglioramento della condizione della pelle. Se sai qual è la funzione e non vuoi apportare modifiche prima di essa, puoi eseguire questo comando con la chiave -forza e in questo modo la conferma non viene mostrata. La sintassi per questo comando è elencata di seguito.
Enable-PSRemoting –Forza
Ora mettiamo la funzione Enable-PSRemoting in modalità interattiva, includendo tutte le informazioni che vengono visualizzate.
PS C:\> Abilita-PSRemoting
Configurazione rapida WinRM
Premendo il pulsante "Set-WSManQuickConfig" per garantire una gestione efficiente di questo programma per l'aiuto del servizio Windows Remote Management (WinRM). Ciò comprende:
1. Avviare o riavviare (se già avviato) il servizio WinRM
2. Impostazione del tipo di avvio del servizio WinRM su Automatico
3. Creazione di un listener per accettare richieste su qualsiasi indirizzo IP
4. Abilitazione delle regole di eccezioni ordinate di Windows Firewall per il traffico WS-Management (solo per http).
Vuoi continuare?
WinRM può essere aggiornato per ricevere richieste.
Il tipo di servizio WinRM è stato modificato correttamente.
Servizio WinRM avviato.
WinRM può essere aggiornato per la gestione remota.
Creato un listener WinRM su HTTP://* per le richieste WS-Man a qualsiasi IP su questa macchina.
Eccezione WinRM Firewall abilitata.
microsoft.powershell SDDL:
[Y] Sì [A] Sì a tutti [N] No [L] No a tutti [S] Sospendi [?] Guida (l'impostazione predefinita è "Y"):y
Sei sicuro di voler eseguire questa azione?
Esecuzione dell'operazione "Set-PSSessionConfiguration" sulla destinazione "Nome:
microsoft.powershell.workflow SDDL:
O:NSG:BAD:P(A;;GA;;;BA)(A;;GA;;;RM)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;;; ;WD). Questo sarà
consentire agli utenti selezionati di eseguire in remoto i comandi di Windows PowerShell su questo computer".
[Y] Sì [A] Sì a tutti [N] No [L] No a tutti [S] Sospendi [?] Guida (l'impostazione predefinita è "Y"):y
Sei sicuro di voler eseguire questa azione?
Esecuzione dell'operazione "Set-PSSessionConfiguration" sulla destinazione "Nome:
microsoft.powershell32 SDDL:
O:NSG:BAD:P(A;;GA;;;BA)(A;;GA;;;RM)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;;; ;WD). Questo sarà
consentire agli utenti selezionati di eseguire in remoto i comandi di Windows PowerShell su questo computer".
[Y] Sì [A] Sì a tutti [N] No [L] No a tutti [S] Sospendi [?] Guida (l'impostazione predefinita è "Y"):y
Dopodiché, una volta trovata la configurazione, è possibile invertire la precedenza WinRM per un cmdlet aggiuntivo Test-WSMan. Se il sistema è impostato correttamente, verranno visualizzate informazioni simili a quella corrente.
PS C:\>Test-WSMan -NomeComputer w8c504
Versione prodotto: Sistema operativo: 0.0.0 SP: 0.0 Stack: 3.0
Questo cmdlet funziona anche su computer Windows PowerShell 2.0. Suggerimenti di seguito illustraє fino a un controller di dominio su Windows Server 2008 z installa Windows PowerShell 2.0, su cui WinRM è stato inchiodato.
PS C:\>Test-WSMan -NomeComputer dc1
wsmid: http://schemas.dmtf.org/wbem/wsman/identity/1/wsmanidentity.xsd
ProtocolVersion: http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd
Fornitore del prodotto: Microsoft Corporation
Versione prodotto: Sistema operativo: 0.0.0 SP: 0.0 Stack: 2.0
Se WinRM non è impostato, la notifica sull'indulto verrà attivata. In tempo sistema operativo Windows 8, arriveremo presto.
PS C:\>Test-WSMan -NomeComputer w8c10
Test-WSMan: xmlns:f="http://schemas.microsoft.com/wbem/wsman/1/wsmanfault" Code="2150859046" Machine="w8c504.iammred.net">Non dimenticare WinRM. Verificare che il nome del computer specificato sia valido, che il computer sia accessibile tramite il rete e che sia abilitata e consentita un'eccezione firewall per il servizio WinRM accedere da questo computer. Per impostazione predefinita, l'eccezione WinRM Firewall per public I profili limitano l'accesso ai computer remoti all'interno della stessa sottorete locale. Alla riga:1 carattere:1 Test-WSMan -NomeComputer w8c10 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CategoryInfo: InvalidOperation: (w8c10:String) , InvalidOperationException FullyQualifiedErrorId: WsManError,Microsoft.WSMan.Management.TestWSManCommand Tieni presente che l'abilitazione di Gestione remota con il cmdlet Enable-PSRemoting non disabilita il firewall di Gestione remota, quindi il tentativo di propagare un computer Windows 8 non va a buon fine. PS C:\> ping w8c504 Ping w8c504.iammred.net con 32 byte di dati: Tempo scaduto per la richiesta. Tempo scaduto per la richiesta. Tempo scaduto per la richiesta. Tempo scaduto per la richiesta. Statistiche ping per 192.168.0.56: Pacchetti: inviati = 4, ricevuti = 0, persi = 4 (perdita del 100%). Tutto funziona per Windows Server 2012. PS C:\> ping w8s504 Ping w8s504.iammred.net con 32 byte di dati: <1ms TTL=128 Risposta da 192.168.0.57: byte=32 tempo<1ms TTL=128 Risposta da 192.168.0.57: byte=32 tempo<1ms TTL=128 Risposta da 192.168.0.57: byte=32 tempo<1ms TTL=128 Statistiche ping per 192.168.0.57: Pacchetti: inviati = 4, ricevuti = 4, persi = 0 (perdita dello 0%), Tempi approssimativi di andata e ritorno nell'ora estiva: Minimo = 0 ms, Massimo = 0 ms, Medio = 0 ms Questo è tutto ciò che serve per migliorare WinRM. Ed Wilson, addetto agli script di Microsoft Originale:
Recentemente ho avuto la possibilità di perdere tre ore per ottenere l'accesso remoto tramite Powershell. Tale guida viene fornita come una potente alternativa ai Servizi Desktop remoto in un certo numero di casi (riavviare il servizio su un hosting VDS remoto, eseguire una copia di backup, dare un'occhiata al sistema di nuovo). La possibilità di creare sessioni di Powershell remote è stata introdotta nella versione 2. Per la quale viene utilizzato il cmdlet Enter-PSSession/Invoke-Command. Prote, prima degli studenti vincitori, prepara il mezzo. Cos'è Robimo sul server: Krok 1: Aprire la console di Powershell e consentire una sessione remota utilizzando il cmdlet Enable-PSRemoting con la chiave Force. Abilita-PSRemoting-Forza Krok 2: Riconsiderare che il servizio WinRM è in esecuzione. Avvia il servizio WinRM Krok 3: Abbiamo cambiato le regole al brandmauer, in modo che la connessione in ingresso sia possibile. Sul computer cliente tezh è necessario vikonati kіlka fai da te: Krok 1: Consenti la connessione a nodi remoti. Per l'accesso a qualsiasi nodo, puoi velocizzare la struttura offensiva: Set-Item wsman:\localhost\client\trustedhosts * -Force Krok 2: Assicurati che il brandmauer non stia bloccando l'esterno della giornata. Ora, per connetterti a un nodo remoto tramite Powershell, puoi farlo in questo modo: Enter-PSSession 192.168.1.160 - Credenziale VMNAME\User Il valore 192.168.1.160 e VMNAME\User deve essere sostituito con l'indirizzo dell'host remoto e il nome dell'host Windows sul server. Ora l'accesso remoto tramite Powershell è possibile. Prote є un'altra sfumatura. Forse alcuni di voi sono profilati in Powershell. I profili sono script speciali che vengono lanciati all'inizio della console stessa. Qui, ad esempio, puoi designare tutti gli alias e le vicon necessari davanti a te. Il problema sembra essere che i profili non si avviano per un'ora dopo la fine delle sessioni. Puoi cercare aiuto con diverse configurazioni di connessione. Per quale, è necessario registrare la configurazione su un server remoto. Puoi farlo barando sul comando Register-PSSessionConfiguration. Con qualsiasi configurazione di skin, puoi sperarlo. Per la configurazione della skin è possibile inserire un percorso allo script, che verrà verificato all'inizio della sessione. Register-PSSessionConfiguration -name Config1 -startupScript c:\scripts\Startup.ps1 Dopodiché, quando si è connessi a un nodo remoto, quando il comando Enter-PSSession è diverso, specificare il nome della configurazione. Enter-PSSession 192.168.1.160 -ConfigurationName Config1 - Credenziale VMNAME\User Ora è possibile non utilizzare le risorse del server per creare una sessione di connessione tramite Servizi Desktop remoto e lontano dal server per l'aiuto di Powershell. programmi di avvio remoto di PowerShell Avvio di una sessione interattiva Per avviare una sessione interattiva da un computer remoto, digitare il cmdlet Enter-PSSession. Ad esempio, per avviare una sessione interattiva dal computer remoto Server01, immettere: Vikonannya in lontananza dalla squadra Vinci il cmdlet Invoke-Command per viconiare un comando su uno o più computer remoti. Ad esempio, per eseguire il comando Get-UICulture sui computer remoti Server01 e Server02, immettere: Invoke-command -computername Server01, Server02 (get-UICulture) Installazione di connessione permanente Invoke-command -session $s ($h | dove ($_.installedby -ne "NTAUTHORITY\SYSTEM") Tutto tratto da https://technet.microsoft.com/en-us/library/dd819505.aspx Una delle attività più popolari per gli amministratori di sistema è eseguire qualsiasi comando su un computer remoto senza alzarsi dal proprio lavoro. Potrebbe essere necessario installare programmi o utilità, modificare l'installazione o meno, oppure altro. E, molto raramente, c'è più di un computer, spesso il comando deve essere eseguito su diverse workstation o server. Oskіlki zavdannya tsya popolare, quei modi di vyrіshennya sono impersonali. A partire dai criteri di gruppo (per i quali è possibile interrompere gli script per l'accesso o l'ingresso automatico) e terminare con sistemi di gestione difficili, ad esempio System Center Essentials o System Center Configuration Manager. E in questo articolo, voglio esaminare i metodi disponibili alla vista riga di comando o file negli script e in questo modo non influisce sull'installazione in avanti di agenti e altri problemi. Vtіm, yakіs poperednі vimogi, zvichayno, є. Ad esempio, sei responsabile delle sostituzioni amministrative sul computer su cui desideri eseguire il comando (per il bene dello script con il proxy, ma per l'altra cosa). Uno dei miei modi preferiti per eseguire questa attività è l'utilità della riga di comando PsExec.exe, scritta da Mark Russinovich, a cui è possibile accedere liberamente dal sito Web di Windows SysInternals. Possilannya su di esso può essere noto nell'articolo. Non ha bisogno di essere installato nel sistema, puoi semplicemente copiarlo in una delle cartelle, che può essere posizionata nel %path% modificato e fare clic sulla shell della riga di comando: Cmd o PowerShell. L'hacking di PsExec è abbastanza semplice. Ad esempio, per viconate ipconfig /flushdns sul computer principale, basta eseguire il seguente comando: psexec \\main ipconfig /flushdns Il comando ipconfig verrà eseguito sul computer principale sotto le tue skin. Al termine del lavoro di ipconfig, tutti i file di testo verranno trasferiti sul computer e verrà restituito anche il codice di uscita del comando (codice di errore). Allo stesso tempo, la squadra ha avuto successo, il tempo di vittoria è stato 0. Mi sono reso conto che PsExec non termina con quale possibilità. Facendo clic sull'utilità senza parametri, è possibile esaminare altre opzioni disponibili. Ho meno rispetto per le loro azioni. Chiave -d sembra PsExec, che non sia necessario controllare il comando, ma è sufficiente eseguire її e dimenticarlo. In questo modo, non togliamo alcun dato dall'utilità della console, oppure potremmo non verificare il completamento del comando frontale per eseguirne altri. È più complicato, perché è necessario eseguire, ad esempio, il programma di installazione sui computer desktop. Dopo aver bloccato PsExec, i comandi vengono disabilitati nella modalità collegata, in modo che il sistema, quando il comando è disabilitato, non verrà mostrato a giorni alterni o finestre di dialogo. Tuttavia, è possibile modificare questo comportamento per una chiave aggiuntiva -io. Quindi puoi specificare il numero di sessione, in quale finestra verrà visualizzata, oppure non puoi specificarlo, l'interfaccia verrà visualizzata nella sessione della console. In questo ordine, per visualizzare una finestra con informazioni sulla versione del sistema operativo sul computer principale, eseguire PsExec in questo ordine: psexec -i \\main winver.exe Se vuoi digitare il comando in una riga sui computer delle decalcomanie, dovrai leggere i loro nomi da un elenco di file di testo. psexec @c:\comps.txt systeminfo.exe Ebbene, una delle maggiori caratteristiche di PsExec è la capacità di reindirizzare in modo interattivo l'input/output tra computer, che ci consente di eseguire, ad esempio, cmd.exe su un server remoto, e dargli comandi e acquisire i risultati sul computer locale . Come funziona PsExec? Tutto è ingegnosamente semplice. Le risorse del file malvagio PsExec.exe hanno un altro file malvagio: PSEXESVC, che è un servizio di Windows. Prima di chiudere il comando, PsExec decomprime la risorsa nella cartella amministrativa allegata sul computer remoto, file: \\Im'yaComputer\Admin$\system32\pexesvc.exe. Ad esempio, per l'aiuto dell'opzione -c, hanno indicato che è necessario copiare i file copiati su questo sistema, verranno copiati anche in questa cartella. Una volta completata la preparazione di PsExec, installa e avvia il servizio, utilizzando le funzioni dell'API di Windows che devono essere curate dai servizi. Dopo l'avvio di PSEXESVC, vengono creati alcuni canali tra esso e PsExec per trasferire i dati (comandi di input, risultati, ecc.). Dopo aver completato il lavoro, PsExec avvia il servizio e lo vede dal computer di destinazione. Il prossimo modo per implementare un'attività popolare, su ciò che voglio sapere: Strumentazione gestione Windows. WMI è disponibile su tutti i sistemi operativi Microsoft a partire da Windows 2000 e Windows 9x e può essere installato dal pacchetto ok. WMI è riservato per il blocco e non richiede ulteriori modifiche. Per lo yoga, ci sono sufficienti diritti amministrativi consentiti sul firewall per il protocollo DCOM. WMI ha un grande potenziale per la gestione dei sistemi, ma ne abbiamo bisogno solo uno alla volta. Per avviare i processi, abbiamo bisogno del metodo Create della classe Win32_Process. Lo yoga Vikoristovuvati è facile da fare. PowerShell deve farlo in questo modo: $Computer = "principale" Qui, come processo che si avvia, inserisco cmd.exe e anche tu, come argomento, passi il comando. Non è necessario, in quanto è necessario modificare la nitidezza del computer remoto, o utilizzare gli operatori cmd.exe, come " >
» per reindirizzare la vista al file. Il metodo Create non controlla se il processo è stato completato e non controlla i risultati, quindi ci dice il suo ID - ProcessID. Se si dispone di un computer in cui non è ancora installato PowerShell, è possibile chiamare il metodo WMI da uno script VBScript. Ad esempio, l'asse è: Elenco n. 1 - Esecuzione del processo WMI (VBScript) Computer="PC3" È inoltre più semplice utilizzare l'utilità della riga di comando wmic.exe per accedere all'interfaccia manuale del robot WMI ed entrare nel magazzino del sistema operativo, a partire da Windows XP. Per eseguire, ad esempio, una calcolatrice sul computer principale, basta premere il comando: wmic /node: chiamata al processo principale create calc.exe Come puoi immaginare, le capacità di WMI non si limitano alla sola esecuzione di processi. Se vuoi stare lontano dalla tecnologia, ti consiglio di familiarizzare con gli articoli di Kostyantyn Leontiev, relativi a WMI, in base a come puoi conoscere ad esempio gli articoli. Quindi, non c'è da stupirsi che Windows Script Host possa eseguire script anche su altri computer. È vero, questa funzione non ha guadagnato grande popolarità, ed era meglio per tutto attraverso coloro che avevano molti approcci preparatori e la natomistità non aveva molte opportunità. Ma lascia che ti parli lo stesso di questo metodo, in modo che possa valerne la pena. Inoltre, per eseguire lo script su un altro computer con l'aiuto di WSH, è necessario eseguire le seguenti operazioni: I diritti dell'amministratore sul computer remoto. Aveva senso ed è necessario utilizzare tutti gli altri metodi per avviare gli elenchi nell'articolo. Abilita WSH Remote Scripting impostando la voce di registro Remoto uguale a "1" nella chiave di registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Script Host\Settings Attraverso pardons, è descritto nell'articolo Microsoft Knowledge Base numero 311269, su sistemi con Windows XP, potrebbe essere necessario utilizzare il comando wscript –regserver Se un firewall è rotto sui computer, è necessario abilitare la connessione a DCOM. Inoltre, devi lavorare non solo su un computer ceramico, ma su quello su cui vuoi eseguire lo script. Per i sistemi Windows XP con Service Pack 2, potrebbe essere necessario modificare anche le impostazioni di sicurezza DCOM. Tse può zrobiti per chiedere aiuto politica di gruppo. L'installazione del nodo Configurazione computer \ Impostazioni di Windows \ Impostazioni di sicurezza \ Criteri locali \ Opzioni di sicurezza dovrebbe essere consentita nel seguente ordine: DCOM: Machine Access Restrictions nella sintassi SDDL (Security Descriptor Definition Language). DCOM: Restrizioni di avvio macchina nella sintassi SDDL (Security Descriptor Definition Language). Bene, dopo tutte queste procedure, puoi provare a eseguire il tuo script su un altro computer. Un esempio di scenario, una sorta di tecnologia vittoriosa: Listato n. 2 - Scripting remoto WSH (VBScript) Imposta objController = CreateObject ("WshController") Sull'altra riga, come parametro per la funzione CreateScript, viene indicato il percorso del file di script, che verrà eseguito su un computer remoto e alla luce di questo computer. Il rapporto su questa tecnologia può essere letto nell'articolo VBScript avanzato per Microsoft Windows Amministratori - Capitolo 6: Scripting remoto(Div. Posilannya). Il pianificatore può essere controllato dalla riga di comando utilizzando due utilità: at.exe e schtasks.exe. I reati dell'utilità ti consentono di mostrare il nome del computer remoto dell'attività e, inoltre, di modificare la nostra attività. Ale, possiamo solo guardare schtasks.exe, i frammenti là fuori hanno più opportunità. Sebbene i comandi su altri computer non siano le caratteristiche principali del pianificatore, consentono l'implementazione di alcuni scenari diversi. Ad esempio, per lo yoga, puoi aumentare l'installazione Software nel periodo di interruzione quotidiana. Altrimenti, poiché i tuoi koristuvach si incontrano a un'ora diversa, il lancio può essere ritardato dopo il periodo di canto dell'inattività del computer. schtasks /create /s server6.td.local /tn install /tr \\main\data\install.cmd /sc once /st 13:00 /ru system È importante capire nel nome di una sorta di registrazione oblіkovogo dell'appuntamento. Per questa applicazione, ho inserito il parametro /ru del valore di sistema, quindi per l'installazione del record del computer obliquo, sarà necessario l'accesso per la lettura cartella merezhu con la distribuzione del software. Per prendere le decisioni migliori, mi è permesso pianificare se è un giorno, in un buon momento, e vedrò l'attività solo per la conferma del mio successo. Quindi puoi creare un semplice file batch che avvia il programma di installazione, ne verifica il completamento e verifica che il programma sia stato installato correttamente. Come se fosse così, hai visto l'attività dal pianificatore sul tuo computer. Un esempio di tale file: Elenco n. 3 - Installazione di programmi da lavori lontani (Windows Batch) msiexec /qn /pacchetto\server\condivisione\subinacl.msi WinRM è un'implementazione dello standard DMTF (Distributed Management Task Force) di Microsoft, che consente ai sistemi di utilizzare altri servizi Web. Non approfondirò l'attaccamento alla tecnologia, descriverò solo brevemente ciò che è necessario per la mia ricerca. Versione WinRM 1 e successive incluse nello stock di sistemi operativi, a partire da Windows Vista e Windows Server 2008. Per Windows XP e Windows Server 2003, è possibile installare WinRM come pacchetto okremy (pacchetto div.). Per poter sistemare il computer per la connessione ad una nuova porta standard vicorist, consentendo la connessione ai record cloud amministrativi, è sufficiente utilizzare il comando: configurazione rapida di winrm Per vincere senza chiedere conferma, puoi aggiungere il tasto -quiet alla chiamata. Per ulteriori informazioni sulla messa a punto, puoi guardare la messa a punto di winrm: configurazione guida di winrm Come se un server Web fosse in esecuzione su un computer ceramico, non è possibile configurare WinRM, anche se la porta HTTP standard. Con perekhoplyuvatime meno connessione, riconosciuta appositamente per il nuovo. Ovviamente, non è facile digitare il comando manualmente, sullo skin computer, qualunque cosa tu voglia controllare. Usі nebkhіdnі nalashtuvannya facilmente zrobiti per le politiche di gruppo di aiuto. Chi ha bisogno: Indipendentemente dal fatto che la porta HTTP (80) sia sovrascritta o HTTPS (443), il traffico di trasmissione WinRM è crittografato (quindi ovviamente non si abilita questa opzione). Per l'autenticazione standard, il protocollo Kerberos viene ignorato. Ale per parlare di allacciatura, piuttosto andiamo avanti senza via di mezzo alla cattiveria. Se l'utilità winrm ti consente di configurare il servizio WinRM, oltre ad abilitare WMI, ad esempio, abbiamo bisogno di winrs. Le lettere RS qui significano Remote Shell. WinRS funziona in modo molto simile alla tecnologia PsExec o WinRM. Il nome del computer viene impostato con il tasto -r e, dopo un nuovo comando successivo, è necessario vikonate. Asse del calcio della lancia: winrs -r:Core ver.exe Frammenti di winrs e così vince cmd.exe come una shell remota, nei comandi puoi facilmente andare alle modifiche lontane, oppure puoi usare altri comandi cmd.exe: winrs -r:Core "dir c:\temp > c:\temp\list.txt" Come PsExec, l'utilità winrs consente di aprire una sessione interattiva su un computer remoto: winrs -r:main cmd.exe Questa funzione è simile alla sessione telnet, ma winrs è decisamente migliore di telnet e naviga in PsExec, dal punto di vista della sicurezza. Indipendentemente dal fatto che la porta HTTP (80) o HTTPS (443) sia sovrascritta, il traffico di trasmissione WinRM è crittografato (quindi ovviamente non si abilita questa opzione). Per l'autenticazione standard, il protocollo Kerberos viene ignorato. Vuoi un amico Versione Windows PowerShell al momento della stesura dell'articolo è ancora in fase di beta test, su її possibilità nel campo dei comandi lontani è piuttosto diverso ora. Provalo tu stesso, puoi prendere la vecchia versione (div. possilannya) o presso il magazzino della versione beta di Windows 7 o Windows Server 2008 R2. L'infrastruttura di PowerShell Remoting è basata su WinRM versione 2.0 e quindi tutti i progressi tecnologici sono in declino, come la crittografia dei dati trasmessi e la capacità di lavorare dietro le porte HTTP/HTTPS standard. Ma arricchiamoci con le possibilità di spostare Windows PowerShell e rendiamo ancora più possibile lavorare con gli oggetti. Al momento, il pacchetto WinRM2.0 è ancora in fase di beta testing ed è disponibile per il download solo per Windows Vista e Windows 2008. Sistemi Windows 7 e Windows Server 2008R2 verranno riavviati non appena PowerShell 2.0. Aggiornamento: Fino alla pubblicazione dell'articolo sul sito, il definitivo Versioni di PowerShell 2.0 e WinRM 2.0 sono già disponibili per tutte le piattaforme di supporto. Prima dello stock di Windows Server 2008R2 e Windows 7, la puzza è già inclusa come componente di sistema invisibile e per Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008 componenti richiesti Puoi guardare un pacchetto chiamato Windows Management Framework. Prima di segnare tutti i progressi, PowerShell Remoting deve essere attivato sia sul computer rigido che su quello rigido. È facile farlo eseguendo il cmdlet ( Comando di Windows PowerShell) Enable-PSRemoting. Inoltre, se si aggiunge il tasto -Force, non verrà richiesta la successiva conferma. Questo cmdlet, se necessario, chiama winrs quickconfig e crea la colpa nel firewall di Windows, quindi non è necessario aggiungerne altri. In alternativa, puoi facilmente digitare comandi su altri computer utilizzando il cmdlet Invoke-Command (o alias icm): Invoke-Command -ComputerName Main -ScriptBlock (dump dell'interfaccia netsh > c:\ipconfig.txt) Come puoi vedere, il comando può essere aggiunto all'elenco in un secondo momento e, per il parametro -ComputerName, specificare i nomi non solo di uno, ma di più computer. La sequenza successiva consente di inserire la versione del file Explorer.exe da tre computer. $Comando = ((get-item c:\Windows\explorer.exe).VersionInfo.FileVersion) Come puoi vedere, è possibile trasferire una serie di comandi in un blocco, posizionare i risultati sui computer desktop al momento della modifica e quindi elaborarli su una workstation, utilizzando la capacità di Windows PowerShell di lavorare con gli oggetti. Vtіm, la possibilità di PowerShell Remoting su tіlki pochinayutsya. Per assistenza con il cmdlet Enter-PSSession, puoi andare al file interattivo Sessione di Windows PowerShell su un computer remoto. È possibile uscire da tale sessione utilizzando il cmdlet Exit-PSSession o semplicemente uscire. Il cmdlet New-PSSession crea sessioni su computer remoti, gli indicatori per yak_ possono essere modificati, quindi passandolo come argomento per Invoke-Command, puoi modificare il comando di seguito su quanti più computer possibile. Il calcio può essere visto nello screenshot, dove posso vedere la sequenza di comandi in una riga sui computer delle decalcomanie dall'elenco c:\computers.txt. Questo metodo viene rivisitato alla luce degli elenchi attuali e funge da invito ad altri compiti, ma non per questo meno rilevanti. Se la delega del rinnovo non è possibile, altrimenti ci vengono date grandi opportunità, ti permettiamo di consentire al supremo coristuvachev di vincere il comando, come se avessi bisogno di privilegi di amministratore, e non concediamo la password dell'amministratore. Il più delle volte, le persone cercano di risolvere questi problemi per utilità aggiuntive come cpau.exe (div. power) per creare un file da un record amministrativo crittografato con password che consente di eseguire un singolo programma. Il problema, tuttavia, è per coloro che desiderano che la password e la crittografia debbano decrittografarla prima di eseguire il programma di utilità. E puoi vincere l'utilità, che ripete l'algoritmo di decrittografia della password, e riconoscerlo, in modo da poterlo vincere per avviare altri programmi o togliere privilegi aggiuntivi. Pratico eccezionale coristuvachiv, Scho not vodіyut spetіalnymi znannannym, ma non è meno, per quanto possibile. Ancora una volta, chiarirò che questa non è un'utilità specifica, ma il problema di un tale approccio è scomparso. Un'altra opzione consiste nell'utilizzare il parametro /savecred dell'utilità runas per completare l'attività. Ma qui ci sono due problemi. In primo luogo, come descritto sopra, la password viene salvata sul computer del koristuvach e, in seguito, potrebbe esserci la decrittazione, se si desidera avere i diritti dell'amministratore locale per questo runas. In un altro modo, runas salva i dati sull'aspetto, senza mostrarli con un comando specifico, quindi puoi eseguirlo con i diritti come quel comando, accedere a tutto ciò che vuoi darti, ma be-yaku insh. Per evitare questi problemi, per consentire la digitazione di un comando specifico, è possibile battere la tecnica, in quanto viene chiamata "proxing". Allenati in questo modo. Sul computer, lo script viene elaborato in modo permanente con privilegi elevati. Ad esempio, il nostro tipo di vino avrà lanci di un record pubblico, che potrebbe avere diritti di amministratore sul file server. Dopo il segnale del koristuvach, noi vikonuvatime uno, nominerò una squadra in anticipo. Per ogni culo - chiudi tutti i file, aprili attraverso la linea. Per organizzare il sistema, lo posizioniamo sul server, ad esempio, nella cartella c:\scripts\ file di comando Server.cmd e Action.cmd . Listato n. 4 - Server.cmd (Windows Batch) set trigger=c:\commandShare\trigger.txt Elenco n. 5 - Action.cmd (Windows Batch) for /f "skip=4 tokens=1" %%a y ('file di rete') do file di rete %%a /chiudi Server.cmd controlla il segno del file nello spazio sing e, dopo averlo omesso, esegui il file con i comandi - Action.cmd. Ho capito che i miei papà non sono colpevoli del giusto accesso. L'avvio automatico di Server.cmd all'avvio del computer può essere organizzato creando una seconda attività nello scheduler: schtasks /create /ru dominio\amministratore /rp /sc onstart /tn ProxyScript /tr c:\scripts\server.cmd Dopo aver specificato il parametro /ru record fisico, se lo script deve essere modificato (il nostro utente non dispone dei diritti di amministratore sul server), dopo il parametro /rp non viene specificata la password: verrai acceso quando l'attività viene creata. L'opzione /sc consente di specificare quando avviare lo script, nel nostro caso il nome del computer. Bene, /tn e /tr ti consentono di specificare il nome dell'attività e il file da copiare. Ora, per fare in modo che gli script inviino istantaneamente un segnale, creeremo la cartella c:\commandShare e la renderemo disponibile secondo necessità. L'accesso al record in questa cartella è responsabilità della sola madre dei coristuvachi, per eseguire il comando. Non appena è sufficiente, collocherai il coristuvachev nel file di stile di lavoro Run.cmd. Listato n. 6 - Run.cmd (Windows Batch) echo test > \\server\commandShare\trigger.txt Quando lo fai, il file \\server\commandShare\trigger.txt verrà creato nel nome del coristuvach. Lo script Server.cmd, dopo averlo contrassegnato, esegue il file Action.cmd sulla viconnary con i propri privilegi, aggiunge una voce al file c:\scripts\log.txt sull'ora corrente, quindi elimina il trigger.txt così che il comando non si risvegli fino al segnale offensivo del coristuvach. Lo script Server.cmd utilizza l'utilità Sleep.exe, che consente allo script di sospendere le attività per un'ora. Non devi entrare nel magazzino del sistema operativo, ma puoi prenderlo dagli strumenti del Resource Kit e copiarlo su qualsiasi computer. C'è un minimo di teoria, la parte più importante è pratica. Descrivi come configurare WinRM, come modificare un profilo adattatore in twill, viene fornito lo script per aggiungerlo a TrustedHosts con filtraggio, spiega le esigenze degli host attendibili e le connessioni vengono esaminate superficialmente in lontananza in modo che sia possibile sistemare e vedere la macchina da remoto. Il modo più semplice per nalashtuvati in lontananza la gestione dei vikonati Abilita-PSRemoting
in obolontsi vivere con i diritti di amministratore. Quando diventa così: Per verificare nuovamente dove puoi connetterti vikoristovuemo: Vengono dati i comandi di aiuto, ne ho ricostruiti alcuni dallo script Є ryznitsya kazuvati im'ya chi indirizzo. Se ci sono solo indirizzi in TrustedHosts, aggiungi la sessione a Im'I not see e navpak, quindi dico che sono allegato all'indirizzo che non vedo. Chiama tse. perché è diverso Enable-PSRemoting ruba più fai da te, abbassa "winrm quickconfig". Il cmdlet Set-WSManQuickConfig funziona allo stesso modo di "winrm quickconfig". Enable-PSRemoting esegue Set-WSManQuickConfig se il sistema è stato configurato Connessione remota Scambia in questo modo: 2. Sessioni da 1 a molti Per trasferire nuovamente lo script in sostituzione del parametro -ScriptBlock, scrivere -FilePath, nella macchina remota NON è necessario avere accesso al file, ci sarà la predisposizione dei pezzi di ricambio, i trasferimenti via HTTP e la chiusura da quel lato. $deployRemote = ( Invoke-Command -Session $session -ScriptBlock $deployRemote -ArgumentList($targetEnvName, $targetUsername) 3. Sessioni La sessione viene creata dal cmdlet New-PSSession, il risultato può essere salvato con la modifica Yak vikoristovuvati: Invoke-Command può creare immediatamente una sessione disconnessa, eseguire comandi per svegliarsi e connettersi, in seguito è possibile riconnettersi e recuperare i risultati del lavoro. Combatti con il parametro -Disconnected. Recupero dei risultati tramite il cmdlet Recieve-PSSession. Le sessioni possono essere riccamente personalizzate, è possibile creare sessioni con una serie di comandi, moduli, ecc. Chiamati endpoint personalizzati
entra-pssession Server01
Alla riga di comando, viene visualizzato il nome del computer, finché non si è connessi. Tutti i comandi immessi nella riga di comando vengono eseguiti su un computer remoto e i risultati vengono visualizzati sul computer locale.
Per terminare una sessione interattiva, immettere:
uscita-psession
I dati di output verranno restituiti al tuo computer.
Per eseguire lo script su uno o più computer, includere il parametro FilePath del cmdlet Invoke-Command. Lo script è colpevole di essere notato o disponibile sul computer locale. I risultati verranno ruotati sul computer locale.
Ad esempio, il comando eseguirà lo script DiskCollect.ps1 sui computer remoti Server01 e Server02.
invoke-command -computername Server01, Server02 -filepath c:\Scripts\DiskCollect.ps1
Per registrare un numero di comandi da dati elevati, creare una sessione in un computer remoto e quindi citare il cmdlet Invoke-Command per registrare i comandi dalla sessione creata. Per creare una sessione eliminata, tagga il cmdlet New-PSSession.
Ad esempio, il comando successivo consiste nel creare una sessione remota sul computer Server01 e un'altra sessione remota sul computer Server02. Vaughn porta gli oggetti alla sessione di modifica $s.
$s = new-pssession -nomecomputer Server01, Server02
Dopo che la sessione è stata stabilita, puoi visconare il comando. I punteggi delle sessioni sono costanti, puoi raccogliere dati in una squadra e conquistarli all'attacco.
Ad esempio, il comando successivo consiste nell'overridere il comando Get-Hotfix sulle sessioni per modificare $s e prendere i risultati della modifica $h. La modifica $h viene creata nella sessione skin $s, ma non funziona nella sessione locale.
invoke-command -session $s ($h = get-hotfix)
Ora puoi vincere la vittoria in squadre offensive, come offensive. I risultati vengono visualizzati sul computer locale.Psexec.exe
Strumentazione gestione Windows (WMI)
$Comando = "cmd.exe /c systeminfo.exe >
("\\$Computer\root\cimv2:Win32_Process").create($Comando)
Comando = "cmd.exe /c systeminfo.exe > \\server\condivisione\%nomecomputer%.txt"
Set objWMIService = GetObject("winmgmts:\\" & Computer & "\root\cimv2:Win32_Process")
Risultato = objWMIService.Create("calc.exe", Null, Null, intProcessID) Script remoto WSH
Vedere i gruppi Accesso anonimo e Tutti consentono Consenti locale e Consenti accesso remoto
Vedere il gruppo Amministratori consentito Consenti avvio locale, Consenti avvio remoto, Consenti attivazione locale, Consenti attivazione remota
Raggruppa tutti – Consenti avvio locale, Consenti attivazione locale
Imposta objRemoteScript = objController.CreateScript("C:\test.vbs", "PC5")WScript.ConnectObject objRemoteScript, "remote_"
objRemoteScript.Execute
Fai mentre objRemoteScript.Status<> 1
WScript.Sleep 1000
ciclo continuo
MsgBox "Script completato"
Sub remote_Error
Dim objError
Imposta objError = objRemoteScript.Error
WScript.Echo "Errore - Riga: " & objError.Line & _
", Char: " & objError.Character & vbCrLf & _
"Descrizione: " & objError.Description
WScript.Esci -1
fine sub Agenda
se esiste "c:\programmi\Windows Resource Kits\Tools\subinacl.exe" (
subinacl /tn Install_Subinacl /f WinRM (gestione WS)
Controllo remoto di Windows PowerShell 2.0
Invoke-Command -ComputerName Main, Server7, Replica -ScriptBlock $Command Proksuvannya
set action=c:\scripts\action.cmd
imposta log=c:\scripts\log.txt
:inizio
se esiste %trigger% avvia %action% & echo %time% %date%>>%log% & del %trigger%
sleep.exe 5
vai a iniziare
Uscita
Se necessario, è possibile collegarsi alla macchina lontana da quella macchina, con la quale è richiesto il controllo. Zrobleno tse z metoyu security per cambiare il rizik nella sessione malvagia del keruvannya remoto, o il DNS che si sostanzia per sostituire la macchina remota e dimenticare gli script sulle macchine, come se non ti fosse permesso.
get-item wsman:\localhost\Client\TrustedHosts
per permetterti di connetterti a tutti
set-item wsman:localhost\client\trustedhosts -value *
Se si abilita l'accesso per tutti * WinRM specificati si collegherà a TUTTE le macchine senza ricablare. Ricorda quello che dici a te stesso per il potenziale male della dimensione locale. In breve, specifica gli indirizzi host a cui devi connetterti, quindi WinRM consentirà tutti gli altri indirizzi o nomi. Se una macchina è gestita, dovrebbe trovarsi in un dominio che considera attendibili tutte le macchine in quel dominio. Se non è nel dominio, o in un altro dominio, è necessario inserire l'indirizzo in TrustedHosts altrimenti la macchina si collegherà ad esso. Aggiungi a te stesso in auto fino a quando non siamo collegati.
############################################################### # ############################################ # aggiungi NewHost all'elenco TrustedHost con il filtro, quindi questa riga può già essere # # .\Add-TrustedHost.ps1 192.168.2.1 ############################################## ## ############################################################################################ ### # ## param ($NewHost = "192.168.2.89") Write-Host "aggiungere host: $NewHost" $prev = (get-item WSMan:\localhost\Client\TrustedHosts).value if (($prev .Contains( $ NewHost)) -eq $false) ( if ($prev -eq "") ( set-item WSMan:\localhost\Client\TrustedHosts -Value "(!LANG:(!LANG:$NewHost)"
}
else
{
set-item WSMan:\localhost\Client\TrustedHosts -Value "$prec, $NuovoHost"
}
}
Write-Host ""
Write-Host "Now TrustedHosts contains:"
(get-item WSMan:\localhost\Client\TrustedHosts).value
!} !}
in revіryає chi є un tale record, come se non aggiungesse nulla all'elenco. La chiamata può essere effettuata dalla riga di comando inserendo l'indirizzo o il nome.
1. Sessioni 1-to-1
gridato dalla squadra
Enter-PSSession -ComputerName Test
Togli l'involucro su una macchina remota. Puoi connetterti a te stesso inserendo localhost. I prestiti alternativi vengono assegnati con il parametro -Credenziali, chiuso dal cmdlet uscita-PSSession
Questo metodo è il migliore per operazioni semplici, zaishov, dopo aver scambiato il server e aver effettuato la connessione. Se devi eliminare i cambiamenti nella folla, hai bisogno di una tripla operazione (molti anni o più giorni), hai bisogno di più opportunità di amministrazione, quindi devi vincere la tecnica chiedendo. Commento.
gli oggetti passati attraverso la rete si formano e cessano di essere vivi. Il fetore si vede dai metodi, le autorità vengono abbandonate. Vityagti ob'єkt sulla tua macchina, pochakluvat e spingi indietro non vanno. Se è necessario scrivere di più, lo aggiungo bene.
Invoca-comando
indichiamo ciò che possiamo vedere nel modo seguente:
$sb = (comandi per la macchina remota divisa con una virgola)
trasferiti su macchine remote Test1 e Test2
Invoke-Command -ComputerName Test1, Test2 -ScriptBlock $sb
alla volta puoi lanciare su 32 auto. Come credito alternativo, vince il parametro -CredentialTieni presente che ci sarà un nuovo falco pescatore da quel lato, quindi il tuo script non sovrascrive il valore dalla tua console e gli script modificati possono apparire su quella barca vuota. A questo, invia istruzioni e script già pronti con parametri.
per una riscrittura completa di Invoke-Command, è necessario modificare le righe in blocchi di script. Ad esempio, hai dei comandi per trovarsi in un elenco del genere, devi generare una riga, convertirla in ScriptBlock e modificarla in computer remoto:
$sb = ::Crea($SomeString) kuda78
All'articolo manca un arco momento importante- Trasferimento dei parametri dallo script alla macchina remota.
param(
$targetEnvName,
$targetNome utente)
$Globale:ErrorActionPreference = "Interrompi"
#…
}
Quindi vere omissioni. Zrobiv svidomo, per non molestare uno sguardo con parametri e descrizioni. Dyakuyu. Il parametro -ArgumentList funziona sia con i blocchi di script che con gli script
Se da quel lato viene creata una copia del vishik da appendere permanentemente in memoria, e gli vengono inviati comandi. Di conseguenza, è possibile riconnettersi ad esso, eseguire il cenity per un vikonannya, tagliare con script diversi o coristuvaches diversi. Ad esempio, hai una serie di script che funzionano un compito alla volta, skin da loro in base al quale puoi connetterti fino a una sessione remota, lavorare i risultati del lavoro dei comandi avanti, madri di uno zavantage moduli , le modifiche principali, la tappa successiva, fino alla fine del .
$DC01 = Nuova-PSSession -ComputerName DC01 $Controllers = Nuova-PSSession DC01, DC02, DC03
puoi utilizzare gli stessi parametri di connessione di Invoke-Command
Yakscho 1 a 1
Enter-PSSession -Sessione $DC01
Yakscho 1-a-molti
Invoke-Command -Sessions $Controllers -ScriptBlock (get-eventlog -logname security -newest 50)
puoi vedere se riesci a vedere la sessione di aiuto Get-PSSession, chiudi Remove-PSSession
chiudere tutte le sessioni
Get-PSSession | Rimuovi PSSession
puoi connetterti alla sessione con l'aiuto di Connect-PSSession, connetterti tramite Disconnect-PSSession