【问题标题】:Powershell Get-ChildItem doesn't work properly on IIS directoryPowershell Get-ChildItem 在 IIS 目录上无法正常工作
【发布时间】:2013-06-16 18:21:59
【问题描述】:

我打算编写一个简单的别名“iis”来调用 IIS 管理器,即“C:\Windows\System32\inetsrv\InetMgr.exe”

set-alias iis "OpenIIS.ps1"

在 OpenIIS.ps1 我有

$item = "C:\Windows\system32\inetsrv\InetMgr.exe"
invoke-item -path $item

这不起作用。我得到的错误是“系统找不到指定的文件”

事实上,在 inetsrv 上执行 Get-ChildItem 不会显示 InetMgr.exe(与 -Force 开关没有区别)

Get-ChildItem C:\Windows\system32\inetsrv\*.exe -force

显然我可以在资源管理器中看到它,我可以使用 cmd 启动它,但似乎不能使用 Powershell。此外,Powershell 以管理员身份运行。

发生了什么事?

作为一种解决方法,我尝试创建指向该文件的链接,然后从 Powershell 调用该链接。我现在得到一个“未指定”的 Win32Exception。

我最初使用的是 64 位 Powershell,但在 x86 Powershell 上得到了相同的结果(都以管理员身份运行)

【问题讨论】:

    标签: powershell


    【解决方案1】:

    您是否处于提升的 PowerShell 提示符下?除非您将 -Force 参数与 Get-ChildItem 一起使用,否则某些系统文件可能不会显示。

    【讨论】:

    • 应该在问题中提到,这是我尝试的第一件事。输出没有区别
    • 我刚刚在我的实验室设置中尝试了相同的设置(以域管理员身份登录,还以本地管理员身份登录)并且脚本中的所有内容都对我有用。
    • 我在 x86 Powershell 中以管理员身份尝试过。没有运气。我也试过重启机器。
    • start-process -filepath "C:\Windows\system32\inetsrv\InetMgr.exe" 给你什么?
    • 与调用相同的错误:'此命令无法运行,因为错误:系统找不到指定的文件。"
    【解决方案2】:

    我认为显然 InetMgr.exe 文件不存在,因为当我在上述目录中执行 get-childitem 时,它在那里列出了“InetMgr.exe”。

    这可能不是 Get-ChildItem 或您创建的别名的问题,而是您的 IIS 服务器。

    【讨论】:

      猜你喜欢
      • 2015-03-26
      • 1970-01-01
      • 1970-01-01
      • 2013-11-19
      • 1970-01-01
      • 2023-01-17
      • 2021-05-01
      • 2021-10-30
      • 1970-01-01
      相关资源
      最近更新 更多