Frage

Ich möchte viele meiner täglichen Aufgaben über PowerShell automatisieren. Ein Prozess, den wir haben, ist die Bildgebung von Desktops nach Stunden. Sobald dieser Vorgang abgeschlossen ist, müssen die Bilddateien von den Server -Festplatten in ein Netzwerklaufwerk verschoben werden. Ich schreibe eine App, die als Dienst auf meinem Computer ausgeführt wird, der das PowerShell -Skript anruft und alles ausschlägt, und mich nur dann alarmieren, wenn es ein Problem gibt.

Ich habe ein Verzeichnis auf dem Server für Skripte eingerichtet. Es funktioniert gut, wenn ich mein Skript filecopy.ps1 vom Server aufrufe:

copy-item C:\scripts\myFile1.txt -destination C:\scripts\myFile2.txt

In meiner .NET -App rufe ich jedoch das Skript von meinem lokalen Computer an:

RunScript(LoadScript(@"\\Server\ServerShare\FileCopy.ps1")); 

Funktioniert nicht. Das liegt daran, dass C: Skripte auf der lokalen Maschine sind. Also ändere ich es:

copy-item \\Server\ServerShare\myFile1.txt -destination \\Server\ServerShare\myFile2.txt

Funktioniert nicht. Ich füge dem Skript eine weitere Zeile hinzu:

copy-item \\Server\ServerShare\myFile1.txt -destination \\Server\ServerShare\myFile2.txt
get-childitem \\Server\ServerShare | format-table name

Es kopiert die Datei immer noch nicht, aber sie tut Geben Sie den Inhalt des Skriptverzeichnisses auf dem Server zurück.

Also gehe ich zum Server zurück und führe das Skript mit den vorhandenen UNC -Pfaden aus - PowerShell gibt einen Fehler zurück

Copy-Item : Access to the path '\\Server\ServerPath\myFile2.txt' is denied.

Das scheint die Wurzel des Problems zu sein. Irgendeine Idee, wie ich das umgehen kann? Ich bin als Administrator am Server angemeldet.

War es hilfreich?

Lösung

Das Ausführen des Skripts als Administrator spielt keine Rolle bei Network Shares IIRC. Die Standard -Freigabegenehmigung ermöglicht nur das Lesen. Diese Dauerweiten müssen aktualisiert werden, um das Schreiben an die Aktie zu ermöglichen.

Zu Ihrer Information, wenn Sie verwenden net share Um die Aktien unter Windows 7 zu erstellen, müssen Sie die verwenden /grant:<users>,CHANGE Um diese Berechtigungen an einen Benutzer zu gewähren.

Andere Tipps

Ich bin auf Server 2003 R2. Der Administrator hatte unter der Registerkarte Sicherheit den vollen Zugriff, aber ich ging zur Registerkarte Sharing, Berechtigungen, und alle sollten den Zugriff lesen. Ich habe Admin und mich als volle Kontrolle hinzugefügt, jetzt ist das Leben gut !!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top