Mounten von Netzwerkfreigaben via OPSI

Antworten
larsg
Beiträge: 283
Registriert: 16 Dez 2014, 18:06

Mounten von Netzwerkfreigaben via OPSI

Beitrag von larsg »

Hi,

ich habe hier eine Anwendung, die braucht wärend der Installation zwingend Zugriff auf ein Netzlaufwerk.

ich habe probiert das Laufwerk wärend der Laufzeit des Winst-Skripts zu mounten, dies schlägt jedoch fehl mit Fehlercode 1312.

Code:

Code: Alles auswählen

[DosInAnIcon_mount_share]
Net use $Drive$ \\$Server$\$Share$ /persistent:no /user:$Username$ $Password$
Log:

Code: Alles auswählen

[5] [Jul 18 14:06:23:662] [3a-survey] DosInAnIcon_mount_share
[6] [Jul 18 14:06:23:665] [3a-survey]   c:\opsi.org\tmp\_opsiscript_Jy70Bq85.cmd saved back
[6] [Jul 18 14:06:23:665] [3a-survey]   Executing "cmd.exe" /C c:\opsi.org\tmp\_opsiscript_Jy70Bq85.cmd
[6] [Jul 18 14:06:23:993] [3a-survey]   ExitCode 2
[6] [Jul 18 14:06:23:994] [3a-survey]               
[6] [Jul 18 14:06:23:994] [3a-survey]               output:
[6] [Jul 18 14:06:23:994] [3a-survey]               --------------
[6] [Jul 18 14:06:23:994] [3a-survey]               
[6] [Jul 18 14:06:23:994] [3a-survey]               C:\Windows\system32>Net use M: \\server.fqdn.tld\3A-Editor /persistent:no /user:***(confidential)*** ***(confidential)*** 
[6] [Jul 18 14:06:23:994] [3a-survey]               Systemfehler 1312 aufgetreten.
[6] [Jul 18 14:06:23:994] [3a-survey]               
[6] [Jul 18 14:06:23:994] [3a-survey]               Eine angegebene Anmeldesitzung ist nicht vorhanden. Sie wurde gegebenenfalls bereits beendet.
Wenn ich den Befehl direkt aus dem Log kopiere und auf dem betreffenden Client manuell ausführe, funktioniert der Mount ohne Probleme.

Zu dem Fehler sind nur nichtssagende "probier mal so" Beiträge zu finden, es scheint keine Lösung zu geben. Die Position des Kennworts in der Kommandozeile ist im übrigen nicht relevant.

Ich bin in einem Microsoft-Forum schlussendlich auf einen Beitrag gestoßen, dort hieß es das für den SYSTEM-Account der Zugriff auf Netzwerkfreigaben eingeschränkt wurde, und man mit NullSession-Shares arbeiten soll, was auch immer das heißt.

Wie macht OPSI das denn? Die Depotfreigabe wird doch auch unter dem SYSTEM-Account gemountet.

Bzw. hat schonmal jemand erfolgreich ein Netzlaufwerk via OPSI, unter Angabe eines anderen Benutzeraccounts, mounten können?
Zuletzt geändert von larsg am 21 Jun 2017, 09:24, insgesamt 1-mal geändert.
uncle_scrooge
Beiträge: 650
Registriert: 21 Feb 2012, 12:03
Wohnort: Mainz

Re: Mounten von Netzwerkfreigaben via OPSI

Beitrag von uncle_scrooge »

Betriebssystem Client?
Freigabe wird von was bereitgestellt? Server? NAS?
Wenn Server, Windows? Linux/Samba?
Wenn Windows, Version?
Ist die Maschine, die die Freigabe bereitstellt in die Domäne eingebunden?
Benutzername wird wie mitgegeben? Nur <meinbenutzername>, oder <meinedomäne>\<meinbenutzername>?

(null session share ist, wie der Name schon suggeriert, eine Freigabe, auf die ohne jegliche Angabe von Anmeldedaten zugegriffen werden kann.)
larsg
Beiträge: 283
Registriert: 16 Dez 2014, 18:06

Re: Mounten von Netzwerkfreigaben via OPSI

Beitrag von larsg »

Details zu der Freigabe kann ich dir aktuell nicht nennen.

