none
Powershell export multibler Variabeln mit ; in csv datei RRS feed

  • Frage

  • Moin zusammen,

    ich lern gerade stück für Stück auf der arbeit mit PS umzugehen und komme leider nicht weiter.

    Momentan hänkt es leider bei der Aufgabe das ergebnis in eine csv datei zu exportieren.

    $ADServer = (Get-ADComputer -Filter {Name -Like "*"} -SearchBase "OU=Application Servers,DC=$env:UserDomain,DC=xxx,DC=xxx").Name
    $Serveronline = (Test-Connection -Quiet -ComputerName $ADServer)
    $ENVName = (gci env:verfahren).name
    $ENVValue = (gci env:verfahren).value


    Die ausgabe am edne soll folgende sein:

    "ServerName";"Online"; "VariableName"; "VariableValue"
    Server01;true;Verfahren;schlagmichtod
    Server02;false;Verfahren;schlagmichtod2


    Den export hab ich mit google so durchgenommen das ich total im eimer bin, hat da wer n Tipp für mich?

    lg

    PS: $ENV:Name ist eine Interne Umgebungsvariable die nur als Text eingetragen ist um zb alle server mit Verfahren "schlagmichtod" aufzulisten. Naja ok ohne aliase wäre die hilfe am ende evtl falsch weil ich das ja so auslesen möchte. bzw um es später zu vereinfachen. Oder seh ich das falsch das der spätere export mit aliasen einfacher ist?



    • Bearbeitet Ronandssd Mittwoch, 20. Oktober 2021 11:37
    Mittwoch, 20. Oktober 2021 11:01

Antworten

  • OK, also musst Du von jeder Maschine (die online ist) die Umgebungsvariable abfragen. Das geht entweder per WMI

    (Get-WMIObject Win32_Environment -Filter 'Name="VERFAHREN"' -ComputerName $Server).VariableValue

    oder per Remoting

    Invoke-Command {$env:TEMP} -ComputerName $Server


    Evgenij Smirnov

    http://evgenij.smirnov.de

    • Als Antwort markiert Ronandssd Donnerstag, 21. Oktober 2021 13:43
    Donnerstag, 21. Oktober 2021 10:23

Alle Antworten

  • Moin,

    erstens, bitte Code als Code posten (2. Button von rechts).

    Zweitens, Dein erster Befehl liefert ja möglicherweise mehrere Servernamen zurück. Die musst Du irgendwie durchgehen - entweder in einer Schleife oder in der Pipeline.

    Drittens, was die Zeilen beabsichtigen, die mit $ENV beginnen, musst Du mal erläutern. Im Standard gibt es keine Umgebungsvariable %VERFAHREN%, die ist also spezifisch für eure Organisation, und niemand kann wissen, was darin steht.

    Viertens, BITTE KEINE ALIASE IN SKRIPTEN.


    Evgenij Smirnov

    http://evgenij.smirnov.de


    Mittwoch, 20. Oktober 2021 11:15
  • Mittwoch, 20. Oktober 2021 13:09
  • PS: $ENV:Name ist eine Interne Umgebungsvariable die nur als Text eingetragen ist um zb alle server mit Verfahren "schlagmichtod" aufzulisten.

    Auf welchen Maschinen ist sie gesetzt und was steht (exemplarisch) dort drin?

    Naja ok ohne aliase wäre die hilfe am ende evtl falsch weil ich das ja so auslesen möchte. bzw um es später zu vereinfachen. Oder seh ich das falsch das der spätere export mit aliasen einfacher ist?


    Häh? Aliase in Deinem Code sind gci für Get-ChildItem Ich glaube nicht, dass es die Ausgabe irgendwie beeinflussen wird, wenn Du die Cmdlets ausschreibst.


    Evgenij Smirnov

    http://evgenij.smirnov.de

    Mittwoch, 20. Oktober 2021 14:14
  • PS: $ENV:Name ist eine Interne Umgebungsvariable die nur als Text eingetragen ist um zb alle server mit Verfahren "schlagmichtod" aufzulisten.

    Auf welchen Maschinen ist sie gesetzt und was steht (exemplarisch) dort drin?

    Also auf allen Maschinen ist der $envName der selbe ion dem fall "Verfahren" und §EnvValue ist unterschiedlich.

    Donnerstag, 21. Oktober 2021 02:34
  • Wie in dem Link oben geschrieben, erstellst du ein Array von Objecten und gibst dieses per Export-CSV aus.

    $out = @()
    
    // Schleife
    $Out += @{"Name" = $Name; "Wert" = 123; }
    
    Export-CSV ...

    Donnerstag, 21. Oktober 2021 07:38
  • OK, also musst Du von jeder Maschine (die online ist) die Umgebungsvariable abfragen. Das geht entweder per WMI

    (Get-WMIObject Win32_Environment -Filter 'Name="VERFAHREN"' -ComputerName $Server).VariableValue

    oder per Remoting

    Invoke-Command {$env:TEMP} -ComputerName $Server


    Evgenij Smirnov

    http://evgenij.smirnov.de

    • Als Antwort markiert Ronandssd Donnerstag, 21. Oktober 2021 13:43
    Donnerstag, 21. Oktober 2021 10:23