Jump to content

Powershell führt Befehl falsch aus


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Guten Tag,

ich bin neu hier und komme auch gleich mit einem merkwürdigen Verhalten der Powershell, vielleicht hat jemand eine Lösung:

In der Powershell-ISE funktioniert folgendes:

 

                    $Drive = New-PSDrive -Name "J"  -Root "\\localhost\c$" -PSProvider FileSystem  -Persist   -ea Continue -Verbose

 

... d.h. das neue Laufwerk "J" erscheint als PSDRIVE und im Explorer von Windows ("net use" zeigt das Laufwerk als "O.K" an)

Derselbe Befehl, ausgeführt in der einfachen Powershell (Kommando-Shell) funktioniert auch, führt man aber ein Script mit derselben

Befehlszeile aus, funktioniert es nicht, keine Fehlermeldung. "Get-ExecutionPolicy" liefert "bypass" oder "unrestricted".

Meine Frage: Warum verhält sich die Powershell mal so und mal anders ?

Es ist ein System mit WIN7-64bit, Powershell 5.0

danke,

Gruß

Lupus

 

 

 

Link zu diesem Kommentar

Hallo !  

Danke für Eure schnelle Rekation, die Antworten wie folgt:

 

Ich bin über das Verhalten gestolpert und führe das Script testweise auf localhost mit der benannten administrativen Freigabe aus.

Eigentlich soll es via Taskscheduler auf mehreren Clienten mit WIN7 ausgeführt werden.

Und offenbar macht es einen Unterschied, wie die Zeile 

 

                              $Drive = New-PSDrive -Name "J"  -Root "\\localhost\c$" -PSProvider FileSystem  -Persist   -ea Continue -Verbose

 

gestartet wird (manuell oder per Script).

 

Ich habe bei der Powershell auch mal den Parameter "Trustlevel" abgefragt (Standardbenutzer), aber ich möchte ja nicht alle Sicherheitsmerkmale auf Null

bringen, damit ein Script läuft. 

Und  - es gibt keine Fehlermeldung, obwohl das Laufwerk mal nicht angelegt wird ...

 

 

-Lupus

 

Link zu diesem Kommentar

Moin,

 

hier (Windows 10 v1809) funktioniert es mit Localhost auch als Skript. Anscheinend sind bei Localhost keine Adminrechte (mehr) für die Admin-Freigabe nötig. Ich meine, dass das früher nicht so war.

 

Du willst in der Praxis doch wohl auch kaum die lokale administrative Freigabe mappen, oder? Teste das Skript mal so, wie es tatsächlich laufen soll.

 

Gruß, Nils

 

bearbeitet von NilsK
Link zu diesem Kommentar

Hi Nils,

vielen Dank,

ich werde Deinen Tip mal umsetzen. Ist halt nur frustrierend, an so einem (dämlichen) Problem hängen zu bleiben und da viel Zeit mit der Fehlersuche zu verlieren.

Da hätte man eben auch gerne ein Erfolgserlebnis und die Ursache gefunden ...

Grüße

Lupus1

 

 

Hi tesso,

 

ja eben, aber ich vermisse halt´ eine klare Rückmeldung vom System, was da nicht o.k. sein soll, mit dem Kommando.

-Lupus

 

Link zu diesem Kommentar

Hallo an alle,

das Script wird als "scheduled-task" per Powershell so angelegt, dass es bei "logon" eines Users ausgeführt wird.

Die Ausgabe  von "NET USE" ist aber:

                                                              Nicht verfgb K:        \\IP.IP.IP.IP\ORDNERNAME  Microsoft Windows Network

                                                             ==================================================

(Anmerkung: IP-Daten unkennlich gemacht)

Das heisst also, dass das Script das Netzwerklaufwerk anlegt, das gibt auch meine logdatei her:

14.02.2019 13:59:15 lege jetz Netzwerklaufwerk an:
14.02.2019 13:59:15 Rückmeldung:  K  
14.02.2019 13:59:15 Neues Drive erzeugt: K
14.02.2019 13:59:15#232

 

Wobei "Nicht verfgb K: " eben bedeutet, dass das Laufwerk nicht da ist. Und das verstehe ich nicht. Wenn ich das Script manuell ausführe,

klappt es.

 

Was kann ich tun ?

-Lupus

 

 

 

Link zu diesem Kommentar

Hallo Olaf,

ich habe den Fehler weiter eingegrenzt, villeicht auch für andere interessant:

 

1.

Starte ich mein script mittels eines BATCH-Files in der Autostart wie folgt:

 

                                              powershell -file c:\tmp_ps\mount_drive.ps1

 

... dann funktioniert es und das Laufwerk erscheint als Windows-Laufwerk.

 

Starte ich es über  Aufgabenplanung -> Aufgabenplanungsbibliothek -> MS -> windows -> PowerShell -> ScheduledJobs ...

dann geht es nicht. Das heisst, das Script startet schon wie gewollt bei der Anmeldung, aber das Laufwerk ist dann wieder nicht bereit:

 

                                "Nicht verfgb K: "

 

Also liegt der Unterschied in der Art und Weise, wie das Script gestartet wird. Dabei verstehe ich dieses  "Nicht verfgb K: "

einfach nicht. Selbst wenn ich das mounten von "K" um 30 s. verzögere, alle Netzwerkverbindung also vorhasnden sind, ändert sich nichts.

Wer kann das erklären ???

 

-Lupus

 

 

 

 

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...