Omitir para ir al contenido principal
  • Hacer pedidos rápida y fácilmente
  • Ver pedidos y realizar seguimiento al estado del envío
  • Cree y acceda a una lista de sus productos

Función de contraseña segura de Dell Command en PowerShell Provider

Resumen: Dell Command | Característica de contraseña segura de PowerShell Provider (DCPP), ConvertTo-SecureString, ConvertFrom-SecureString

Este artículo se aplica a   Este artículo no se aplica a 

Instrucciones

Productos afectados:

  • Dell Command | PowerShell Provider

El concepto detrás de las contraseñas seguras es que en los scripts de producción no debemos dejar contraseñas importantes a simple vista. Se trata de una falta de seguridad grave. Por lo tanto, con PowerShell podemos proteger una contraseña o, al menos, reducir su visibilidad. En primer lugar, analizaremos los aspectos generales de la cadena segura y, luego, cómo Dell Command PowerShell Provider (DCPP) aprovecha la característica inherente de PowerShell para proteger la contraseña.

Tenga en cuenta que deseamos leer el nombre de usuario y la contraseña del usuario en la consola. Sabemos que el nombre de usuario generalmente no requiere ninguna seguridad y puede ser visible para todos. Pero no debemos permitir que extraños conozcan la contraseña del usuario. Podemos facilitar este requisito con los comandos que se indican a continuación:

$user = Read-Host "Enter Username"

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

Lo anterior es una visión general de cómo podemos agregar más seguridad cuando debemos proteger información importante, como una contraseña. En el ejemplo anterior, la variable $pass es del tipo System.Security.SecureString. Obtenemos una introducción de otros dos cmdlets ampliamente utilizados que PowerShell proporciona para facilitar la protección de los campos antes de abordar aspectos de DCPP.

Los dos comandos son ConvertTo-SecureString y ConvertFrom-SecureString. ConvertTo-SecureString convierte texto sin formato al tipo System.Security.SecureString. A continuación, se muestra un ejemplo:

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

En el ejemplo anterior, el texto sin formato P@assword1 se convierte al tipo System.Security.SecureString. Esto es informativo y puede o no ser ampliamente utilizado.

El siguiente cmdlet ConvertFrom-SecureString es un cmdlet más utilizado que se usa para convertir cadenas seguras en cadenas estándar cifradas. La principal limitación de ConvertTo-SecureString es que su resultado no se puede escribir directamente en un archivo para su uso futuro. Tenemos que usar ConvertFrom-SecureString que convierte System.Security.SecureString en una cadena estándar cifrada que se puede guardar convenientemente en un archivo, para superar esta limitación.

Estamos convirtiendo texto sin formato P@ssword1 para proteger la cadena y luego canalizar su resultado a ConvertFrom-SecureString para obtener una cadena cifrada que se puede guardar de manera segura y conveniente en un archivo.

Por ejemplo, en una computadora, si se ha establecido la contraseña de administrador y debemos guardarla en un archivo. Podemos hacer esto usando:

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

Podemos recuperar esta contraseña de administrador en una variable como un objeto seguro, como:

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

Ahora consideremos cómo aprovechar una contraseña segura para DCPP. En DCPP, si la computadora del usuario tiene configurada una contraseña de administrador o de sistema, para todos set los comandos tenemos que aplicar la contraseña respectiva. Por lo tanto, proporcionar esta contraseña como texto sin formato infringe la seguridad. Tenemos que pasar la contraseña como System.Security.SecureString. Además, cuando pasamos una contraseña SecureString tenemos que pasarla con un switch -PasswordSecure y no el switch –Password normal. A continuación, se muestra un ejemplo en el que el usuario intenta establecer AdvancedBatteryChargeCfg como Disabled y pasar la contraseña SecureString :

Set-item AdvancedBatteryChargeCfg disabled –PasswordSecure $pass

Aquí $pass contiene la contraseña del sistema y de administrador, y es del tipo System.Security.SecureString. De manera similar a la discusión anterior, podemos leer $pass como:

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

Podemos guardar $pass en un archivo, si es necesario, como:

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

Información adicional

Productos afectados

Dell Command | Powershell Provider