Ik heb het toch maar even op me genomen om te kijken of ik zelf een scriptje kan schrijven. Ik ben begonnen in PowerShell, sinds je zelf ook gebruik maakt van Windows 10.
code:
1
2
3
4
5
6
| $WebDAVShare = "\\stack.tamriel.nl@SSL\remote.php\webdav\"
$User = "gebruikersnaam"
$PWord = ConvertTo-SecureString -String "W@chtwoord" -AsPlainText -Force
$Credential = New-Object -TypeName "System.Management.Automation.PSCredential" -ArgumentList $User, $PWord
(Invoke-WebRequest https://stack.tamriel.nl/remote.php/webdav/ -Credential $Credential -Method Options).Headers.DAV
New-PSDrive -Name "S" -PSProvider FileSystem -Root $WebDAVShare -Credential $Credential -Description "TransIP Stack" |
Indien er helemaal geen
-credential wordt meegegeven binnen het New-PSDrive commando, dan wordt de drive vreemd genoeg gewoon verbonden. Maar dan kun je er natuurlijk niets mee. Op het moment dat je wel
-credential gebruikt, krijg je de volgende fout:
New-PSDrive : The operation being requested was not performed because the user has not been authenticated
At line:6 char:1
Dit komt voor bij zowel de vooraf ingegeven credentials, als via het lege statement, wanneer je het via een dialoogvenster moet invullen.
Ik ga nog even verder op zoek naar een oplossing hoe dit wel gaat werken.
edit:
Ik heb het voor de grap even uitgeprobeerd met Net Use, sinds PowerShell's New-PSDrive blijkbaar niet goed samenwerkt met de combinatie van credentials en WebDAV.
Er zit wel een beetje een twist aan het gebruik van Net Use. Het probleem is namelijk dat je het via een UNC moet inladen. Dit had ik persoonlijk niet helemaal verwacht, sinds je het namelijk via dat dialoogvenster wel gewoon kunt invoeren op die manier. Ik heb het via deze regel voor elkaar gekregen:
code:
1
| Net Use S: \\stack.tamriel.nl@SSL\remote.php\webdav\ /User:entetex W@chtwoord /persistent:no |
Na
Net Use krijg je als eerste de drive letter waar je hem aan wil koppelen. Ik gebruik hier
S: omdat dat de eerste letter is van STACK, maar dat is natuurlijk helemaal aan jezelf. Hierna komt de te koppelen locatie. Dit moet in het zogenaamde
UNC formaat. Aangezien het een SSL verbinding is, maar je nu geen
https mag intypen, doe je dit door
@SSL te schrijven achter het tld. Niet vergeten om het hele WebDAV adres er achter te zetten, anders werkt het niet. De credentials geef je op via
/User gevolgd door je gebruikersnaam en wachtwoord. En als laatste zet je er
/persistent:no achter om er voor te zorgen dat het adres niet meer geladen is als de computer opnieuw is opgestart.
Achter deze code zit natuurlijk een nadelen aan: Je slaat je wachtwoord onveilig op in een script. Maar afgezien daarvan kun je dit script wel gebruiken in je usecase. Als het goed is zou het hiermee moeten werken als je het opstart.
Je zou zelfs een .bat kunnen maken met een link die dat andere bestandje opstart nadat de eerste regel is voltooid. Maar dan zou je er van uit moeten gaan dat het bestand dat je in je STACK probeert te bewerken niet meer wordt gesloten voor je de computer afsluit, want anders gaat ie steigeren als hij het pad niet opnieuw kan mounten.
Ik veronderstel dat je je bestand niet in een keer kunt inladen omdat Windows pas gaat authenticeren met de host van het pad op het moment dat er voor het eerst vanuit Windows zelf iets wordt opgevraagd. Ik heb dit probleem ook wel eens ervaren vanaf een
gewone SMB share. Ik had daar een KeePass database op opgeslagen en kon deze niet eerder openen tot nadat ik de Mount had geopend in Explorer.
Hoop dat dit je heeft geholpen, anders kijken we nog even verder.
[Voor 50% gewijzigd door entetex op 15-09-2016 01:17. Reden: Extra info omtrent Net Use]