Executando o PowerShell remotamente
Em muitas situações você não estará interativamente logado no computador que você deseja administrar e nesse caso você pode fazer o uso de sessões remotas do PowerShell.
Você pode iniciar sessões remotas de diversas maneiras como será descrito adiante.
Remoting PowerShell é construído sobre WinRM para fornecer acesso remoto a máquinas usando os Enter-PSSession e o Invoke-Command. Sempre que um usuário se conecta a um computador remoto usando uma dessas cmdlets, o serviço cria WinRM uma nova instância de um processo para sediar a sessão.
o fazer execuções de comandos do PS remotamente você está sujeito a interrupções causadas for falhas na rede. O PowerShell suporta sessões persistentes ou resilientes (PSSessions). Uma sessão persiste permite criar e salvar uma sessão em um computador remoto e você pode desconectar a sessão e então reconectar quando necessário. O diferencial desse recurso é os comandos do PowerShell continuarão em execução no computador remoto, mesmo quando você não estiver conectado na sessão o que antes do PS 3.0 não podia ser feito. As sessões persistentes são criadas com o cmdlet New-PSSession
Quando estiver trabalhando com scripts e ou executando comandos em ambiente de domínio, você pode solicitar credenciais especificas para execução de determinadas tarefas, principalmente aquelas que exigem privilégios administrativos.
$cred = Get-Credential
Ou você pode especificar ao conta para facilitar ainda mais...
$admin = Get-Credential contoso\administrator
Você pode criar scripts que não solicitam a senha, mas tenha em mente que isso pode não estar em conformidade com certos padrões de segurança.
O cmdlet Invoke-Command executa os comandos em computadores remotos e exibe o resultado no seu console. Isso é extremamente útil em ambientes com vários servidores ou computadores e você deseja executar comandos remotamente.
Invoke-Command -ComputerName osiris -ScriptBlock {Get-WmiObject Win32_Bios}
Você pode criar uma lista de servidores em um arquivo de TXT.
Invoke-Command -ComputerName (Get-Content Servers.txt) -ScriptBlock {GetProcess Notepad}
Use o cmdlet Get-ADComputer para criar uma lista de servidores
Invoke-Command -ComputerName (Get-Content Servers.txt) -ScriptBlock {Get-Process Notepad}
Adicione no seu bookmark https://danieldonda.github.io/PowerShell
- PowerShell Wiki
- Command-Lets
- Help Poderoso
- Funções
- Alias
- Controlando a exibição (saída) de informações
- Filtrando resultados na tela (Where Object)
- Módulos
- Scripts no Powershell
- Jobs e Scheduled Jobs
- Executando o PowerShell remotamente
- Gerenciando Servidores
- Gerenciando TCP IP
- Gerenciando o Hyper V
- Downloads