【问题标题】:How do you delete/create/rename files after selecting the IIS Physical Path using Powershell?使用 Powershell 选择 IIS 物理路径后如何删除/创建/重命名文件?
【发布时间】:2013-11-01 21:18:38
【问题描述】:

我可以查询 IIS 并获取当前的物理路径: $sitepath = 获取网站 xyz.net |选择对象物理路径 但随后需要在此子目录中找到一个文件并删除/创建/重命名。我遇到的麻烦是我看到错误“找不到驱动器。名称为'@{physicalPath=d'的驱动器不存在。”对于我尝试应用于 $sitepath 的任何 cmdlet。 非常感谢,

【问题讨论】:

  • 该行之后的 $sitepath 是什么?我怀疑它是 1)散列或其他类似对象(而不是字符串)或; 2) 一个字符串,字面意思是 "@{physicalPath=d:\balhblah..}"

标签: iis powershell


【解决方案1】:

您需要首先从路径中获取文件信息或目录信息项。

只要 PhysicalPath 不包含环境变量(如 %SystemDrive%\inetpub\wwwroot),这将起作用:

$SiteFolder = get-item (get-website xyz.net).physicalpath
$fileInFolder="$($SiteFolder.fullname)\index.html")
$fileInFolder | gm;
$newFileHandle = $fileInFolder.Copy("C:\New\Path\Of\copiedFile")
$fileInFolder.Move("newfilename.htm"); 
$fileInFolder.Move("c:\new\Path\Of\File")
$FileInFolder.Delete()
$fileinFolder | Remove-Item

如果 PhysicalPath 中确实有系统变量,请将变量展开为完整路径,方法是将其展开:Expand Environmental Variables in PowerShell Strings,然后使用上述方法获取对文件对象的引用。

【讨论】:

  • 帮助很大,谢谢。一些小事情(可能与 PS 版本有关,不确定,我在 WS 2008 r2 上使用 v3)...
  • 第二行我改成了:
  • $fileInFolder="$($SiteFolder)\index.html"
  • 我已更新 Line2 以反映正确的属性名称(全名,不是全路径;抱歉)。
猜你喜欢
  • 2021-11-11
  • 1970-01-01
  • 1970-01-01
  • 2017-08-18
  • 1970-01-01
  • 2020-07-22
  • 2016-01-11
  • 1970-01-01
  • 2017-04-10
相关资源
最近更新 更多