服务器调度PowerShell脚本:查找PowerShell.exe及确认版本的方法
验证PowerShell.exe的位置
$env:PSModulePath 是PowerShell用于存储第三方/系统内置模块的路径集合,本身并不存放PowerShell主程序,因此你在c:\windows\system32\windowsPowerShell\v1.0\Modules路径下找不到powershell.exe属于正常情况。
你可以通过以下两种方式快速定位正确的可执行文件路径:
- 方式一:命令行查询
打开任意已运行的PowerShell窗口或CMD窗口,执行命令:where powershell.exe
命令会返回系统中所有存在的PowerShell可执行文件完整路径,默认PowerShell 5.1的标准路径为C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe(此处的v1.0是微软为了兼容旧脚本保留的目录命名,实际存放的就是5.1版本程序,无需被目录名的版本号误导) - 方式二:手动浏览定位
在任务调度器填写运行程序的浏览窗口中,直接导航到C:\Windows\System32\WindowsPowerShell\v1.0\目录,即可直接找到powershell.exe文件选中使用。
确认PowerShell版本,定位5.1版本
$env:PSModulePath本身仅关联模块存储路径,和对应PowerShell程序的版本没有直接绑定关系,你可以通过以下方式确认版本:
- 单实例版本查询
启动你要验证的PowerShell程序后,在窗口执行命令:$PSVersionTable.PSVersion
输出结果中Major值为5、Minor值为1的就是你需要的5.1版本。 - 全系统批量版本查询
执行以下命令可以遍历系统中所有PowerShell可执行文件并输出对应版本:Get-ChildItem -Path C:\ -Filter powershell.exe -Recurse -ErrorAction SilentlyContinue | ForEach-Object { Write-Host "路径:$($_.FullName) 版本:$(& $_.FullName -NoProfile -Command '$PSVersionTable.PSVersion.ToString()')" }
内容的提问来源于stack exchange,提问作者Michele
相关产品推荐
相关产品推荐

