【发布时间】:2017-11-07 22:30:20
【问题描述】:
我对 Powershell 还是很陌生,我认为这将是一件容易的事。对于我的工作,我需要一遍又一遍地创建一组文件夹,此时我已经厌倦了用鼠标来做这件事,因为我可以自动完成任务并继续处理更紧迫的问题。下面是我正在尝试做的一个示例。
$cred = Get-Credential
$Test1 = Test-Path "$env:HOMEDRIVE\Inetpub\wwwroot\MAKEthisFOLDER"
if ($test1 -eq $false) {
new-item "$env:HOMEDRIVE\Inetpub\wwwroot\MAKEthisFOLDER" -ItemType Directory -Credential $cred
}
else {
Write-Host "Folder already exists" -ForegroundColor Yellow -BackgroundColor red
}
我想我可以将我的凭据传递给 new-item 并让它创建目录。相反,我收到一个错误,将在下面列出。如果我尝试在不指定凭据的情况下运行此脚本,则会列出第二个错误。
第一个错误:
文件系统提供程序仅支持 New-PSDrive 上的凭据 cmdlet。在不指定凭据的情况下再次执行该操作。
第二个错误:
新项目:访问路径“MAKEthisFOLDER”被拒绝。
我知道这非常简单,但任何想法都会非常感激。
【问题讨论】:
-
您当前的用户帐户是否有权更改该目的地?如果是,则无需指定
-Credential -
如果您的帐户无权访问该位置,我建议您也将
-Credential $cred传递给Test-Path,否则会因访问被拒绝而出错。 -
@iRon
env:是驱动器,是的,但从该驱动器调用变量只是一个字符串。$env:HomeDrive.GetType() => System.String