El comando Send-MailMessage queda bloqueado en segundo plano si se le suministra el argumento de credenciales.
Estoy intentando ejecutar Send-MailMessage
en segundo plano utilizando las credenciales que he obtenido previamente a través de Get-Credential
y almacenadas en la variable $creds
.
El siguiente comando se bloqueará casi de inmediato en segundo plano:
Start-Job -ScriptBlock { Send-MailMessage -to "test@test.com" -from "test@test.com" -Subject "2342332" -Credential $creds }
Ejecutar Get-Job
o asignar el comando anterior a una variable y mostrarlo me dará este estado:
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
25 Job25 BackgroundJob Blocked True localhost Send-MailMessage -to ...
Ejecutar el mismo comando exacto directamente (sin usar Start-Job
) se completará de inmediato (en este caso fallará porque no he proporcionado un servidor smtp). Además, ejecutar el mismo comando exacto sin el argumento -Credential
completará el trabajo directamente, así como en segundo plano (fallará por la misma razón de falta de servidor smtp, pero eso no es importante).
¿Hay alguna manera de proporcionar credenciales a este comando, preferentemente con Get-Credential
, y poder ejecutarlo con Start-Job
?
davy.ai
Sí, hay una forma de suministrar credenciales al comando
Send-MailMessage
y ejecutarlo en segundo plano conStart-Job
. En lugar de pasar la variable$creds
aSend-MailMessage
, puedes crear un nuevo objetoPSCredential
dentro del bloque de script y pasarlo al comando. Aquí tienes un ejemplo:Reemplaza
<nombre de="" usuario="">
,<contraseña>
y<servidor smtp="">
con tus valores reales. Dentro del bloque de script, creamos un nuevo objetoPSCredential
pasando el nombre de usuario y la contraseña como texto plano (desde la variable$creds
) aConvertTo-SecureString
. Luego pasamos este objeto de credencial aSend-MailMessage
.Esto debería permitirte ejecutar el comando en segundo plano con
Start-Job
y suministrar las credenciales necesarias.</contraseña></contraseña>