2017-10-09 48 views
0

我已经在Windows 10,但不是在Windows Embdedded标准以下脚本工作:PowerShell脚本工作在Windows 10,但不是在Windows嵌入式标准

$LogTime = Get-Date -Format "MM-dd-yyyy_hh-mm-ss" 
$Path1= "TEST\TESTLog_$(get-date -f yyyy-MM-dd).txt" 
$AffPBS= Get-Process "LLCService.exe" | Select-Object ProcessorAffinity 
$AffLC= Get-Process "LCService.exe" | Select-Object ProcessorAffinity 
$AffinityLLCFinal = "LLC " + $AffPBS 
$AffinityLCFinal = "LC " + $AffLC 
$FinalOutput = $LogTime+" " +$AffinityLLCFinal +"  " + $AffinityLCFinal 
$FinalOutput | Out-File -Append $Path1 

我已运行Powershell_ISE作为管理员,还可以设置Set-ExecutionPolicy RemoteSigned

我得到在Windows 10中的结果:

10-09-2017_03-31-10 LLC @{ProcessorAffinity=63}  LC @{ProcessorAffinity=63} 

结果我得到的Windows 7:

10-09-2017_11-23-26 LLC  LC 

这似乎是Get-Process没有工作的Windows Embedded标准。有没有其他的方式来做到这一点。

+0

你为什么认定它不工作?这给了什么:'Get-Process“LLCService.exe”|选择对象ProcessorAffinity?如果这是空的,这会给出什么:'Get-Process explorer |选择processorAffinity'? –

回答

0

Win 10的PS版本为5.1。 Win 7可以有2.0或3.0。您可以尝试升级它。如果不是,在旧版本中,您将不得不使用Select-object -ExpandProperty "ProcessorAffinity"而不是简单地使用Select-object "ProcessorAffinity"

您也可以选择从win 10运行它,并使用Get-Process-ComputerName参数指定Win7计算机。但是,如果赢7需要与您登录的内容不同的凭证,则无法指定凭证。

在这种情况下,您可以使用Get-WMIObject -Class Win32_Process -ComputerName "Win7Computer" -Credential $PSCredentialObject但这会给您一个稍微不同的结果。我无法找到它的“Processor Affinity”属性。

+0

@Robin Sidharth:感谢队友及时回复。但不幸的是,这仍然无法正常工作。我试着用'Select-object -ExpandProperty'ProcessorAffinity“'。这再次适用于Windows 10.我只想在这里提到我测试的Windows版本是Windows Embedded Standartd,它是Windows 7的一个变体,我相信。 – user726720

+0

您是否尝试过使用Windows 10的-Computername参数或尝试在Win7上安装PS的较新版本? –

+0

伴侣,我升级了嵌入式服务器上的PS。现在工作正常。谢谢你的帮助。接受你的回答作为答案 – user726720

相关问题