Als Benutzername gebe ich entweder Domäne\Name oder Name@Domäne mit, je nach dem was der Installeur im ConfigEd einträgt.

Wie gesagt, maneulle Verbindung funktioniert in meinem Benutzerkontext - aber nicht im Kontext des System-Accounts.
uncle_scrooge
Beiträge: 650
Registriert: 21 Feb 2012, 12:03
Wohnort: Mainz

Re: Mounten von Netzwerkfreigaben via OPSI

Beitrag von uncle_scrooge »

>>Details zu der Freigabe kann ich dir aktuell nicht nennen.
Dann kommen wir (oder besser ich) nicht weiter.

Ich habe das quick'n'dirty mal nachgestrickt:
[Actions]

DefVar $Drive$
DefVar $Server$
DefVar $Share$
DefVar $Username$
DefVar $Password$

set $Drive$ = "g:"
set $Server$ = "xxx"
set $Share$ = "all"
set $Username$ = "nix\xxx"
set $Password$ = "xxx"

DOSInAnIcon_mount

[DOSInAnIcon_mount]
Net use $Drive$ \\$Server$\$Share$ /persistent:no /user:$Username$ $Password$

Und das führt zu:

(77) [5] [Jul 18 16:51:13:123] [dummy] DOSInAnIcon_mount
(78) [6] [Jul 18 16:51:13:127] [dummy] c:\opsi.org\tmp\_opsiscript_Ks01Jv24.cmd saved back
(79) [6] [Jul 18 16:51:13:127] [dummy] Executing "cmd.exe" /C c:\opsi.org\tmp\_opsiscript_Ks01Jv24.cmd
(80) [6] [Jul 18 16:51:15:973] [dummy] ExitCode 0
(81) [6] [Jul 18 16:51:15:973] [dummy]
(82) [6] [Jul 18 16:51:15:973] [dummy] output:
(83) [6] [Jul 18 16:51:15:973] [dummy] --------------
(84) [6] [Jul 18 16:51:15:973] [dummy]
(85) [6] [Jul 18 16:51:15:973] [dummy] C:\Windows\system32>Net use g: \\xxx\all /persistent:no /user:nix\xxx xxx
(86) [6] [Jul 18 16:51:15:973] [dummy] Der Befehl wurde erfolgreich ausgeführt.
(87) [6] [Jul 18 16:51:15:973] [dummy]
(88) [6] [Jul 18 16:51:15:973] [dummy]

Hier spielt allerdings keine Domäne mit. Client ist W7.

(Vielleicht noch einen Versuch. Wenn Du Deinen Befehl über psexec -s <deinnetusebefehl> ausführst, was passiert dann?)
Benutzeravatar
n.wenselowski
Ex-uib-Team
Beiträge: 3194
Registriert: 04 Apr 2013, 12:15

Re: Mounten von Netzwerkfreigaben via OPSI

Beitrag von n.wenselowski »

Hi,
larsg hat geschrieben:Wie macht OPSI das denn? Die Depotfreigabe wird doch auch unter dem SYSTEM-Account gemountet.
Das ist vermutlich nicht die Antwort, die du willst, aber ungefähr so: https://github.com/opsi-org/python-opsi ... ws.py#L685 ;)
Je nachdem wie das ganze läuft noch mit Impersonation...

Um dich hier weiter zu bringen:
Hast du schon versucht opsi-template-with-admin als Basis zu nehmen? Dort gibt es einen richtigen User-Account.


Viele Grüße

Niko

Code: Alles auswählen

import OPSI
uncle_scrooge
Beiträge: 650
Registriert: 21 Feb 2012, 12:03
Wohnort: Mainz

Re: Mounten von Netzwerkfreigaben via OPSI

Beitrag von uncle_scrooge »

Nachtrag.
Das Ganze funktioniert bei mir auch in einer Domäne.
Gegen NetApp, Server 2003R2/2008R2/2012R2.
KEINE DFS-shares.(Das tue ich mir nicht an.)

Ich würde erst einmal klären, was den share bereitstellt. Und was da konfiguriert wurde.
(Und ja, ich habe verstanden, daß das mit Deinem normalen account funktioniert. Aber das ist eine ganz andere Baustelle.)
larsg
Beiträge: 283
Registriert: 16 Dez 2014, 18:06

