Jump to content

Community durchsuchen

Zeige Ergebnisse für die Tags "'PowerShell'".

  • Suche mithilfe von Tags

    Trenne mehrere Tags mit Kommata voneinander
  • Suche Inhalte eines Autors

Inhaltstyp


Forum

  • Windows Server Forum & IT Pro Forum
    • Windows Forum — Clients
    • Windows Forum — Server & Backoffice
    • Windows Forum — LAN & WAN
    • Windows Forum — Scripting
    • Windows Forum — Security
    • Tipps & Links
  • MCSE Forum & Cisco Forum
    • Microsoft Zertifizierungen
    • Cisco Forum — Allgemein
    • Testsoftware & Bücher
    • Off Topic

Blogs

  • MCSEboard.de Blog

35 Ergebnisse gefunden

  1. Moin, per lokaler Gruppenrichtlinie habe ich die Ausführung eines Powershell Logonscripts (Benutzerkonfiguration) konfiguriert. In diesem Logonscript ist folgende Funktion enthalten, die ein Netzlaufwerk mappen soll. ##### Netzlaufwerk verbinden ##### function lw_mapping($freigabe){ Start-Process -FilePath cmd -Wait -ArgumentList "/c net use Z: $freigabe" } lw_mapping "\\servera.ad.local.net\p1" Auf dem Client existiert ein lokales Benutzerkonto, welches per Autologin nach Reboot direkt angemeldet wird. In der Anmeldeinformationsverwaltung wurden für die Serveradresse "servera.ad.local.net" Zugangsdaten hinterlegt, die Zugriff auf die genannte Freigabe haben. Das Problem stellt sich jetzt so dar, dass nach einem Reboot das Logonscript ausgeführt wird, aber das Laufwerk nicht gemappt wird. Stattdessen erscheint ein CMD-Fenster mit der Bitte einen Benutzernamen für den Zugriff auf die Freigabe einzugeben. Dieses Verhalten kenne ich grundsätzlich, wenn die hinterlegten Zugangsdaten in der Anmeldeinformationsverwaltung nicht korrekt sind. Daher habe ich diese als erstes Überprüft und konnte auch einen Fehler feststellen. Leider ist das Verhalten nach der Korrektur der Zugangsdaten weiterhin vorhanden. Um wirklich sicherzustellen, dass die Zugangsdaten korrekt sind, bin ich manuell auf die Freigabe gegangen und habe auf dem Server überprüft, dass die Anmeldung auch wirklich mit dem hinterlegten Konto erfolgt ist. Zunächst habe ich ein eventuelles Timingproblem mit der Netzwerkkonnektivität vermutet. Daher habe ich in den lokalen Richtlinien eine Skript-Verzögerung von 120Sek konfiguriert. Leider ohne Erfolg. Dann habe ich das Logonscript aus den lokalen Richtlinien entfernt, einen Reboot durchgeführt und das Logonscript manuell ausgeführt. Dies hatte dann Erfolg. Für einen weiteren Test und als aktuellen Workaround habe ich die Ausführung des Logonscripts per Aufgabenplanung eingerichtet (Ausführung bei Anmeldung). Dies funktioniert ebenfalls! Auf 4 anderen Clients funktioniert das Logonscript per lokalen Richtlinien auch. Nur dieser eine Client - auf dem einmal falsche Zugangsdaten hinterlegt waren - funktioniert so eben nicht. Gibt es irgendwie einen Cache den ich ggfs. löschen sollte? Oder andere Ideen, warum sich dieser eine Client komplett anders verhält? Vielen Dank und viele Grüße Stephan
  2. SCOM Agent Task - Create Log Deletion Job Einleitung: Viele Applikationen und Dienste die auf Servern laufen erstellen Log Dateien. Manche machen dies von Hause aus, andere müssen explizit von einem Administrator oder Entwickler zum Protokollieren konfiguriert werden. Um zu verhindern, dass die Logs den kompletten Festplattenspeicher konsumieren fügt entweder der bedachte Entwickler eine Löschroutine hinzu oder aber wir Administratoren helfen mit Lösch - Skripten über den Task Planer. Ich habe für SCOM 2012 R2 (und höher) ein kostenfreies und quelloffenes Management Pack erstellt welches den Adminstrator unter die Arme greift. Detials: Nach dem Importieren des Management Packs stehen zwei neue Agent Tasks für Windows Computer bereit. Create Log Deletion Job - Erstellt einen geplanten Task welche Dateien älter als N Tag auf dem überwachten computer löscht. Create Log Compress ( + Deletion ) Job - Erstellt einen geplanten Task welche Dateien älter als N Tag auf dem überwachten computer komprimiert und wahlweise auch löscht. Bilder: Log Deletion Task in der SCOM Console: Log Compress Task in der SCOM Console: Download: Eine Ausführliche Anleitung und das Management Pack findet man auf: SCOM Agent Task - Create Log Deletion Job (github) Ebenfalls verfügbar plus automatische updates ist es über den Community Management Pack Catalog Feedback oder Fragen sind willkommen
  3. Servus.. Ich habe ein Problem mit einer CSV Datei dessen Werte ich gerne Sortieren und Filtern möchte. zur Info.. Die CSV Datei exportiere ich aus einem Essen Bestellprogramm einer gößeren Firma (hab die CSV mal als TXT angehangen). Ich möchte gerne herausfinden wie viel mal jedes Essen bestellt wurde und von welcher "Gruppe/Benutzer". Die Spalten Wertstellung, Benutzer und Buchungstext sind quasi die die ich benötige. Zum Schluss sollte es ungefähr so aussehen: Datum Benutzer Essen Menge ----- -------- ----- ----- 04.06.2018 Metall 1 Currywurst 10 04.06.2018 Montage 2 Currywurst 5 05.06.2018 Metall 3 Kesselgulasch 9 Ich habe jetzt schon einige Sachen probiert, aber bekomme es einfach nicht korrekt Sortiert. Ich bin jetzt auch nicht so der Powershell Pro aber ich würde mich über ein paar Lösungsvorschläge freuen (falls es überhaupt Möglich ist ) Grüße, Stefan essen.txt
  4. Hallo, leider bin ich mit meinem PowerShell wissen noch am Anfang. Ich möchte folgendes erreichen: Der Output von: get-user -identity "Max Mustermann" | fl SamAccountName bringt mir meinen begehrtern SamaccountName. In meinem Fall ist der Output: Max.Mustermann Jetzt möchte ich an folgenden Befehl Pipen: Enable-Mailbox -Database EDB01 -Alias $SamAccountName Ich habe keine Ahnung, wie ich in einer Powershell Zeile es fertig bekomme dass dieses Motto funktioniert get-Befehl | select WertA,WertbB | set-befehl -xy WertAVomGetBefehl Für die E-Mail Adressen selbst läuft ja die die Adressrichtlinie. Aber mich kümmert der Alias. Bekomm ich einfach nicht sauber hin. Hoffe Ihr seit da schlauer... Danke!
  5. Guten Abend, ich bin seit einiger Zeit stiller Mitleser und habe schon oft interessante Tipps bzw. Ratschläge bekommen. Aktuell stehe ich selber vor einem kleinen Problem. Bei uns ziehen die Leute gerne mal um oder sie kriegen einen neuen Vorgesetzten usw. Somit ist es schwierig die Daten im AD bzw. Exchange aktuell zu halten. Wir haben in der Personalabteilung eine neue Software. Mit dieser Software ist ein Export (z. B. .xls / .csv) möglich. Nun habe ich folgende Idee im Kopf. Ich würde mittels PS gerne das komplette AD aktuell halten. Bei bestehenden AD Konten stelle ich mir das möglich und machbar vor. Wie verhält es sich mit Benutzern die unsere Firma verlassen bzw. neu eintreten? Vielleicht hat ja jemand damit Erfahrungen Gruß Tobi
  6. Hallo. Ich habe mir folgendes PowerShell-Skript "zusammengebastelt" und bekomme bei der Ausführung den Fehler: "ConvertTo-SecureString : Die Eingabezeichenfolge hat das falsche Format." Class Crypt { # Ohne den winzigen Anpassungen ist der Quellcode hier zu finden -> # Link: http://get-powershell.com/post/2008/12/13/Encrypting-and-Decrypting-Strings-with-a-Key-in-PowerShell.aspx Static [System.String]DecryptData([System.Byte[]]$Key, [System.String]$Data) { [System.String]$plainText = [System.String]::Empty $Data | ConvertTo-SecureString -key $Key | ForEach-Object { $plainText = [Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($PSItem)) } return $plaintext } Static [System.Byte[]]GenerateKey([System.String]$string) { [System.Text.ASCIIEncoding]$encoding = New-Object -TypeName System.Text.ASCIIEncoding return $encoding.GetBytes($string.PadRight(32, "0")) } Static [System.String]EncryptData([System.Byte[]]$Key, [System.String]$Text) { [System.Security.SecureString]$secureString = New-Object -TypeName System.Security.SecureString [System.Char[]]$chars = $Text.ToCharArray() foreach ($char in $chars) { $secureString.AppendChar($char) } [System.String]$encryptedData = ConvertFrom-SecureString -SecureString $secureString -Key $Key return $encryptedData } } #region === Test === Class Configuration { [System.String]$MySqlHost = [System.String]::Empty [System.String]$BackupUserName = [System.String]::Empty [System.String]$BackupUserPSW = [System.String]::Empty [System.String]$BackupLocation = [System.String]::Empty [ValidateRange(1,30)] [System.Int16]$RetentionTime = 14 Hidden[System.Byte[]]$Key = [Crypt]::GenerateKey("dakfjadlkdf3") ScriptConfiguration() { } [void]Load([System.String]$Path) { if ( -not(Test-Path $Path) ) { throw "Datei existiert nicht." } Get-Content -Path $Path | ForEach-Object{ [System.String[]]$line = [System.Text.RegularExpressions.Regex]::Split($PSItem, "=") if ( ($line[0].CompareTo("") -ne 0) -and ($line[0].StartsWith("[") -ne $true) ) { switch ($($line[0].Trim())) { "mysql_host" { $this.MySqlHost = $($line[1].Trim()) } "backup_dir" { $this.BackupLocation = $($line[1].Trim()) } "backupuser_name" { $this.BackupUserName = $($line[1].Trim()) } "backupuser_psw" { $this.BackupUserPSW = $($line[1].Trim()) } "retention_time" { $this.RetentionTime = $($line[1].Trim()) } } } } } [void]Save([System.String]$Path) { [System.IO.FileInfo]$OutFile = New-Item -Path $Path -ItemType File -Force Add-Content -Path $OutFile -Value "[mysqlbackup]" Add-Content -Path $OutFile -Value "mysql_host = $($this.MySqlHost)" Add-Content -Path $OutFile -Value "backup_dir = $($this.BackupLocation)" Add-Content -Path $OutFile -Value "backupuser_name = $($this.BackupUserName)" Add-Content -Path $OutFile -Value "backupuser_psw = $($this.BackupUserPSW)" Add-Content -Path $OutFile -Value "retention_time = $($this.RetentionTime)" } } [Configuration]$Config = New-Object -TypeName Configuration $Config.MySqlHost = "localhost" $Config.BackupLocation = "C:\BackUps" $Config.BackupUserName = "backuser" $Config.BackupUserPSW = [Crypt]::EncryptData($Config.Key, "123") $Config.RetentionTime = "7" "Vor der Speicherung" "Kennwort verschluesselt: $($Config.BackupUserPSW)" "Kennwort entschluesselt: $([Crypt]::DecryptData($Config.Key, $Config.BackupUserPSW))" $Config.Save("C:\Test\mysqlbackup.cfg") "Nach der Speicherung" $Config.Load("C:\Test\mysqlbackup.cfg") "Kennwort verschluesselt: $($Config.BackupUserPSW)" "Kennwort entschluesselt: $([Crypt]::DecryptData($Config.Key, $Config.BackupUserPSW))" #endregion === Test === Die Ausgabe sieht wie folgt aus: Vor der Speicherung Kennwort verschluesselt: 76492d1116743f0423413b16050a5345MgB8AGsASAAwAE0ATgBqAG4AWQBKADQAbwAzAEgAYQBUAFAAOABFAGsANgByAEEAPQA9AHwAYgA1ADYANgAwADUAZQBkADQAMgBjADUAYgA5ADUAYQA1ADUAZAA0AGMAMAA2ADUANgA0AGEANgAwAGYAMQBmAA== Kennwort entschluesselt: 123 Nach der Speicherung Kennwort verschluesselt: 76492d1116743f0423413b16050a5345MgB8AGsASAAwAE0ATgBqAG4AWQBKADQAbwAzAEgAYQBUAFAAOABFAGsANgByAEEAPQA9AHwAYgA1ADYANgAwADUAZQBkADQAMgBjADUAYgA5ADUAYQA1ADUAZAA0AGMAMAA2ADUANgA0AGEANgAwAGYAMQBmAA ConvertTo-SecureString : Die Eingabezeichenfolge hat das falsche Format. In Zeile:10 Zeichen:13 + ConvertTo-SecureString -key $Key | + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [ConvertTo-SecureString], FormatException + FullyQualifiedErrorId : System.FormatException,Microsoft.PowerShell.Commands.ConvertToSecureStringCommand Kennwort entschluesselt: Warum schneidet PowerShell die letzten Zeichen bei der Speicherung ab? Liegt es an der Codierung der Textdatei? Wie kann ich es lösen? Ich möchte nicht einfach die fehlenden Zeichen an die Zeichenfolge ranhängen. VIelen Dank im Voraus.
  7. Hallo liebe Gemeinde, ich bin zwar kein wirklicher Frischling mehr im Bereich scripting unter Powershell, aber seit einigen Tagen zermarter ich mir das Hirn wegen unten angegebenen Problems: Ich habe eine config Datei mit folgendem Inhalt: #Start_OF_test - name: test ipsum dolor bla bla #End_OF_test #Start_OF_test_new - name: test_new bla abc bla bla #End_OF_test_new Basierend auf einer Nutzereingabe soll nun entweder das Segment "test" oder "test_new" gelöscht werden. Also im Endeffekt ( Nutzer hat "test" zum löschen angebeben ) soll es so aussehen: #Start_OF_test_new - name: test_new bla abc bla bla #End_OF_test_new Das Problem ist das der Inhalt der einzelnen Segmente variieren kann, deswegen auch die Abgrenzung mit "#Start OF..." und "#End OF..." Unter *nix würde folgender Befehl das gewünschte Ergebnis bringen: sed "/#Start_OF_test/,/#End_OF_test/ d" Wie bekomme ich das aber nun mit Powershell hin? Dank und Gruß, The Dodger
  8. Hallo Leute, ich habe folgendes Problem: ich muss eine Telefonliste mit alle Einträgen im Active Directory machen. Dazu wollte ich ein Script mit der Active Directory Shell machen, bin dort jedoch ziemlich unerfahren. Am besten wäre es, wenn nur der Name und die Telefonnummer jeweils in einer Datei stehen. Also bei 10 Einträgen 10 Dateien, in der jeweils der Name und Die Telefonnummer stehen. Wäre aber auch ok, wenn alles nur in einer Datei stünde. Angefangen hab ich schon mal Get-ADUser -Filter Surname -like '*' -properties Officephone >> Datei.txt Es liefert mir jedoch auch alle anderen Infos mit ( was nicht so schlimm wäre ), aber auch alle Einträge, die keine Telefonnummer besitzen. Also zusammengefasst: Ich suche ein Script, die mir pro Eintrag im AD den Namen + Telefonnummer in eine Datei schreibt. Vielen Dank schonmal!
  9. Einen schönen Tag euch zusammen, ich habe eine ganz simple Frage, wie bekomme ich es hin das beim AD-Export die Daten ohne Anführungszeichen " markiert werden? Weil die Datenbank die wir haben damit nicht klar kommt. Eigentlich müsste es doch damit funktionieren | % { $_ -replace '"', ""} | leider aber nicht, was mach ich falsch? Hier mein Code: $OU_Liste= 'OU=Admin-User,OU=User,OU=SAFE,DC=domain,DC=SEC,DC=de', 'OU=International,OU=User,OU=SAFE,DC=domain,DC=SEC,DC=de', $AllList = Foreach($OU in $OU_Liste){ Get-ADUser -Filter 'objectClass -eq "user"' -Properties * -SearchBase $OU | Sort-Object surname | Select-Object -Property @{Name='personalnummer';Expression={$_.EmployeeID}},@{Name='name';Expression={$_.Name}},@{Name='vorname';Expression={$_.givenName}},@{Name='titel';Expression={$_.extensionAttribute2}} }$AllList | Export-Csv \\Security\Daten\IT\mitarbeiter.csv -NoTypeInformation -Encoding UTF8 -Delimiter ';'| % { $_ -replace '"', ""} Vielen Dank schonmal für eure Hilfe.
  10. Hallo, ich will in einer Ausgabe Linien einfügen get-mailbox kl* | fl {write-output "_______" }, name Das Ergebnis ist: write-output "_______" : _______ Name : Name1 write-output "_______" : _______ Name : Nmae2 Wie bekomme ich das write-output "_______" : weg? Gruss Rakli
  11. Hab das Script von https://www.wsus.de/de/Scripts/Decline-WSUS-Updates um Approved Superseded Updates erweitert, die entfernt werden. Mein WSUS war mittlerweile bei 2TB Daten angelangt. Ich hoffe ich hab damit nix kaputt gemacht... Bis jetzt laufen aber alle Clients weiter und neue ungepatchte Clients bekommen alle Updates soweit ich das feststellen kann. Hab ich zusätzlich mit den Online Updates abgegeglichen. im Message Block Zeile hinzugefügt: $IsSuperseded_counted Superseded Updates wurden abgelehnt Im Funktionsblock am Ende wie folgt eingefügt: # Searching if the update is marked as superseded # IsSuperseded $IsSuperseded = $WsusServerAdminProxy.GetUpdates() | ?{-not $_.IsDeclined -and $_.IsSuperseded -eq 'True'} $IsSuperseded_counted = $IsSuperseded.count If ($IsSuperseded.count -lt 1) { $IsSuperseded_counted = 0 } If ($TrialRun -eq 0 -and $IsSuperseded.count -gt 0) { $IsSuperseded | %{$_.Decline()} } Hat bei mir ca 7000 Updates abgelehnt und 1TB Festplatte frei gemacht.
  12. Hallo zusammen, kennt jemand von Euch eine Möglichkeit per Powershell die Deligierung von GPO's anzupassen? Folgendes Szenario: Eine bestehende GPO wird per Powershell importiert und korrekt verknüpft (New-GPO -> Import-GPO -> New-GPLink). Für eine bestimmte AD-Gruppe soll jetzt die Berechtigung "GPO übernehmen" auf "Verweigern" gesetzt werden. Ist dies überhaupt möglich? Habe leider bisher hierzu nichts gefunden. Vielen Dank für Eure Hilfe, Rüdiger
  13. Hi, ich steht gerade auf dem Schlauch, wie kann man FL Ausgaben sortieren. Beispiel: Get-MailboxStatistics userxyz | fl Nach diesen Werten will ich sortieren: Gruss Rainer
  14. Hi zusammen, aufgrund eines Netzwerkzusammenschlusses muss unser bestehender UPN geändert werden. Bisher haben wir Vorname.Nachname@domain.com, wobei das auch unsere Mailadresse ist. Jetzt soll der UPN auf Nachname.ErsterBuchstabeVorname@anderedomain.net geändert werden. Wie kriege ich das mit PS hin? Bisher finde ich nur Skripte, die den Mailnamen abfragen, setzen und die Domäne ändern. Beispiel: Get-ADUser -Filter * -SearchBase '' -Properties userPrincipalName | foreach { Set-ADUser $_ -UserPrincipalName "$($_.samaccountname)@domäne"}
  15. HyperV - Veeam Backup Skript

    Hallo zusammen, ich habe einen HyperV Host mit 2 VMs, in der kostenlosen Veeam Backup Variante kann ich keine Backups terminieren, aus diesem Grunde habe ich mir folgendes Skript gebastelt. Dies funktioniert bei manueller ausführung wunderbar! Leider bekomme ich es nicht als WindowsAufgabe hin. Dort wird immer 0x1 zurückgegeben, ich weiß nicht was ich noch testen kann. Mit folgenden Einstellungen habe ich es versucht: SKRIPT: Add-PSSnapin VeeamPSSnapin #HyperV Host $Server = Get-VBRServer -Name "HyperVHost01" #VM1 $APP01 = Find-VBRHvEntity -Server $Server -Name "server01" #VM2 $APP02 = Find-VBRHvEntity -Server $Server -Name "server02" #Backuppfad $BackupPath = '\\server\VeeamBackup' #Anmeldeinformationen $Credential = Get-VBRCredentials -Name domäne\administrator #Backup-Start-Parameter Start-VBRZip -Entity $APP01 -Folder $BackupPath -Compression 9 -NetworkCredentials $Credential Start-VBRZip -Entity $APP02 -Folder $BackupPath -Compression 9 -NetworkCredentials $Credential Aufgabe: Programm/Skript: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe Argumente: -command "Pfad zum Skript\Skript.ps1" Die Aufgabenplanung hat die Instanz "{3312efce-04a0-4ae1-9038-11494cfcee17}" der Aufgabe "\Microsoft\VeeamBackupVMs" für den Benutzer "Domäne\Administrator" erfolgreich fertig gestellt.
  16. Hallo! Ich habe einen Script erstellt mit einem robocopy Command. Soll Daten von lokaler Platte 1:1 auf ein NAS spiegeln. Führe ist das script aus so läuft es gewünscht ab und synronisiert die Daten. Nun möchte ich dieses script per Aufgabenplaung ausführen. Anleitungen habe ich z.B. gefunden hier: https://blog.stefanrehwald.de/2013/06/12/powershell-08-ein-schedule-task-anlegen/ https://it-learner.de/mit-wenigen-klicks-kann-man-auch-ein-windows-powershell-script-in-die-aufgabenplanung-einbinden/ Das habe ich (meiner Meinung nach) auch so korrekt alles eingestellt. Die Aufgabe wird zum gewünschten Zeitpunkt auch ausgeführt. Meldung in der Aufgabenplanung "Der Vorgang wurde erfolgreich beendet. (0x0)). Allerdings werden die Dateien nicht synronisiert. Als würde das script nicht ausgeführt. In der Ereignisanzeige des Servers wird kein Fehler angezeigt.
  17. Hallo zusammen, ich habe ein Problem bei meinem Client (Windows 7 Prof., x64) und Powershell in folgender Version: $PSVersionTable Name Value ---- ----- PSVersion 5.1.14409.1012 PSEdition Desktop PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...} BuildVersion 10.0.14409.1012 CLRVersion 4.0.30319.42000 WSManStackVersion 3.0 PSRemotingProtocolVersion 2.3 SerializationVersion 1.1.0.1 Beim Versuch die Hilfe für die Vergleichsoperatoren mit "Get-Help about_comparison_operators" zu öffnen, bekam ich die Fehlermeldung, dass keine Dateien für die Hilfe verfügbar sind. Also flugs "Updat-Help -Force" gestartet und nochmal versucht - Pustekuchen. Anschließend mal mit "Update-Help -Force -Verbose" mal geschaut, was passiert (weil ich ja keine Fehlermeldung erhalte, der Updateprozess läuft sauber durch). Folgende Ausgabe erhalte ich: PS C:\Windows\system32> Update-Help -Force -Verbose VERBOSE: Resolving URI: "http://go.microsoft.com/fwlink/?linkid=390785" VERBOSE: Your connection has been redirected to the following URI: "http://download.microsoft.com/download/D/A/B/DAB15498-E46E-41D9-9693-C61191BA3234/" VERBOSE: Resolving URI: "http://go.microsoft.com/fwlink/?linkid=390785" VERBOSE: Your connection has been redirected to the following URI: "http://download.microsoft.com/download/D/A/B/DAB15498-E46E-41D9-9693-C61191BA3234/" VERBOSE: Resolving URI: "http://go.microsoft.com/fwlink/?linkid=390786" VERBOSE: Your connection has been redirected to the following URI: "http://download.microsoft.com/download/F/9/F/F9F893E0-3ADC-494A-951B-6A542D0E15D6/" VERBOSE: Resolving URI: "http://go.microsoft.com/fwlink/?linkid=390786" VERBOSE: Your connection has been redirected to the following URI: "http://download.microsoft.com/download/F/9/F/F9F893E0-3ADC-494A-951B-6A542D0E15D6/" Meine Vermutung ist jetzt, dass es mit dem Proxy, der hier genutzt wird, zusammenhängt. Also kurz gegoogelt und das hier gefunden, aber schon der erste Invoke-Webrequest funktioniert (StatusCode 200, StatusDescription OK), die Hilfe aktualisiert sich aber nicht. Ein Save-Help funktioniert dementsprechend auch nicht, es werden keine Dateien runtergeladen. Hat hier jemand noch eine Idee, woran es liegen könnte? Danke vorab!
  18. Hallo zusammen, ich bin absolut neu im Thema Powershell und habe eine Frage. Das ist mein Start "script". Get-ADGroupMember -Identity Gruppenname | Get-Aduser | so jetzt hätte ich gern, dass mir die Container der User angezeigt werden. BEISPIEL: Gruppenname: Laptops Mitglieder sind: PC1 (liegt in xy.intern/production/london/) PC2 (liegt in xy.intern/production/newyork) usw... ist es möglich mit die Mitglieder in der Gruppe "Laptops" + die Lokation der Memebers anzuzeigen? Vielen Dank schon mal für eure Hilfe
  19. Hallo zusammen, ich versuche mich gerade an einem kleinen Skript, das eine definierte Anzahl von Diensten beenden soll, sofern diese laufen, um anschließend den Starttyp zu ändern. So sieht mein Versuch bislang aus: $Services = Get-Service AxInstSV, bthserv, CDPUserSvc, PimIndexMaintenanceSvc, dmwappushservice, MapsBroker, lfsvc, SharedAccess, lltdsvc, wlidsvc, NgcSvc, NgcCtnrSvc, NcbService, PhoneSvc, Spooler, PrintNotify, PcaSvc, QWAVE, RmSvc, SensorDataService, SensrSvc, SensorService, ShellHWDetection, ScDeviceEnum, SSDPSRV, WiaRpc, OneSyncSvc, TabletInputService, upnphost, UserDataSvc, UnistoreSvc, WalletService, Audiosrv, AudioEndpointBuilder, FrameServer, stisvc, wisvc, icssvc, WpnService, WpnUserService, XblAuthManager, XblGameSave ForEach-Object {if ($Services.Status -eq "Running") {Stop-Service $Services}} ForEach-Object { Set-Service $Services -StartupType Disabled} Folgende Fehlermeldungen kriege ich (für jeden Dienst eine Zeile: Was mache ich falsch, kann mir hier jemand weiterhelfen?
  20. Datei per Skript auf Desktop kopieren

    Hallo zusammen, folgendes Szenario, ich würde gerne eine Datei (Verknüpfung) von einem Vz. auf den Desktop kopieren. Habe bereits 2x Skripte erstellt und diese lokal getestet. Dies läuft ohne Probleme :). Skript1: CallerBatch.ps1 powershell -executionpolicy bypass -file \\srv-file01\Skripts\Install.ps1 Skript2: Install.ps1 Copy-Item -Path \\srv-file01\Skripts\Tool -Destination c:\Tool -Recurse Copy-Item -LitertalPath '\\srv-file01\Skripts\Tool\Tool.lnk' -Destination $env:homepath\desktop --> Dies scheint nicht zu funktionieren, wenn das Skript nicht lokal liegt :( reg import C:\putty\tool.reg ich habe nun im AD ein entsprechendes GPO erstellt Benutzerkonfiguration\Richtlinien\Windows-Einstellungen\Skripts\Anmelden Skript1 habe ich im Sysvol-Vz. hinterlegt und entsprechend im GPO angebunten. Die Verknüpfung zum Programm wird nicht auf dem Desktop abgelegt, führe ich das Skript lokal aus, funktioniert es. Liegt das Skript auf einem Fileshare, funktioniert es nicht.
  21. Powershell Ausgabe reihenfolge

    Hallo Zusammen, hier der codeschnipsel: ...... If ($result -notlike '') { Write-Output $result $remotesession = Read-Host "Wollen Sie eine Remotesitzung zu diesem PC starten? ja / nein" if ($remotesession -like "ja") { Write-Output BLA ... } Die Ausgabe sieht so aus: Bitte geben Sie den zu suchenden User ein:: XYZ Wollen Sie eine Remotesitzung zu diesem PC starten? ja / nein: ja Computername Mitarbeiter ------------ ----------- LAPXYZ HUBERMAIER BLA Warum sieht die Ausgabe nicht so aus? Das " Write-Output $result" kommt ja vor dem "$remotesession = Read-Host "Wollen Sie eine Remotesitzung zu diesem PC starten? ja / nein" . Versteh nicht, warum der write-output ganz am ende erst kommt. Ist das normal so? Bitte geben Sie den zu suchenden User ein:: XYZ Computername Mitarbeiter ------------ ----------- LAPXYZ HUBERMAIER Wollen Sie eine Remotesitzung zu diesem PC starten? ja / nein: ja BLA Viele Grüße TC
  22. Powershell reg Datei Import

    Hallo, ich versuche reg Dateien zu importieren und das Ergebnis mit einem try catch abzufangen. Der Import funktioniert, allerdings lande ich immer im catch. Ich versuche es so: try { $files = Get-Childitem -Path "C:\temp\#Template Package\ImportRegFiles\*" -Include "*.reg" Foreach($regfile in $files) { reg import $($regfile.FullName) Write-Host "Erfolgreich" } } catch { Write-Host "fail" } Habe es auch schon statt reg import mit Start-Process -FilePath "regedit.exe" -ArgumentList "/S $($regfile.FullName)" -Wait -PassThru versucht, leider auch kein Erfolg. Habt ihr eine Idee, wie ich dies am besten abgefangen bekomme ?
  23. Hallo Gemeinde Ich suche eine Möglichkeit (am liebsten über PS) um in einem AD auf einer gewissen OU sämtliche User/Gruppen Berechtigungen die auf diese OU und alle Sub-OU´s gesetzt sind, verständlich (nach OU oder SubOU sortiert) in ein CSV zu exportieren. Diese Daten werden anschließend manuell bereinigt. Anschließend sollten die bereinigten Daten in einer zweiten Domäne mit gleichem OU Aufbau importiert werden können. Kann mit hier jemand PS mäßig helfen wie so etwas zu bewerkstelligen wäre? AD Struktur habe ich bereits per PS ausgelesen und auf dem zweiten AD importiert. Besten Dank jetzt schon für Eure Hilfe Drakrilla
  24. Hallo zusammen, ich habe ein Skript geschrieben. welches das Eventloig unser Exchange Server ausliest und prüft, ob die Tägliche BareMetal-Sicherung erfolgreich abgeschlossen wurde. Das Skript läuft jeden Tag um 6 Uhr. Komischerweise werden nicht immer beide Server abgefragt. Mal ja, mal nein. Führe ich den Task dann danach einmal manuell aus, werden wieder beide Server korrekt abgefragt. Hat jemand eine Idee, was das Problem sein könnte? Hier das Skiprt cls $host.ui.RawUI.WindowTitle = "Exchange Backup Check v0.3" #Mailvariablen $Mailempfaenger = "exchange-admins@****.de" $smtpserver = "outlook.****.de" $absender = "Tool-Server@****.de" #Exchange Mailbox-Server abfragen #Verbindung zum Exchange aufbauen New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://Exchange-1/powershell Import-PSSession $ExSession cls $exs= @("Exchange-1","Exchange-2") #Checkschleife foreach($ex in $exs) { #Datum von gestern in Variable $heute = Get-Date -uFormat „%m/%d/%y“ #Erfolgeich-Mail if(Get-WinEvent -LogName Microsoft-Windows-Backup -ComputerName $ex | Where-Object {$_.Id -eq 4 -and ($_.TimeCreated -gt $heute)}) { $mailbody_ex = "C:\mailbody_$ex.txt" $event_ex_erfolgreich = Get-WinEvent -LogName Microsoft-Windows-Backup -ComputerName $ex | Where-Object {$_.Id -eq 4 -and ($_.TimeCreated -gt $heute)} "$($event_ex_erfolgreich.TimeCreated)" | Out-File -FilePath $mailbody_ex -Append "$($event_ex_erfolgreich.Message)" | Out-File -FilePath $mailbody_ex -Append #Auslastung der Partition X in den Mailbody schreiben $auslastung_x = Get-WMIObject Win32_LogicalDisk -filter "name='x:'" -ComputerName $ex | Select freespace | ForEach {$_.name, [math]::truncate($_.freespace / 1GB)} "" | Out-File -FilePath $mailbody_ex -Append "Frei Speicher auf Festplatte X: $auslastung_X GB" | Out-File -FilePath $mailbody_ex -Append $body = Get-Content -Raw $mailbody_ex Send-MailMessage -SmtpServer $smtpserver -to $Mailempfaenger -from $absender -Subject "+++ Exchange Backup: $ex --> SUCCESS +++" -Body $body Remove-Item $mailbody_ex } #Fehler-Mail if(Get-WinEvent -LogName Microsoft-Windows-Backup -ComputerName $ex | Where-Object {$_.Id -eq 5 -and ($_.TimeCreated -gt $heute)}) { $mailbody_ex_error = "C:\mailbody_error_$ex.txt" $event_ex_nicht_erfolgreich = Get-WinEvent -LogName Microsoft-Windows-Backup -ComputerName $ex | Where-Object {$_.Id -eq 5 -and ($_.TimeCreated -gt $heute)} "$($event_ex_nicht_erfolgreich.TimeCreated)" | Out-File -FilePath $mailbody_ex_error -Append "$($event_ex_nicht_erfolgreich.Message)" | Out-File -FilePath $mailbody_ex_error -Append "" | Out-File -FilePath $mailbody_ex_error -Append #Auslastung der Partition X in den Mailbody schreiben $auslastung_x = Get-WMIObject Win32_LogicalDisk -filter "name='x:'" -ComputerName $ex | Select freespace | ForEach {$_.name, [math]::truncate($_.freespace / 1GB)} "" | Out-File -FilePath $mailbody_ex_error -Append "Frei Speicher auf Festplatte X: $auslastung_X GB" | Out-File -FilePath $mailbody_ex_error -Append $body = Get-Content -Raw $mailbody_ex_error #Fehlermeldung, dass das Backup nicht erfolgreich abgeschlossen wurde Send-MailMessage -SmtpServer $smtpserver -to $Mailempfaenger -from $absender -Subject "+++ Exchange Backup: $ex --> ERROR +++" -Body $body Remove-Item $mailbody_ex_error } #Nicht gestartet Mail if(!(Get-WinEvent -LogName Microsoft-Windows-Backup -ComputerName $ex | Where-Object {$_.Id -eq 1 -and ($_.TimeCreated -gt $heute)})) { Send-MailMessage -SmtpServer $smtpserver -to $Mailempfaenger -from $absender -Subject "+++ Exchange Backup: $ex --> ERROR +++" -Body "Das Backup wurde nicht ausgeführt" } }
  25. Exchange 2016 - Get-Help Powershell

    Hallo Zusammen, auf meiner Win 10 Kiste sind keine Exchange tools für Exchange 2016 installiert. Via Powershell importiere ich mir das Modul von Exchange. #New Session $session = New-PSSession -ConfigurationName microsoft.exchange -Credential $Cred -ConnectionUri http://xyz.domain.xy/powershell/ -Authentication Kerberos #Import Session import-pssession $session Wenn ich mir mit "get-help Get-Mailbox" die Hilfe anzeigen lassen will, bekomme ich eine Fehlermeldung: get-help : Exception calling "Open" with "0" argument(s): "The following error occurred while loading the extended type data file: Fehler in den Typdaten "System.DirectoryServices.PropertyValueCollection": Das Element "ToString" ist bereits vorhanden. Fehler in den Typdaten "System.Management.Automation.PSDriveInfo": Das Element "Free" ist bereits vorhanden. Fehler in den Typdaten "System.Management.Automation.PSDriveInfo": Das Element "Used" ist bereits vorhanden. ............... auch " Invoke-Command -ComputerName xyz {get-help Get-Mailbox}" schlägt fehl Get-Help could not find Get-Mailbox in a help file in this session. To download updated help topics type: "Update-Help". To get help online, search for the help topic in the TechNet library at http://go.microsoft.com/fwlink/?LinkID=107116. Jemand einen Tipp für mich, wie ich zu meiner Hilfe komme? Muss ich das Modul anderst einbinden? Viele Grüße TC
×