[Frage] Funktioniert "FileExists" mit UNC-Pfaden?

Antworten
Benutzeravatar
skranz1982
Beiträge: 80
Registriert: 09 Okt 2014, 08:01

[Frage] Funktioniert "FileExists" mit UNC-Pfaden?

Beitrag von skranz1982 »

Hi Leute,

ich wüsst' gern, ob eine if-Abfrage auf FileExists mit UNC-Pfaden umgehen kann. Hintergrund: Ich möchte in einem userLoginScript Dateien von einem Netzlaufwerk ins AppData-Verzeichnis des Users kopieren. Klingt eigentlich nach keiner großen Aktion, aber klappen tut's nicht: Das Protokoll meldet immer wieder "FileExists("\\{FQDN des FileClusters}\users\{username}\Lotus\Notes\Data\bookmark.nsf") <<< result false"

Hier mein Code dazu:

Code: Alles auswählen

[Actions]
defVar $LogDir$
defVar $ProductID$  
defVar $MinimumSpace$
defVar $InstallDir$
defVar $ExitCode$
defVar $sUserName$
defVar $sAppData$
defVar $sSetupTxtPath$
defVar $sNotesIniPath$
defVar $sClusterPath$

set $LogDir$ = "%opsiLogDir%"
set $sUserName$ = getLoggedInUser
set $sClusterPath$ = "\\{FQDN des FileClusters}\users\" + $sUserName$
set $sAppData$ = "c:\users\" + $sUserName$ + "\appdata\local\IBM\Notes\Data"

; ----------------------------------------------------------------
; - Please edit the following values                             -
; ----------------------------------------------------------------
;$ProductID$ should be the name of the product in opsi
; therefore please: only lower letters, no umlauts, 
; no white space use '-' as a seperator
set $ProductID$     = "notes9"
set $MinimumSpace$	= "2 GB"
set $InstallDir$	= "%ProgramFiles32Dir%"
; the path were we find the product after the installation
; ----------------------------------------------------------------

comment "Show product picture"
ShowBitmap "%ScriptPath%\" + $ProductID$ + ".png" "Konfiguriere Notes 9"
Message "Configuring " + $ProductID$ + " ..."

Files_CopyConfigFiles
if FileExists($sClusterPath$ + "\bookmark.nsf")
	Files_CopyUserFiles
endif

; ****************************************************** secondary sections ******************************************************
[Files_CopyConfigFiles]
checkTargetPath = "$sAppData$"
copy -n "%ScriptPath%\configfiles\*.*" "$sAppData$"

[Files_CopyUserFiles]
copy -n "$sClusterPath$\Lotus\Notes\Data\bookmark.nsf" "$sAppData$"
copy -n "$sClusterPath$\Lotus\Notes\Data\desktop8.ndk" "$sAppData$"
Ich wünsche schon mal schöne Ostern und sende schöne Grüße aus Solingen,
Sebastian
Sebastian Kranz,
regio iT gesellschaft für informationstechnologie mbh
www.regioit.de
uncle_scrooge
Beiträge: 650
Registriert: 21 Feb 2012, 12:03
Wohnort: Mainz

Re: [Frage] Funktioniert "FileExists" mit UNC-Pfaden?

Beitrag von uncle_scrooge »

Eigentlich sollte man ja nur antworten, wenn man's wirklich genau weiß......
Wenn mich mein Erinnerungsvermögen nicht täuscht, sollten auch UNC-Pfade funktionieren.


Aber:
>>set $sClusterPath$ = "\\{FQDN des FileClusters}\users\" + $sUserName$
>>if FileExists($sClusterPath$ + "\bookmark.nsf")

Wie, bitte,schaffst Du es bei diesem Konstrukt diese Logmeldung zu bekommen?
>>"FileExists("\\{FQDN des FileClusters}\users\{username}\Lotus\Notes\Data\bookmark.nsf") <<< result false"

Und, läuft das script wirklich im user mode? (Gibt eine Funktion, um das abzuprüfen.)
Benutzeravatar
skranz1982
Beiträge: 80
Registriert: 09 Okt 2014, 08:01

Re: [Frage] Funktioniert "FileExists" mit UNC-Pfaden?

Beitrag von skranz1982 »