Re: Mounten von Netzwerkfreigaben via OPSI

Beitrag von larsg »

Hi,

Immerhin ist es mit OPSI machbar - das sind schonmal Super Neuigkeiten für eine ganze Reihe von Baustellen die ich noch offen hab :D
Es liegt dann offenbar am Share bzw. unserer Umgebung, das kläre ich mit den Leuten wenn ich aus dem Urlaub zurück bin - Update folgt dann sobald ich was rausbekommen hab.

Danke Niko für den Tip mit dem Template, werde ich mir mal näher anschauen.

:)
Benutzeravatar
ngbr
Ex-uib-Team
Beiträge: 130
Registriert: 27 Sep 2010, 11:41

Re: Mounten von Netzwerkfreigaben via OPSI

Beitrag von ngbr »

Hi larsg,

ich meine, schon mal Rechte für 'SYSTEM' auf dem Share vergeben zu haben, dann ging das.
War eine Windows Server- Freigabe. Kann auch sein es waren mehr Rechte, das weiß ich nicht mehr genau.

vg Andre
---
hoping to help :)

if your problem was solved, pls mark this thread as 'SOLVED'. thank you .

-- no PN support --

Andre
pandel
Beiträge: 830
Registriert: 25 Jan 2013, 16:47

Re: Mounten von Netzwerkfreigaben via OPSI

Beitrag von pandel »

Wir haben das eine Zeit lang für die Verteilung von MS Patchen genutzt, die via WSUS Offline Downloader heruntergeladen wurden. Die lagen auf einem Netzwerkshare, der wurde einfach gemountet und das Update angeworfen.

Konfigurierbar war das via product properties.

Hier mal meine beiden zuständigen Files, vielleicht hilft es dir ja:

opsi control file

Code: Alles auswählen

[Package]
version: 10
depends: 
incremental: False

[Product]
type: localboot
id: mspatches
name: Microsoft Patche (WSUSOffline basiert)
description: Installiert Microsoft Patche (WSUS Offline Download basierend)
advice: 
version: 1.0
priority: -62
licenseRequired: False
productClasses: 
setupScript: setup.ins
uninstallScript: 
updateScript: 
alwaysScript: 
onceScript: 
customScript: 
userLoginScript: 

[ProductProperty]
type: unicode
name: options
multivalue: True
editable: False
description: Install options
values: ["/instdotnet4", "/instie10", "/instie8", "/instie9", "/instmsse", "/instmssl", "/instpsh", "/instwd", "/nobackup", "/updatecpp", "/updatedx", "/updatercerts", "/updatetsc", "/updatewmp"]

[ProductProperty]
type: unicode
name: laufwerk
multivalue: True
editable: False
description: Temporärer Laufwerksbuchstabe für Patchinstallation
values: ["K:", "O:", "P:", "X:", "Y:", "Z:"]
default: ["K:"]

[ProductProperty]
type: unicode
name: share
multivalue: False
editable: True
description: Netzwerkshare, auf dem die Patche liegen
values: ["[\"\\\\server\\share\"]"]
default: ["[\"\\\\server\\share\"]"]

[ProductProperty]
type: unicode
name: pfad
multivalue: True
editable: True
description: Pfad (ohne Laufwerksbuchstaben), in dem das Client Unterverzeichnis des WSUSOffline Downloaders liegt
values: ["[\"Patche\\Win2008Srv\"]", "[\"Patche\\WinXP\"]"]

[ProductProperty]
type: unicode
name: benutzer
multivalue: False
editable: True
description: Netzwerkbenutzer, mit der Share zugeordnet wird
values: ["benutzer"]
default: ["benutzer"]

[ProductProperty]
type: unicode
name: passwort
multivalue: False
editable: True
description: Passwort
values: ["p@ssw0rt"]
default: ["p@ssw0rt"]

[Changelog]
mspatches (1.0-9) testing; urgency=low

  * Initial version

 -- Holger Pandel <holger.pandel@volksbank-niederrhein.de> Thu, 28 Feb 2013 16:39:36 + 0100
setup.ins

Code: Alles auswählen

; Copyright (c) uib gmbh (www.uib.de)
; This sourcecode is owned by uib
; and published under the Terms of the General Public License.
; credits: http://www.opsi.org/credits/

