我想将远程设备(运行Windows IoT 的Raspberry Pi 2)的日期和时间设置为本地设备的日期时间值。
我创建一个变量$ dateTime来保存本地DateTime。 我将密码分配给远程设备连接到变量$ password。 我创建了一个凭证对象。 我使用Enter-PSSession连接到远程设备。 现在我已连接,我尝试使用Set-Date = $ dateTime |分配远程设备DateTime出字符串。
我无法将convertvalue“=”转换为“System.TimeSpan”错误。
$dateTime = Get-Date
$password = ConvertTo-SecureString "mypassword" -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential ("myremotedevice \Administrator",$password)
Enter-PSSession -ComputerName myremotedevice -Credential $cred
Set-Date = $dateTime | Out-String
一旦我通过PSSession连接,似乎$ dateTime变量超出了范围。有办法解决这个问题吗?
答案 0 :(得分:1)
我根本不会使用Enter-PSSession,因为那是交互式会话。
我会用这个:
$dateTime = Get-Date;
$password = ConvertTo-SecureString "mypassword" -AsPlainText -Force;
$cred = New-Object System.Management.Automation.PSCredential ("myremotedevice \Administrator",$password);
Invoke-Command -ComputerName myremotedevice -Credential $cred -ScriptBlock {
Set-Date -Date $using:datetime;
}
或者,如果我要执行多项操作:
$dateTime = Get-Date;
$password = ConvertTo-SecureString "mypassword" -AsPlainText -Force;
$cred = New-Object System.Management.Automation.PSCredential ("myremotedevice \Administrator",$password);
$session = New-PsSession -ComputerName -Credential $cred;
Invoke-Command -Session $session -ScriptBlock {
Set-Date -Date $using:datetime;
}
Invoke-Command -Session $session -ScriptBlock { [...] }
.
.
Disconnect-PsSession -Session $session;
Passing local variables to a remote session通常需要using
命名空间。