Skip to main content
  • Place orders quickly and easily
  • View orders and track your shipping status
  • Create and access a list of your products

Recurso de senha segura do Dell Command | PowerShell Provider

Summary: Recurso de senha segura do Dell Command | PowerShell Provider (DCPP), ConvertTo-SecureString, ConvertFrom-SecureString

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Instructions

Produtos afetados:

  • Dell Command | PowerShell Provider

O conceito por trás de senhas seguras é que, em scripts de produção, não devemos passar senhas importantes como se fossem de domínio público. Trata-se de uma grave falta de segurança. Usando o PowerShell, podemos proteger uma senha ou, pelo menos, reduzir a visibilidade dela. Primeiro, discutimos aspectos gerais da string segura e, em seguida, discutimos como o Dell Command PowerShell Provider (DCPP) aproveita o recurso inato do PowerShell para proteger a senha.

Considere que queremos ler o nome de usuário e a senha do usuário no console. Sabemos que o nome de usuário geralmente não requer nenhuma segurança e pode ser visível para todos. Mas no caso da senha, não devemos deixar estranhos saberem a senha do usuário. Podemos facilitar esse requisito com os comandos abaixo:

$user = Read-Host "Enter Username"

$pass = Read-Host "Enter Password" -AsSecureString

O texto acima traz uma visão geral de como podemos aumentar a segurança quando precisamos proteger informações críticas, como uma senha. No exemplo acima, a variável $pass é de tipo System.Security.SecureString. Temos uma introdução a dois outros cmdlets amplamente usados que o PowerShell fornece para facilitar campos seguros antes de abordar aspectos do DCPP.

Os dois comandos são ConvertTo-SecureString e ConvertFrom-SecureString. ConvertTo-SecureString converte um texto sem formatação para tipo System.Security.SecureString. Um exemplo é mostrado abaixo:

"P@ssword1" | ConvertTo-SecureString -AsPlainText -Force

No exemplo acima, o texto sem formatação P@assword1 é convertido para tipo System.Security.SecureString. Isso é mais uma informação e pode ou não ser amplamente utilizado.

O próximo cmdlet ConvertFrom-SecureString é um cmdlet mais amplamente usado para converter strings seguras em strings padrão criptografadas. A principal limitação de ConvertTo-SecureString é que sua saída não pode ser gravada diretamente em um arquivo para uso futuro. Temos que usar ConvertFrom-SecureString que converte System.Security.SecureString em uma string padrão criptografada que pode ser convenientemente salva em um arquivo, para superar essa limitação.

Estamos convertendo texto sem formatação P@ssword1 para proteger a string e, em então, canalizar sua saída para ConvertFrom-SecureString para obter uma string criptografada que pode ser salva com segurança e conveniência em um arquivo.

Como exemplo, digamos que em um computador a senha de administrador tenha sido definida e que seja necessário salvá-la em um arquivo. Podemos fazer isso usando:

Read-Host "Enter Admin Password" -AsSecureString |
ConvertFrom-SecureString | Out-File "C:\Scripts\AdminPassword.txt"

Podemos recuperar essa senha de administrador em uma variável como um objeto seguro, como:

$pass = Get-Content "C:\Scripts\AdminPassword.txt" | ConvertTo-SecureString

Agora, vamos considerar como aproveitar uma senha segura para DCPP. No DCPP, se o computador do usuário tiver a senha do sistema ou de administrador definida, para todos os comandos set temos que passar a respectiva senha. Portanto, fornecer essa senha como texto sem formatação viola a segurança. Temos que passar a senha como System.Security.SecureString. Além disso, quando passamos uma senha SecureString temos que passá-la com um switch -PasswordSecure e não o switch normal –Password . Um exemplo é exibido abaixo em que o usuário está tentando definir AdvancedBatteryChargeCfg para Disabled e passar a senha SecureString .

Set-item AdvancedBatteryChargeCfg disabled –PasswordSecure $pass

Aqui $pass contém a senha do sistema e de administrador e é do tipo System.Security.SecureString. Semelhante à discussão acima, podemos ler $pass como:

$pass = Read-Host "Enter system/admin password" –AsSecureString

Podemos salvar $pass para um arquivo, se necessário, como:

$pass| ConvertFrom-SecureString | Out-File "C:\Scripts\AdminPassword.txt

Additional Information

Affected Products

Dell Command | Powershell Provider
Article Properties
Article Number: 000146459
Article Type: How To
Last Modified: 18 Jul 2024
Version:  8
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.