我有一个powershell脚本。执行此操作将创建与远程计算机的会话并在远程计算机内执行一些脚本块。执行完毕后,我需要发一封邮件。
所以,我在本地获得所需的参数(如from,to,subject,body,smtp server,credentials)等,如下所示:
$param = @{
SmtpServer = 'SMTPServer'
Port = 587
UseSsl = $true
Credential = $crede
From = 'server@domain.in'
To = 'userv@domain.in'
Subject = 'Hi'
Body = "Hello"
}
$ crede具有值(明确给出用户名,从文本文件读取密码)。
我称之为param,如下所示:
Send-MailMessage $using:param
This is inside an Invoke-Command.
但是当我运行这个程序时,它会询问我的邮件消息详细信息,如from,to,smtp server等。请注意,这些值是在$ param本地给出的。我猜$ param值没有传递给远程会话。
有人可以支持我。任何帮助都会非常感激。
答案 0 :(得分:1)
我遇到了类似的问题。
$processName = myProcess.exe
$session = New-PSSession -ComputerName $anycomputer -Credential $credentials
# powershell syntax requires -Scriptblock and { on this line
Invoke-Command -Session $session -ScriptBlock {
param([string] $processName)
Get-Process -Name $processName
} -Args $processName
Remove-PSSession $session
答案 1 :(得分:0)
$ processName = myProcess.exe $ session = New-PSSession -ComputerName $ anycomputer -Credential $ credentials
Invoke-Command -Session $ session {Get-Process -Name $ using:processName}