powershell Invoke-Command InDisConnectedSession SessionOption和IdleTimeout One Line

slwdgvem  于 2022-11-10  发布在  Shell
关注(0)|答案(2)|浏览(106)

我正在试着做以下简单的一句话:

Invoke-Command -ComputerName localhost -Credential Administrator { ipconfig } -InDisconnectedSession -SessionOption @{ IdleTimeout = 180000 }

但会出现以下错误:

Invoke-Command : The specified IdleTimeout session option 0 (seconds) is not
a valid period.  Specify an IdleTimeout value that is greater than or equal to
the minimum allowed 60 (seconds).
At line:1 char:1
+ Invoke-Command -ComputerName localhost -Credential Administrator { ip ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Invoke-Command], PSArgumentException
    + FullyQualifiedErrorId : Argument,Microsoft.PowerShell.Commands.InvokeCommandCommand

documentation的示例16看起来非常相似,但我无法让它同样工作。

oxcyiej7

oxcyiej71#

关于以下几点:
Invoke-Command -ComputerName localhost -Credential Administrator -ScriptBlock { ipconfig } -InDisconnectedSession -SessionOption (New-PSSessionOption -IdleTimeout 180000)
希望能有所帮助。

um6iljoc

um6iljoc2#

问题是PSSessionOption对象中的所有时间值都是[TimeSpan]类型。您必须以刻度(ms*1000)为单位指定IdleTimeout值,或者使用TimeSpan类的转换方法才能从哈希表进行转换。

$parameters @{
  ComputerName='localhost'
  Credential='Administrator'
  ScriptBlock = { ipconfig } 
  InDisconnectedSession=$true
  SessionOption = @{ IdleTimeout = [TimeSpan]::FromSeconds(180) }
}
Invoke-Command @parameters

相关问题