我经常对Powershell做很多事情,但昨天需要从zip存档中提取文件。在此过程中,我通过迭代zip anbd的内容来查找文件,将文件的(item)Name属性与文件名(例如abc.ps1)进行比较。
Code在当地工作,我很满意我得到的结果。 推送部署环境的代码在服务器上运行,代码告诉我它找不到abc.ps1。 进一步调查,我登录到服务器(作为我自己的帐户,而不是代码执行的服务帐户)。当我查看zip时,它正在查询我可以看到该文件,但它被命名为abc。 我有xyz.txt和def.pdf,但ps1文件只是abc。我知道这是基于Windows资源管理器中的选项“隐藏已知文件类型的扩展名”。
使用服务帐户登录服务器,取消选中此选项并重新运行脚本修复了所有问题,它能够根据名称+ ext来填充文件。
有没有办法强制PS在运行时不考虑这些资源管理器选项?
我目前正考虑应用GPO来阻止任何系统启用此选项。