Powershell schtasks输出采用不同的编码,无论是在本地运行还是在远程会话中运行
我正在尝试检查服务器上的调度任务,我希望使用后台作业和远程会话来加快脚本的执行。 但是,当我在远程会话中运行命令时,输出的区域性(或编码?)与在工作站上的不同。 我尝试使用新的PsSessionOption,但结果相同:Powershell schtasks输出采用不同的编码,无论是在本地运行还是在远程会话中运行,powershell,powershell-remoting,Powershell,Powershell Remoting,我正在尝试检查服务器上的调度任务,我希望使用后台作业和远程会话来加快脚本的执行。 但是,当我在远程会话中运行命令时,输出的区域性(或编码?)与在工作站上的不同。 我尝试使用新的PsSessionOption,但结果相同: 本地运行schtasks检查远程服务器,输出正常: PS>Get-Culture LCID Name DisplayName ---- ---- ----------- 10
PS>Get-Culture
LCID Name DisplayName
---- ---- -----------
1036 fr-FR French (France)
PS>schtasks -s servername /v /query /fo csv |ConvertFrom-Csv |select -first 1
Nom de l'hôte : servername
Nom de la tâche : \BITS_CCM_Incoming_{16
674A29-EDDD-43C3-9EF2-
2B2D64EFA6F5}
Prochaine exécution : 23/11/2012 22:38:00
Statut : Prêt
PS>$pso = New-PSSessionOption -Culture "fr-fr"
PS>etsn servername -SessionOption $pso
[servername]: PS C:\> get-culture
LCID Name DisplayName
---- ---- -----------
1036 fr-FR Français (France)
[servername]: PS C:\> schtasks /query /v /fo csv |ConvertFrom-Csv |select -First 1
Nom de l'h"te : servername
Nom de la tƒche : \BITS_CCM_Incoming_{16674A29-EDDD-43C3-9EF2-2B2D64EFA6F5}
Prochaine ex'cution : 23/11/2012 22:38:00
Statut : Pr^t
正如您所看到的,尽管使用了相同的文化,但输出的内容似乎不同。如何处理这个问题?我无法提供确切的答案,但请检查$outpuneCoding和[Console]::outpuneCoding本地和远程会话
将远程会话配置为与工作/本地会话匹配。过了一会儿,我发现我可以使用COM对象“Schedule.Service”检索不依赖于语言的任务信息:
icm -AsJob -JobName getTasks -ComputerName $servers -ScriptBlock{
$Schedule = new-object -com("Schedule.Service")
$Schedule.connect($env:computername)
$Tasks = $Schedule.getfolder("\").gettasks(0)
$Tasks | Select-Object Name,Path,State,Enabled,LastRunTime,LastTaskResult
}
$resu=wait-job getTasks |receive-job
remove-Job getTasks
$resu|sort PSComputerName
使用此代码并不更好:
$ce=[console]::OutputEncoding$oe=$OutputEncoding icm-Session$s-ScriptBlock{[console]::OutputEnconding=$using:ce;$OutputEncoding=$using:oe;schtasks}
我发现我可以在本地会话中更改[console]::OutputEncoding,但是,当我在远程会话中运行相同的命令时,会引发一个异常:[localhost]:PS C:\>[console]::outpunecoding=[system.text.encoding]::ascii异常lors de la dfinition de.outpunecoding/:.Descripteur non-valide/Au-caract-re-Ligne:1:1+[console]::outpunecoding=[system.text.encoding]::ascii+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~类别信息:未指定:(:)[],SetValueInvocationException+FullyQualifiedErrorId:设置时的例外