Jump to content

ineedhelp

Members
  • Gesamte Inhalte

    110
  • Registriert seit

  • Letzter Besuch

Alle erstellten Inhalte von ineedhelp

  1. Vielen Dank für die Links. Die haben leider nicht gewünschte Ergebnis. Nach erneuten Öffnen von Google Chrome muss ich immer noch bestägigen, dass der Receiver installiert ist.
  2. Die Google Chrome-Einstellungen aus dem gp-pack Browser – Chrome, Edge, Edge (Chromium), Firefox habe ich für unsere Domäne übernommen. Leider wird jetzt nicht mehr gespeichert, dass Citrix Workspace insalliert ist. Nach jedem Neustart muss Receiver bereits installiert anklickt werden. In der Einstellung Eine Liste mit Protokollen festlegen, über die eine externe App aus aufgeführten Quellen gestartet werden kann, ohne beim Nutzer nachzufragen habe ich den Eintrag [{"allowed_origins": ["*"], "protocol": "receiver"}] gemacht und in der Einstellung Browserdaten beim Beenden löschen habe ich die Werte browsing_history, download_history, cookies_and_other_site_data, password_signin, autofill gesetzt. Welche Gruppenrichtlinieneinstellungen müssen noch gesetzt werden, dass sich Google Chrome merkt, dass der Receiver bereits installiert ist? Vielen Dank im Voraus.
  3. Ja. Möglichkeit gefunden. Funktion mit Parameter definieren und diese Funktion im Click-Ereignishandler mit Parameter aufrufen.
  4. Nachdem auf eine Schalftfläche geklickt wurde, werden Steuerelemte in einer grafischen WPF-Oberfläche dynamisch erzeugt und zu einem in Xaml-Code definierten Stackpanel hinzugefügt. Unter den dynamisch erzeugten Steuerelementen befindet sich auch eine Schaltfläche. In dem Click-Ereignishandler soll auf eine zur Laufzeit erzeugte Textbox zu gegriffen werden. Das Textbox-Objekt wird einer Variable zu gewiesen. Trotz das die Variable im selben Gültigkeitsbereich erzeugt wurde, wird die Variable im Ereignishandler nicht gefunden. Die FrameworkElement.FindName(String)-Methode liefert auch nur $null zurück. Über die Children-Auflistung des Stackpanels kann aber zur Textbox navigiert werden. Das ist aber bei sehr verschachteles Xaml umständlich, unübersichtlich und fehleranfällig. Gibt eine Möglichkeit die Variable dem Click-Ereignishandler als Parameter zu übergeben? Vielen Dank im Voraus. $xaml = @' <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="500" Width="800" WindowStartupLocation="CenterScreen" > <Grid Background="LightGreen"> <Grid.ColumnDefinitions> <ColumnDefinition Width="200"/> <ColumnDefinition/> </Grid.ColumnDefinitions> <StackPanel VerticalAlignment="Center"> <Button x:Name="ComputerButton" Content="Rechner" Margin="20" /> <Button x:Name="UserButton" Content="Benutzer" Margin="20" /> </StackPanel> <StackPanel Grid.Column="1" Background="White" Margin="0,20,20,20"> <StackPanel x:Name="Content" HorizontalAlignment="Left" /> </StackPanel> </Grid> </Window> '@ $reader = [System.Xml.XmlReader]::Create([System.IO.StringReader]$xaml) $window = [System.Windows.Markup.XamlReader]::Load($reader) $contentPanel = $window.FindName('Content') $window.FindName('ComputerButton').Add_Click({ $contentPanel.Children.Clear() $label = New-Object System.Windows.Controls.Label $label.Content = 'Rechnername:' $label.FontWeight = 'ExtraBold' $textBox = New-Object System.Windows.Controls.TextBox $textbox.Margin = '20,0,20,0' $textBox.Name = 'ComputerNameTextBox' $textBox.Width = '250' $button = New-Object System.Windows.Controls.Button $button.Content = 'Suchen' $button.IsDefault = $true $button.Width = '100' $button.Add_Click({ # $computer = $textBox.Text Write-Host ($null -eq $textBox) # Ausgabe: True # $computer = $window.FindName('ComputerNameTextBox').Text Write-Host ($null -eq $window.FindName('ComputerNameTextBox')) # Ausgabe: True $computer = $contentPanel.Children[1].Children[0].Text if (-not([String]::IsNullOrEmpty($computer)) ) { [System.Windows.Forms.MessageBox]::Show($computer) } }) $stackPanel = New-Object System.Windows.Controls.StackPanel $stackPanel.Orientation = 'Horizontal' $stackPanel.Children.Add($textBox) $stackPanel.Children.Add($button) $contentPanel.Children.Add($label) $contentPanel.Children.Add($stackPanel) }) $window.FindName('UserButton').Add_Click({ $contentPanel.Children.Clear() $label = New-Object System.Windows.Controls.Label $label.Content = 'NICHT IMPLEMENTIERT' $label.FontWeight = 'ExtraBold' $label.Foreground = 'Red' $contentPanel.Children.Add($label) }) [void]$window.ShowDialog()
  5. Leider ist da die Entscheidung gefallen. Mit Sicherheit ein Grund hierfür war, dass ich als Einziger sich mit dem SCCM auskannte und die neue verantwortliche Person sich nicht mit dem Thema SCCM auseinander setzen wollte. Also werden die Rechner wieder mit dem USB-Stick installiert, Programme manuell oder per GPO nachinstalliert. WSUS ist im Produktivnetz im Einsatz. Es geht um das Testen vom WSUS Package Publisher.
  6. SCCM war hier bereits erfolgreich im Einsatz. Vor Jahren wurde dieser aber leider mit einer neuen verantwortlichen Person abgeschaft. Softwareverteilung mit Gruppenrichtlinien würde völlig ausreichend. Der steht schon auf meiner Todo-Liste. Leider hatte ich noch keinerlei Zeit, den in meinem Testnetzwerk zu teseten
  7. Vielen Dank. Dann werde ich das Programm per Skript unbeaufsichtigt installieren.
  8. Von der Seite https://www.apple.com/itunes/download/win64 habe ich die letzte Version von iTunes heruntergeladen und aus der heruntergeladenen .exe-Datei das ,msi-Paket für iTunes extrahiert. Dieses Paket möchte ich per GPO auf die Rechner in der Domäne verteilen. Unterhalb des Knotens Computerkonfiguration\Richtlinien\Softwareeinstellungen\Softwareinstallation habe ich erfolglos versucht, das iTunes-Paket bereitzustellen. Die Meldung besagt, dass Das Hinzufügen fehlgeschlagen ist. Die Bereitstellungsinformationen konnten nicht vom Paket abgerufen werden. Stellen Sie sicher, dass das Paket richtig ist. Eine manuelle Installation mit dem Paket habe ich bereits erfolgreich auf einem Testrechner durchgeführt. In der Freigabe liegen weitere Msi-Pakete, die bisher erfolgreich per GPO verteilt wurden. Wer kann mir helfen, dass das Paket per Softwareverteilung auf die Rechner installiert wird? VIelen Dank im Voraus.
  9. Auszug aus Kapitel 5 Die PowerShell-Pipeline aus dem Buch PowerShell 7 und Windows PowerShell von Dr. Tobias Weltner In Bezug auf Sort-Object und Group-Object hast Du natürlich recht. Diese Cmdlets blockieren die asychrone Streaming-Verarbeitung, weil sie auch erst einmal alle Objekte kennen müssen.
  10. Musst das Ergebnis in eine Variable zwischengespeichert werden? Kannst Du das Ergebnis nicht direkt mit Pipeline-Operator | an den nächsten Befehl weiterleiten. Die Pipeline ist ein moderner Streaming-Mechanismus der ohne Variablen auskommt und speicherschonend arbeitet.
  11. @Dukel Vielen Dank. Das Github-Repository von NeverRed hatte ich mir bereits angeschaut, um herauszufinden, wie NeverRed IrfanView herunterlädt.
  12. Moin @NilsK. Mir liegt es völlig fern, dieser (kleinen) Bitte nicht zu entsprechen und zu diskutieren. Ich versuche nur zu verstehen, wo der Unterschied zwischen Wie fahre ich mit dem Auto nach Dortmund? oder Wie fahre ich mit Auto? liegt. Die Antwort Nimmm die Bahn. In zwei Stunden bist Du in Dortmund. kannte ich auch vor meiner Frage. Am nächsten Tag möchte ich nach Berlin: Wie fahre ich mit dem Auto nach Berlin? Antwort: Nimm die Bahn. von Hannover bist Du in drei Stunden in Berlin. Auto kann ich immer nicht noch fahren. Nächste Woche möchte ich nach München. In fünf Stunden bist Du in München, wenn Du die Bahn nimmst. Wie fahre ich mit dem Auto zu meinen Freunden? Nimm das Fahrrad. Okay, das Auto wird verkauft. Die Antwort: Benutze baramundi oder SCCM, um die Updates auf Deine 500 Clients bereitzustellen, kannte ich auch vor auch der Fragestellung. Das eigentliche Problem, mit PowerShell Dateien von (speziellen) Internetseite herunterzuladen, wird so nicht gelöst werden. Wenn es natürlich für die Problemlösung hilft, werde ich künftig alle Details erwähnen. Viele Grüße
  13. Moin. Leider habe ich es noch verstanden. Es ist richtig, dass es mir nicht hilft, wenn mir jemand sagt, dass ich das Auto schieben kann. Dafür ist es doch unwichtig, wenn ich heute nach Dortmund, morgen nach Berlin und nächste Woche nach München möchte. Wie ich die Zielorte erreichen kann, weiß ich. Nur möchte ich ein anderes (komfortables) Reisemittel nutzen. Ich habe nicht verstanden, welchen Unterschied es gemacht hätte, wenn ich gefragt hätte: Um meine Systeme zu aktualisieren, möchte ich (automatisiert) die Installer per PowerShell von einer Interseite herunterladen. Statt der Setuproutine bekomme ich nur html gespeichert. Wie kann ich den Download per PowerShell realisieren? Eine automatisierte Lösung zur Bereitstellung von Software ist bereits erfolgreich implementiert. Meines Erachtens habe ich nicht nach einer Lösung für das Problem Y gefragt, um X zu lösen. Da X ist bereits gelöst. Aber wenn es natürlich für Zukunft hilft, werde ich versuchen, keine Details wegzulassen. Viele Grüße
  14. Moin @NilsK. Okay. Vielleicht mein Fehler. Für mich ging es nur darum, wie ich die Dateien (automatisiert) herunterladen kann. Die Systeme zu aktualisieren, ist ja bereits gelöst und hatte für mich nichts der Problemstellung zu tun und ich wollte mich nur auf das Wesentliche beschränken. Wenn ich den Weg nach Dortmund kenne, aber das Auto nicht starten kann, dann Suche ich doch die Lösung wie ich mit dem Auto losfahren kann. Aber ich gelobe Besserung und werde beim nächsten Mal die gesamte Aufgabenstellung schildern.
  15. Moin @NilsK. Mit dem Skript wollte ich genau ein automatisierten Download erreichen. Vielleicht sollte es fürs Erste reichen, wenn mich das Skript benachtrichtig, wenn eine neue Version verfügbar ist. Moin @testperson Vielen Dank für die Lösung mit NeverRed. Das werde ich mir mal bei Zeiten genauer anschauen ....
  16. @All Die Installer möchte ich per PowerShell von der Webpage https://www.irfanview.com/64bit.htm. Leider bekomme ich als Ergebnis immer nur eine html-Seite gespeichert. Wenn ich die Datei mittels Browser herunterlade, wird mir ein kryptischer Downloadlink angezeigt: https://download.fosshub.com/Protected/expiretime=...34534...;badurl=....asdfasdf.../...asdfas.../iview462_plugins_x64_setup.exe Mir fehlt leider die Idee, wie ich es lösen kann. Vielleicht gibt es hier jemand, der mir helfen kann... Hier mein bisheriges Ergebnis. Versuche mit der .NET-Klasse System.Net.WebClient blieben auch erfolglos. (Auf die Verwendung von .NET-Klasse soll ja verzichtet werden!!!) Vielen Dank im Voraus $previousProgressPreference = $ProgressPreference $ProgressPreference = "SilentlyContinue" $response = Invoke-WebRequest -Uri https://www.irfanview.com/64bit.htm $response.Links | Where-Object { ($PSItem.href -like "*g*.exe") -or ($PSItem.href -like "*plugins*.exe") } | Select-Object -ExpandProperty href | ForEach-Object { $fileName = Split-Path $PSItem -Leaf Write-Output "Downloading '$fileName'. Please wait ..." # Allways download a webpage. Invoke-WebRequest -Uri $PSItem -OutFile $fileName } $ProgressPreference = $previousProgressPreference
  17. @All Gibt es die Möglichkeit die Ordnerumleitung nur für bestimmte Systeme zu aktivieren. (Geht das vielleicht mit Loopback-Processing?) Zum Beispiel soll die Ordnerumleitung nur für die RDS-Host aktiv sein, und nicht für andere Serversysteme. Wie kann man das lösen, dass man auf bestimmte Systeme die Vorzüge der Ordnerumleitung genießt und auf andere Systeme es nicht benötigt bzw. eher störend empfinden? Vielen Dank für die Anregung.
  18. @All Beim Ausführung der Methode InstallProductKey der Cim-Klasse SoftwareLicensingService bekomme ich immer den Fehler geworfen, dass die Parameter ungültig sind. Lt. (Get-CimClass SoftwareLicensingService).CimClassMethods['InstallProductKey'].Parameters # OUTPUT: # # Name CimType Qualifiers ReferenceClassName # ---- ------- ---------- ------------------ # ProductKey String {ID, in} erwartet die Methode InstallProductKey einen Parameter ProductKey vom Typ String. Der Aufruf von Invoke-CimMethod -ClassName SoftwareLicensingService -MethodName InstallProductKey -Arguments @{ ProductKey="xxxxx-xxxxx-xxxxx-xxxxx-xxxxx" } # OUTPUT: # # Invoke-CimMethod : Die Parameter der Methode sind ungültig. # In Zeile:1 Zeichen:1 # + Invoke-CimMethod -ClassName "SoftwareLicensingService" -MethodName "I ... # + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # + CategoryInfo : NotSpecified: (root\cimv2:SoftwareLicensingService:String) [Invoke-CimMethod], CimException # + FullyQualifiedErrorId : HRESULT 0x8004102f,Microsoft.Management.Infrastructure.CimCmdlets.InvokeCimMethodCommand wirf mir aber ständig einen Fehler. Was habe ich übersehen? Der Aufruf von $slmgr = Get-WmiObject -Class SoftwareLicensingService $slmgr.InstallProductKey("xxxxx-xxxxx-xxxxx-xxxxx") funktioniert. Gerne würde ich es mit CimCmdlets lösen, da ich gelesen habe, dass die WMI-Cmdlets veraltet sind und man besser den CimCmdlets den Vorzug leisten sollte. Vielen Dank für Eure Hilfe.
  19. Ich habe ein einfaches PowerShell-Skript, welches meine GPOs sichert und alle Sicherungen, die älter als 30 Tage sind löscht. Ich habe den PSScriptAnalyzer über mein BackUp-Skript laufen und der gibt die Warnung aus: The parameter 'DeleteAfterDays' has been declared but not used. Aber in Zeile 23 verwende ich den Parameter. Warum kommt die Meldung? Ich weiß nicht, wie ich es lösen kann. Danke für die Hilfe.
  20. Ich wollte die Deklarierung der Variable/des Hashtables vermeiden, weil ich diese nur einmal beim Aufruf der Funktion/des Cmdlets benötige. Ich denke auch, dass das erste Beispiel das meistverwendete ist und werde die Splatting-Technik so nutzen, wie sie allemein ist.
  21. Mein zweites Beispiel hatte ich auch unvorteilhaft formatiert. Da ging es mir nur darum, das Hashtable an die Funktion weiterzuleiten. Vielleicht ist es ja so bisser lesbar. # My Splatting tries # ------------------ function MyFunc { param ( [String]$paramOne, [String]$paramTwo, [String]$paramThree, [String]$paramFour ) Write-host Write-Host '--- In MyFunc ----' Write-Host "This is $paramOne" Write-Host "This is $paramTwo" Write-Host "This is $paramThree" Write-Host "This is $paramFour" } @{ paramOne = 'This is paramter One.' paramTwo = 'This is paramter Two.' paramThree = 'This is paramter Three.' paramFour = 'This is paramter Four.' } | ForEach-Object { MyFunc @_ } Vielen Dank für die Lektüre. Die habe ich mir gleich zu Gemüte geführt. Da ich der Einzige in unserem zehn Mannteam ist, der Windows PowerShell halbwegs beherrsche, könnte ich gleich Standards für die Skripterstellung im Team definieren.
  22. Hallo Communtiy. Gerade bin ich über das Splatting gestolpert und finde es feine Sache, um die PS-Skripte lesbarer zu machen. Wie muss der Ausdruck aussehen, wenn ich das Hashtable direkt beim Aufruf der Funktion/des Commandlets definiere und übergeben möchte? Bisher habe ich dazu nichts im Netz gefunden und Ich habe auch schon die unterschiedlichsten Sachen ausprobiert. # My Splatting tries # ------------------ function MyFunc { param ( [String]$paramOne, [String]$paramTwo, [String]$paramThree, [String]$paramFour ) Write-host Write-Host '--- In MyFunc ----' Write-Host "This is $paramOne" Write-Host "This is $paramTwo" Write-Host "This is $paramThree" Write-Host "This is $paramFour" } $SplattedParams = @{ paramOne = 'One.'; paramTwo = 'Two.'; paramThree = 'Three.'; paramFour = 'Four.' } MyFunc @SplattedParams @{ paramOne = 'One.'; paramTwo = 'Two.'; paramThree = 'Three.'; paramFour = 'Four.' } | ForEach-Object { MyFunc @_ } # NOT working!!! MyFunc @${ paramOne = 'One.'; paramTwo = 'Two.'; paramThree = 'Three.'; paramFour = 'Four.' } Danke für die Hilfe.
  23. @All Mit Hilfe von AutoIt habe ich eine grafische Benutzeroberfläche erstellt. Diese wird per Gruppenrichtlinie als benutzerdefinierte Benutzeroberfläche gestartet. Die Benutzer habe die Möglichkeit über die UI allgemeinverfügbare Programme zu starten. Das funktioniert sehr gut. Jetzt gibt es das Problem, dass mancher Benutzer auf Daten von Ihrem mit BitLocker To Go verschlüsseltem USB-Stick zugreifen wollen/müssen. Leider funktioniert der Aufruf von control /name Microsoft.BitLockerDriveEncryption nicht. Liegt es daran, dass das Explorer-Programm fehlt? Für die PowerShell-CmdLets aus dem BitLocker-Modul werden leider administrativen Rechte benötigt. Welche Möglichkeiten habe ich noch, damit der Benutzer den USB-Stick entschlüsseln kann. Danke im Voraus.
  24. Ich wollte nur sicher gehen, dass ich nichts übersehen haben.
×
×
  • Neu erstellen...