PowerShell脚本工作在Windows 10,但不是在Windows嵌入式标准
我已经在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标准。有没有其他的方式来做到这一点。
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”属性。
@Robin Sidharth:感谢队友及时回复。但不幸的是,这仍然无法正常工作。我试着用'Select-object -ExpandProperty'ProcessorAffinity“'。这再次适用于Windows 10.我只想在这里提到我测试的Windows版本是Windows Embedded Standartd,它是Windows 7的一个变体,我相信。 – user726720
您是否尝试过使用Windows 10的-Computername参数或尝试在Win7上安装PS的较新版本? –
伴侣,我升级了嵌入式服务器上的PS。现在工作正常。谢谢你的帮助。接受你的回答作为答案 – user726720
你为什么认定它不工作?这给了什么:'Get-Process“LLCService.exe”|选择对象ProcessorAffinity?如果这是空的,这会给出什么:'Get-Process explorer |选择processorAffinity'? –