[Actions]
requiredWinstVersion >= "4.10.8.6"

DefVar $LogDir$
DefVar $ProductId$  
DefVar $MinimumSpace$
DefVar $ExitCode$

;
; get product properties for options and install
;
; multi-value values are return as string, seperated by ",", eg. "value1,value2,value3",
; therefore we replace "," by " " (split, compose)
;
DefVar $Options$
DefVar $updLfw$
DefVar $updShare$
DefVar $updUser$
DefVar $updPass$
DefVar $updPath$
Set $Options$ = composeString( splitString ( GetProductProperty("options",""), "," ), " " )
Set $updLfw$ = GetProductProperty("LAUFWERK","X:")
Set $updShare$ = GetProductProperty("SHARE","\\Server\Share")
Set $updUser$ = GetProductProperty("BENUTZER","benutzer")
SetLogLevel=0
Set $updPass$ = GetProductProperty("PASSWORT","p@ssw0rt")
SetLogLevel=5
Set $updPath$ = GetProductProperty("PFAD","wsusoffline")

comment "options: " + $Options$

Set $LogDir$ = "%SystemDrive%\tmp"

; ----------------------------------------------------------------
; - 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$       = "mspatches"
Set $MinimumSpace$    = "1000 MB"
; ----------------------------------------------------------------

if not(HasMinimumSpace ("%SystemDrive%", $MinimumSpace$))
	LogError "Not enough space on %SystemDrive%, " + $MinimumSpace$ + " on drive %SystemDrive% needed for " + $ProductId$
	isFatalError
	; Stop process and set installation status to failed
else
	comment "Show product picture"
	ShowBitmap "%ScriptPath%\" + $ProductId$ + ".png" "Microsoft Patche"
	
	comment "installing"

		Message "Installing " + $ProductId$ + " ..."
		comment "Start setup program"
		SetLogLevel=0
		Winbatch_link_share
		SetLogLevel=5
		ExecWith_install "cmd.exe" /C
		Sub_check_exitcode
		Winbatch_unlink_share	
endif

[Winbatch_link_share]
net use $updLfw$ $updShare$ /user:$updUser$ $updPass$ /persistent:no

[Winbatch_unlink_share]
net use $updLfw$ /d

[ExecWith_install]
;"%ScriptPath%\exit-wrapper.cmd" "$updLfw$\$updPath$\client\cmd\DoUpdate.cmd" $Options$
"%ScriptPath%\exit-wrapper.cmd" "$updLfw$\$updPath$\client\cmd\DoUpdate.cmd" $Options$

[Sub_check_exitcode]
comment "Test for installation success via exit code"
set $ExitCode$ = getLastExitCode
; informations to exit codes see
; http://msdn.microsoft.com/en-us/library/aa372835(VS.85).aspx
; http://msdn.microsoft.com/en-us/library/aa368542.aspx
if ($ExitCode$ = "0")
        comment "Looks good: setup program gives exitcode zero"
else
        comment "Setup program gives a exitcode unequal zero: " + $ExitCode$
        if ($ExitCode$ = "1605")
                comment "ERROR_UNKNOWN_PRODUCT  1605    This action is only valid for products that are currently installed."
                comment "Uninstall of a not installed product failed - no problem"
        else
                if ($ExitCode$ = "1641")
                        comment "looks good: setup program gives exitcode 1641"
                        comment "ERROR_SUCCESS_REBOOT_INITIATED 1641    The installer has initiated a restart. This message is indicative of a success."
                        ExitWindows /Reboot
                else
                        if ($ExitCode$ = "3010")
                                comment "looks good: setup program gives exitcode 3010"
                                comment "ERROR_SUCCESS_REBOOT_REQUIRED  3010    A restart is required to complete the install. This message is indicative of a success."
                                ExitWindows /Reboot
                        else
                            if ($ExitCode$ = "3011")
                                comment "looks good: setup program gives exitcode 3011"
                                comment "ERROR_SUCCESS: wsusoffline requires reboot and rerun."
                                ExitWindows /ImmediateReboot
                            else
                                logError "Fatal: Setup program gives an unknown exitcode unequal zero: " + $ExitCode$
                                isFatalError
                            endif
                        endif
                endif
        endif
endif
Antworten