[RegEx] UNC Administrative share

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • YellowOnline
  • Registratie: Januari 2005
  • Laatst online: 28-03-2023

YellowOnline

BEATI PAVPERES SPIRITV

Topicstarter
Mijn script gedraagt zich anders naargelang de input...

... 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 :) 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.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

[a-zA-Z0-9\.] zegt "match één karakter dat alfanumeriek is of een punt". Vervolgens zeg je nergens dat je meer van zulke karakters op rij wilt kunnen matchen. Zet eens een + of een * achter je charclasses waar dat relevant is. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • YellowOnline
  • Registratie: Januari 2005
  • Laatst online: 28-03-2023

YellowOnline

BEATI PAVPERES SPIRITV

Topicstarter
Ow :F

Thanks NMe. Ik stop er maar mee voor vandaag denk ik :X

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Overigens ben je in je PowerShell-voorbeeld ook vergeten een backslash te escapen maar in je regexp-uitleg eronder heb je dat wel gedaan. Ik zou het even dubbelchecken. :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.