Mijn script gedraagt zich anders naargelang de input...
... een administrative share is
... een lokaal pad is
... een share is
Die gaat in de volgende PoSh-code
De eerste regular expression wil maar niet lukken. Nochtans:
Nu, ik maak me er geen illusies over: het ligt aan mij en niet aan regex
Maar na een hele dag code-staring zie ik het probleem zelf niet meer. Als iemand met gestrekte vinger de fout kan aanwijzen, mijn dank.
... een administrative share is
code:
1
| \\server\drive$ |
... een lokaal pad is
code:
1
| drive:\folder |
... een share is
code:
1
| \\server\share |
Die gaat in de volgende PoSh-code
PowerShell:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| If ($($CurrentFolder -Match "^\\\\[a-zA-Z0-9\.]\\[a-zA-Z]\$\\") -EQ $True) { $LocalPath = $($CurrentFolder).Replace("$",":").Replace("$("\\"+$Computername+"\")","") $LocalShareName = $($Win32_Shares | Where-Object {$_.Path -EQ $LocalPath}).Name $ShareName = $Win32_LogicalShareSecuritySettings | Where-Object {$_.Name -EQ $LocalShareName} } ElseIf ($($CurrentFolder -Match "^[a-zA-Z]:\\") -EQ $True) { $LocalShareName = $($Win32_Shares | Where-Object {$_.Path -EQ $CurrentFolder}).Name $ShareName = $Win32_LogicalShareSecuritySettings | Where-Object {$_.Name -EQ $LocalShareName} } Else { $LocalShareName = $CurrentFolder.Replace("$("\\"+$Computername+"\")","") $ShareName = $Win32_LogicalShareSecuritySettings | Where-Object {$_.Name -EQ $LocalShareName} } |
De eerste regular expression wil maar niet lukken. Nochtans:
code:
1
2
| ^ \\ \\ [a-zA-Z0-9\.] \\ [a-zA-Z] \$ \\ Begin met | Backslash | Backslash | Cijfers, letters, punten | Backslash | Letters | Dollarteken | Backslash |
Nu, ik maak me er geen illusies over: het ligt aan mij en niet aan regex