uncle_scrooge hat geschrieben:Eigentlich sollte man ja nur antworten, wenn man's wirklich genau weiß......
Wenn mich mein Erinnerungsvermögen nicht täuscht, sollten auch UNC-Pfade funktionieren.
Okay, danke für die Info.
uncle_scrooge hat geschrieben:Aber:
>>set $sClusterPath$ = "\\{FQDN des FileClusters}\users\" + $sUserName$
>>if FileExists($sClusterPath$ + "\bookmark.nsf")

Wie, bitte,schaffst Du es bei diesem Konstrukt diese Logmeldung zu bekommen?
>>"FileExists("\\{FQDN des FileClusters}\users\{username}\Lotus\Notes\Data\bookmark.nsf") <<< result false"
Da hab ich wohl zu viel zensiert :oops: Die Variablen definiere ich in der Tat so:

Code: Alles auswählen

set $sUserName$ = getLoggedInUser
set $sClusterPath$ = "\\{FQDN des Servers}\users\" + $sUserName$ + "\Lotus\Notes\Data"
uncle_scrooge hat geschrieben:Und, läuft das script wirklich im user mode? (Gibt eine Funktion, um das abzuprüfen.)
Davon bin ich ziemlich überzeugt. Ich hab mir extra drei neue Variablen angelegt, lasse sie dynamisch füllen und im Log ausgegen:

Code: Alles auswählen

set $sContextName$ = getUserContext
set $sScriptMode$ = getScriptMode
set $sUserSID$ = getUserSID

comment "user context = " + $sContextName$
comment "script mode = " + $sScriptMode$
comment "SID = " + $sUserSID$
Dabei kommt dann zB folgendes heraus:

Code: Alles auswählen

(59176)   [5] [Apr 18 10:01:52:890] [notes9] comment: user context = SOLINGEN\kranzs
(59177)   [5] [Apr 18 10:01:52:890] [notes9] comment: script mode = Login
(59178)   [5] [Apr 18 10:01:52:891] [notes9] comment: SID = S-1-5-21-2641465841-2728002677-2160729573-19542
Sieht doch eigentlich ganz gut aus, ne?
Sebastian Kranz,
regio iT gesellschaft für informationstechnologie mbh
www.regioit.de
Benutzeravatar
skranz1982
Beiträge: 80
Registriert: 09 Okt 2014, 08:01

Re: [Frage] Funktioniert "FileExists" mit UNC-Pfaden?

Beitrag von skranz1982 »

Update: Ich hab das ganze jetzt mal auf den konkreten Laufwerksbuchstaben Q:\ umgestellt und diesen in meinem Userkontext gemapped - nützt auch nix.

Läuft das Script vielleicht doch nicht im Userkontext sondern im Systemuser?
Sebastian Kranz,
regio iT gesellschaft für informationstechnologie mbh
www.regioit.de
uncle_scrooge
Beiträge: 650
Registriert: 21 Feb 2012, 12:03
Wohnort: Mainz

Re: [Frage] Funktioniert "FileExists" mit UNC-Pfaden?

Beitrag von uncle_scrooge »

An meiner grundsätzlichen Aussage, daß fileexists auch mit UNC-Pfaden funktioniert, halte ich fest. Bis zum Beweis des Gegenteils.

Aber in Deinem konkreten Fall wird das (vorerst) wohl nichts. Ich habe mich noch mal durch die Doku und verschiedene Fäden gefräst.
Ja, userloginscripts laufen im User-Kontext. Aber wohl nicht so ganz.

Aussage von ngbr:
opsi-Scripte, auch die Logon-Scripte, laufen als User System. In Logon- Scripten werden entsprechende Pfade und Umgebungsvariablen des anmeldenden Users genutzt. Bisher wird das Logon-Script jedoch noch nicht im echten User-Kontext ausgeführt. Allerdings wird es hier in Bälde Neuerungen geben, sprich Ausführung im echten Userkontext.
viewtopic.php?f=7&t=8862&p=39080&hilit= ... ipt#p39080

Es gibt wohl im Kontext eines userloginscripts den Modifier /RunAsLoggedonUser. Allerdings nur für WinBatch-Sektionen.
Hilft Dir also bei Deinen Files-Sektionen und der fileexists-Abfrage nicht.

Eigentlich müsste das Häuflein Notes-Benutzer ja zusammenhalten. Aber ich habe spontan keine pfiffige Idee, wie man das jetzt mit OPSI umsetzen könnte. Vielleicht nächste Woche, wenn ich mich wieder meinem Firmenschreibtisch nähern muß.
Antworten