【发布时间】:2016-04-14 16:37:15
【问题描述】:
我遇到了一个小问题,我必须要求用户不要在文件夹名称中添加反斜杠“\”,因为当我组合 $Server 和 $Parent 时它会删除服务器名称......我该怎么做防止这种情况发生?我宁愿不限制我的用户添加反斜杠...
另外,我一直试图阻止 c:、d:、e: 等驱动器在 $Parent 中使用,但即使我使用 -in 或 -contains 它仍然允许 c:\要输入 xxxx 或 d:\xxxx。我该如何防止呢?
# File share server name
$Server = Read-Host -prompt "Verify Server Server Name (ie ECCOFS01)"
If ([string]::IsNullOrWhiteSpace($Server)) {
Write-Host "You entered $Server which is an incorrect value: This Script is now Exiting." -Foreground "White" -Background "Red"
Exit
}
else {
Write-Host "You Entered $Server" -Foreground "Black" -Background "Yellow"
}
# Parent folder setup
$Parent = Read-Host -prompt "Enter full parent path that will contain the new folder(ie. Groups\ECCO IT) - Do NOT start with \. Please use correct spelling and capitalization (ie. Parent Folder Name). "
If ([string]::IsNullOrWhiteSpace($Parent) -or ($Parent -eq "c:") -or ($Parent -eq "d:")) {
Write-Host "You entered $Parent which is an incorrect value: This Script is now Exiting." -Foreground "White" -Background "Red"
Exit
}
else {
Write-Host "You Entered $Parent" -Foreground "Black" -Background "Yellow"
}
$ServerParentShare = "\\"+[IO.Path]::Combine($Server,$Parent)
# New Folder Name
$Name = Read-Host -prompt "Enter New Folder Name. Please use correct spelling and capitalization (ie. New Test Folder)"
If ([string]::IsNullOrWhiteSpace($Name)) {
Write-Host "You entered $Name which is an incorrect value: This Script is now Exiting." -Foreground "White" -Background "Red"
Exit
}
else {
Write-Host "You Entered $Name." -Foreground "Black" -Background "Yellow"
}
$Path = [IO.Path]::Combine($ServerParentShare,$Name)
Write-Host = "New Folder Path = $Path" -Foreground "Black" -Background "Yellow"
# Choose parent OU
$Country = Read-Host -prompt "Enter the Country OU that the Security Group will reside in (i.e. Global, Americas, Europe, Asia Pacific)"
If ([string]::IsNullOrWhiteSpace($Country)) {
Write-Host "You entered $Country which is an incorrect value: This Script is now Exiting." -Foreground "White" -Background "Red"
Exit
}
else {
Write-Host "---------------------VERIFY ENTRY---------------------" -Foreground "Black" -Background "Yellow"
Write-Host "OU = $Country, New share location = $Path" -Foreground "Black" -Background "Yellow"
}
# Option to continue or cancel the script
$Continue = Read-Host -prompt "Does this look correct? Y or N?"
If (($Continue -eq "N") -or ($Continue -eq "No")) {
Write-Host "Please Start over. This Script is now Exiting." -Foreground "White" -Background "Red"
Exit
}
else {
Write-Host "Make sure to verify all folders and and AD Groups once complete." -Foreground "Yellow" -Background "Black"
}
【问题讨论】:
-
我其实问了上面两个问题。你给我的链接只有其中一个的答案,而不是两个。我应该删除第一个问题并留下第二个问题吗?
标签: windows powershell syntax file-sharing