Kuddel071089
-
Gesamte Inhalte
559 -
Registriert seit
-
Letzter Besuch
Beiträge erstellt von Kuddel071089
-
-
Ich kann es dir nicht sagen, ich bin wohl noch nie auf solche Idee gekommen; mir fehlte wohl der Anlass dafür.
Interessehalber nochmals die Frage: Wozu soll das gut sein? Ob man das einmal neu denkt?
auf dem Server selber werden Urlaubsdaten etc. in *.xls abgelegt. Diese werden dann irgendwie weiterverarbeitet.
Das Script kommt aus einer anderen Abteilung, daher weiß ich darüber auch nicht genau bescheid. ich soll es nur zum laufen bekommen ^^
-
Hm,
ich habe schon mal den Start und das Ausführen einer Bach kontrolliert mit
echo Startbatch >> c:\BAusf.txt
echo Pos x >> c:\BAusf.txt
echo Endbatch >> c;\Ausf.txt
Aus den Einträgen in der .txt konnte ich dann Start und Ablauf verfolgen.
Mein Gedanke eben, könnte ein Nichtausführen an der Benutzerkontensteuerung (UAC) liegen?
UAC ist deaktiviert.
Ich habe jetzt auch mal wie du ein kleines Log eingebaut. Die Batch wird sauber abgearbeitet, aber an den Exceldatein ändert sich nichts.
Derzeit ist Office 2010 installiert. Auf dem Altsystem lief 2003. Macht das evtl. einen Unterschied ?
-
Das ist schon interessant.
Wird die Batch denn gestartet, ausgeführt und läuft bis zum Ende durch, ist das überprüfbar?
Sobald man im Task den Haken bei "Unabhängig von der Benutzernameldung ausführen" setzt, sieht man kein Konsolenfestern.
Es steht zwar in der Aufgabenplanung "Wird asgeführt", ab im Verzeichnis, wo die Excel-Datein liegen, tut sich nichts
-
Moin,
zwar ist ist möglich, eine Batch im Konext des Systems ohne Benutzersitzung auszufühen, aber für rinr Anwendung wie Excel, die eine grafische Benutzeroberfläche hat, habe ich arge Zweifel. Wie sollte das denn gehen? Und welchen Sinn sollte so etwas machen?
Auf dem alten System unter WinSrv hat das ja auch funktioniert. Da war der User "ArbeitsAccount" hinterlegt. Der hat volle Admin-Rechte. Angemeldet war der User aber nicht.
Wenn dann war der Administrator mal angemdldet aber nicht.
-
Der User System ist der falsche. Da musst Du das Computerobjekt des Servers berechtigen. Ohne nähere Kenntnisse Deiner Struktur, des Batches und der geplanten Aufgabe ist hier schwer zu helfen. Supported ist es auf nicht. Läuft denn der Batch in einem Benutzerkontext?
Wie soll ich denn das Computerobjekt des Servers im Task berechtigen? Man kann nur "Integrierte Sicherheitsprinzipiale", "Gruppen" und "Benutzer" suchen und auswählen.
Hier int die Batch:
@ECHO OFF set AKTMON=%DATE:~3,2% echo %AKTMON% rem Bis zum 30.6. werden die Vorjahresdaten geliefert rem ------------------------------------------------- if %AKTMON% LSS 07 ( call "E:\Transfer\SCA\SCAPersverControlling_Vorjahr.xls" copy "E:\Transfer\SCA\SCAPersverControlling_weg_Vorjahr.xls" "E:\Transfer\Export\SCAPersverControlling_weg_Vorjahr.xls" /Y rename "E:\Transfer\Export\SCAPersverControlling_weg_Vorjahr.xls" "SCAPersverControlling_Vorjahr.xls" ) rem Aufbau der Datei des aktuellen Jahres rem ------------------------------------- call "E:\Transfer\SCA\SCAPersverControlling.xls" copy "E:\Transfer\SCA\SCAPersverControlling_weg.xls" "E:\Transfer\Export\SCAPersverControlling_weg.xls" /Y rename "E:\Transfer\Export\SCAPersverControlling_weg.xls" "SCAPersverControlling.xls" rem Ab dem 1.7. werden die Daten des Folgejahres geliefert rem ------------------------------------------------------ if %AKTMON% GEQ 07 ( call "E:\Transfer\SCA\SCAPersverControlling_Folgejahr.xls" copy "E:\Transfer\SCA\SCAPersverControlling_weg_Folgejahr.xls" "E:\Transfer\Export\SCAPersverControlling_weg_Folgejahr.xls" /Y rename "E:\Transfer\Export\SCAPersverControlling_weg_Folgejahr.xls" "SCAPersverControlling_Folgejahr.xls" ) @ECHO ON
-
Lässt Du den Batch auch in einer Usersession ablaufen oder vom System? Hat denn der verwendete Useraccount die Rechte, in dem Ordner lesen und schreiben zu können?
BTW: Serverseitige Automatisierung mit Office ist nicht supported: https://support.microsoft.com/en-us/kb/257757
Microsoft does not currently recommend, and does not support, Automation of Microsoft Office applications from any unattended, non-interactive client application or component (including ASP, ASP.NET, DCOM, and NT Services), because Office may exhibit unstable behavior and/or deadlock when Office is run in this environment.
Über die lizenzrechtlichen Implikationen bist Du Dir im Klaren? Siehe dazu http://www.mcseboard.de/topic/196686-exceloffice-auf-server-f%C3%BCr-erp-software/
Ich habe sowohl den User SYSTEM als auch den lokalen Administrator hinterlegt. In beiden Fällen brachte dies keinen Erfolg.
Zur Lizenproblematik: Unsere Clients sind alle via MS EA lizensiert
-
Hallo zusammen,
auf einem Server soll eine Batch ausgeführt werden, in der u.a. Excel gestartet wird.
Da kein User dauerhaft angemeldet ist, muss das Ganze ohne Usersession durchgeführt werden.
Ich habe den Task auf dem jetzigen Server (WinSrv 2012 mit AD Anbindung) 1:1 eingerichtet wie auf dem alten Server (WinSrv 2003 ohne AD),
Irgendetwas scheint aber nicht zu funkitionieren.
Führt man die Batch ohne Task in einer Session aus, funktioniert alles wie gewünscht.
Hat jemand eine Idee, was mein Problem sein könnte ?
Danke schon einmal im Vorraus
-
Hallo zusammen,
bei uns hat jeder User ein persönliches Speicherkontingt auf unseren Freigaben.
Kann man dies evtl per Powershell auswerten und bearbeiten?
Wäre einfach als sich immer auf dem Server anzumelden und durchzuklicken.
Gruß Kuddel
-
Wozu exportieren und danach wieder importieren?
hab gerade gelsen, dass es auch mit * geht und man nicht jeden User einzeln angeben muss
-
Hallo zusammen,
ich habe gerade festgestellt, dass wir in unserem AD eine Menge User haben bei denen der Haen "vor versenhentlichem Löschen schützen" fehlt.
Die SamAccountNames habe ich jetzt in eine CSV Datei exportiert.
Nun würde ich gerne bei allen den Haken via Schleife setzen.
Funktioniert nur leider nicht so wie gedacht.
Dialog zum importieren der CSV Datei mit den SamAccountNames der zu bearbeitenen Gruppen Function Get-SaveFile($initialDirectory) { [System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms") | Out-Null $SaveFileDialog = New-Object System.Windows.Forms.SaveFileDialog $SaveFileDialog.initialDirectory = $initialDirectory $SaveFileDialog.filter = "CSV-Datei (*.csv)| *.csv" $SaveFileDialog.ShowDialog() | Out-Null $SaveFileDialog.filename } # Ausgewaehlte Datei in Varibale speichern $pfad = Get-SaveFile #Schleife für jede Gruppe in der Gruppen.csv Datei $users = Import-CSV $pfad ForEach($user in $users) { Set-ADObject -Identity $user -protectedFromAccidentalDeletion:$true }
Fehlermeldung
Set-ADObject : Der Parameter "Identity" kann nicht gebunden werden. Der Wert "@{SamAccountName=AB4GCS}" kann nicht in den Typ "Microsoft.ActiveDirectory.Management.ADObject" konvertiert werden. Fehler: "Der Wert "@{SamAccountName=AB4GCS}" vom Typ "System.Management.Automation.PSCustomObject" kann nicht in den Typ "Microsoft.ActiveDirectory.Management.ADObject" konvertiert werden." In C:\Users\Kulinski.HHLA-AD\Desktop\test2.ps1:26 Zeichen:24 + Set-ADObject -Identity $user -protectedFromAccidentalDeletion:$true + ~~~~~ + CategoryInfo : InvalidArgument: (:) [Set-ADObject], ParameterBindingException + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.ActiveDirectory.Management.Commands.SetADObject
Ich hoffe ihr könnt mir helfen.
Danke
-
Hallo zusammen,
unter WinSRV 2003 konnte man die maximale Anzahl von gleichzeitigen File-Zugriffen beschränken?
Ist sowas bei 2012 auch noch möglich?
Danke und Gruß
Kuddel
-
Wie gesagt, eine eMail im richtigen Format (ist dann wie eine Einladung) oder über eine Exchange API einen Termin eintragen.
Und welches Format wäre das ?
Ich habe schon etwas im Netz gefunden http://newdelhipowershellusergroup.blogspot.de/2013/08/powershell-and-outlook-create-calendar.html
nur das script muss dann auf meinem Client ausgeführt werden und nicht wie jetzt auf unserem Admin-Server
-
Meinst du im Outlook? Dort sind Termine auch nur eMails in einem bestimmten Format.
Ja das Script soll einen Termin an meinen User auf unserem Exchange schicken
-
Halllo zusammen,
weiß jemand, ob man Termine per Powershell verschicken kann ?
Dass es mit Mails geht, habe ich schon gelesen.
Ich bräuchte aber einen Termin als Erinnerung, damit ich 2 Wochen nach Ausführung eines Userscripts noch Nacharbeiten durchführe.
Danke schon einmal
-
kann man evtl per Powershell automatisiert die Berechtigungen von oberste Ebene neu vererben um das o.g. Problem zu lösen ?
Per Klickerei ist das ja auch möglich, aber schlichtweg nicht unsetzbar für alle Verzeichnisse
-
Versuch mal eine einfache Pssession aufzubauen (ohne ConfigurationName und ConnectionUrl) und dann die Exchange Snapins oder Module zu laden.
Geht das Script auf dem Exchange Server direkt?
wenn ich das script direkt auf dem exchange ausführe (ohne pssession) versucht er trotzdem den user abzufragen, den es nicht gibt
-
Das sieht gut aus. Aber einen Fehler bekommst du trotzdem, Schon den allow-clobber getestet?
Was ist das für ein Exchange?
was ist der allow-clobber ?
Wir nutzen Exchange 2013
-
So schwer ist es doch nicht
http://mikepfeiffer.net/2013/04/checking-if-an-email-address-is-in-use-within-a-powershell-script/
Du hast anscheinend schon ein Problem dir die CmdLets zu holen. Auf welchem Rechner führst du das Skript aus?
Ich baue bei sowas ein eine Fehlerbehandlung um das New-PSSession und das Import-PSSession.
Sowohl auf meinem Desktop-PC (Win7) (Powershell als Domain-Admin) als auch auf unserem Admin-Server (WInSrv2012) mit einem Domain-Admin kommt die o.g. Fehlermeldung
damit baue ich die Verbindung zum Exchange auf
$ExSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://NTS606/powershell -Credential $env:USERNAME Import-PSSession $ExSession
-
Könntest Du einen Screenshot machen, um genau zu sehen was das Problem ist? Bei mir funtioniert es.
Import-PSSession : Es wurden keine Befehlsproxys erstellt, da alle angeforderten Remotebefehle vorhandene lokale Befehle verdecken würden. Verwenden Sie den AllowClobber-Parameter, wenn Sie vorhandene lokale Befehle verdecken möchten. In C:\Users\xxxx.xxxxx\Desktop\test.ps1:5 Zeichen:1 + Import-PSSession $ExSession + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidResult: (:) [Import-PSSession], ArgumentException + FullyQualifiedErrorId : ErrorNoCommandsImportedBecauseOfSkipping,Microsoft.PowerShell.Commands.ImportPSSessionCommand Der Vorgang konnte nicht ausgeführt werden, weil das Objekt 'sdadad@xxxx.de' nicht auf 'VNTS401.xxxx.local' gefunden wurde. + CategoryInfo : NotSpecified: (:) [Get-Mailbox], ManagementObjectNotFoundException + FullyQualifiedErrorId : [Server=NTS606,RequestId=4fa573fd-bd34-4340-bae6-46ccd2264d77,TimeStamp=21.08.2015 14:09:35] [FailureC ategory=Cmdlet-ManagementObjectNotFoundException] 8F0CD0D0,Microsoft.Exchange.Management.RecipientTasks.GetMailbox + PSComputerName : nts606 +++ Username im Exchange ist noch frei +++
VNTS401 = DomainController 1
NTS606 = Exchange Server 1
-
Wenn ihr ein Wartungfesnter am Sonntag habt, dann würde ich 4 Wochen nach erscheinen die Updates im WSUS manuell freigeben um sicher zu sein, dass die Patche auch wirklich erst dann ausgerollt werden.
Per GPO erhalten die Server dann die Einstellungen, dass sie stündlich suchen sollen und am besten, dass die Updates am Sonntag um 8 Uhr automatisch installiert werden, dann sollte alle Server die neuen Updates erhalten haben.
Dann noch einstellen, dass die Server automatischen booten sollen und schon sollte das automatische Updaten funktiuonieren.
Sollte man natürlich nach und nach testen
-
Hallo zusammne,
in meinem User-Erstellungsscript wird geprüft ob ein Username / Adresse auf unserem Exchange schon vergeben ist.
Leider versucht das Script auch die Userdaten ab zu fragen, wenn der Username / die Adresse noch frei ist.
Hat jmd eine Idee was mein Fehler ist ?
if (Get-Mailbox -Identity "$username@xxxx.de") { cls Write-Host Write-Host -ForegroundColor Red "+++ Username im Exchange ist bereits vergeben +++" Write-Host Get-Mailbox -Identity $username@xxxx.de | select UserPrincipalName, DisplayName, EmailAddresses | fl Write-Host Write-Host -ForegroundColor Red "+++ Bitte Script neu starten +++" Sleep 5 break } else { Write-Host Write-Host -ForegroundColor Green "+++ Username im Exchange ist noch frei +++" Sleep 2 }
Danke schon eimal für eure Hilfe
-
In Powershell ist das ganz einfach zu erledigen, aber man muss sich ein bisschen mit verschiedenen Text-Funktionen auskennen, wie z. B. "trim", "split", usw. Du kannst alle Konten zu einem Array aufnehmen (mit "Get-ADUser") und danach, auf diesem Array, die "Beschreibung" Attribute bearbeiten und die neuen Werte zurück schreibein ("Set-ADUser").
Du kannst auch ein anderes Attribut für diese Information bestimmen - vielleicht kann "Description" für etwas anderes von Nutzen sein. Es gibt die Attribute, die "leer" sind (der Wert $null haben) und können benutzt werden.
Grüße
Marcin
Erstmal schön zu höhren, dass es möglich ist, meine Änderungen umzusetzen.
Keider habe ich nicht mit "trim, split" usw. gearbeitet. Und bräuchte dann doch ein wenig Hilfe
-
Was soll am Ende genau in der Description stehene? Eine SR Nummer oder eine REQ Nummer? Und jetzt ist nicht bei jeden etwas gepflegt, oder?
IST: User1: SR 2015-15643
User2 : REQ-2015-16465
Soll: User1: REQ-2015-15643
User2: REQ-2015-16465
-
Gibt es eine Möglichkeit die Ticketnummern und die jeweiligen Personen in ein Excelsheet zu packen?
Dann wäre das Problem in ein paar Zeilen Powershell erledigt. Am WE habe ich das auch gemacht.
Get-ADUser -Filter {Description "*SR*"} -Properties SamAccountName, Description | Select SamAccountName, Description | FT
Leider wird damit das Descriptionfeld nicht sauber ausgelesen. Es wird immer etwas abgeschnitten
Batch ohne Session ausführen
in Windows Server Forum
Geschrieben
-Laufwerksbuchstabend sind alle entfernt. Läuft jetzt über die Serverfreigabe.
-Das Computerobjekt hat Schreibrechte für die Serverfreigabe bekoomen
-Cer Call befehl wurde ersetzt durch "C:\Program Files\Microsoft Office\Office14\EXCEL.EXE" /R "\\freigabe\...\...\excel-datei.xlsx"
Das Script läuft jetzt an und EXCEL wird im Hintergrund gestartet (sieht man im Taskmanager)
Nur tut sicht jetzt nichts mehr. Startet man den Befehl direkt ohne Task, öffnet sich Excel und schließt sich nach ca. 90 Sekunden wieder.
Der Prozess läuft jetzt aber schon ein paar Minuten