Quantcast
Channel: Windows PowerShell Forum
Viewing all 2314 articles
Browse latest View live

AppStore weg

$
0
0

Hallo,

ich habe mit RemovePackage den AppStore entfernt und würde gerne den Store wiederherstellen, er ist aber

nicht mehr vorhanden. Was kann man da machen ohne eine Neuinstallation, Wiederherstellung ist auch keine Alternative zwischendurch schon zuviele Programme installiert.

Danke.

Gruß

Hugo


Wo spezifiere ich den "noprofile" parameter in einer Anmeldeskript GPO PowerShell

$
0
0

Guten Tag

Meine Frage ist ziemlich "straight-forward". Wo kann ich in meiner GPO, unter den PowerShell AnmeldeSkripts den "NoProfile" Parameter für das starten von PowerShell mitgeben?

Unter "Skriptparamter" kommen ja die eigenen hin und wenn ich es bei dem Skriptnamen anhänge, funktioniert es nicht.

Ich finde das muss man mitgeben können, und nicht auf einen Batch ausweichen, der PowerShell mit dem Parameter callt.

sudo für die PowerShell

$
0
0

Evtl. wurde dies schon angesprochen

Ich fände es extrem hilfreich, wenn in PowerShell ein Befehl wie "sudo" möglich wäre, um die aktuelle Session (in Skript oder Command-Tool) von PowerShell mit den höchsten Privliegien auszustatten.

Momentan kann man in einem PowerShell Script folgendes machen, damit der aktuelle Skript sich selbst ein "sudo" gibt (ab PS 4.0):

if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator"))
{ Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs; exit }

Es wäre schön, wenn dies vereinfacht würde.

Ist es für Microsoft denkbar, so etwas umzusetzen?

PS-Session Authentication mit x509 Thumbprint

$
0
0

Hallo,

ich möchte mich auf ein anderen Windows Server 2012 in meinem Netzwerk mit PS-Session verbinden. Ich möchte allerdings zur Authentifizierung ein Zertifikat benutzen und keine Log-In Daten. Ich habe es mit folgendem Befehl versucht:

New-PSSession -Computername 172.16.17.51 -CertificateThumbprint 02CB8BAH97AH679HDFMA8F384A 

Das Zertifikat liegt auf dem Computer mit der obigen IP-Adresse unter Eigene Zertifikate. Wenn ich nun den Befehl Abschicke wird mir folgendes als Fehlermeldung ausgegeben:

New-PSSession : Der WS-Verwaltungsdienst kann das angeforderte Zertifikat nicht finden.
In Zeile:1 Zeichen:1+ New-PSSession  -Computername 172.16.17.51 -CertificateThumbprint 02CB8BA899CD963 ...+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+ CategoryInfo          : InvalidOperation: (:) [New-PSSession], PSInvalidOperationException+ FullyQualifiedErrorId : InvalidOperation,Microsoft.PowerShell.Commands.NewPSSessionCommand

Was mache ich falsch? Gebe ich ein komplett falschen Befehl ein?

Danke schonmal im Vorraus :),

jofri

Usergruppen TakeOwnership verbieten

$
0
0

Hallo zusammen,

wir haben hier mit unseren Mac OS Rechnern (Yosemite) das Problem, dass deren User (alles AD User) beim Erstellen neuer Ordner auf unseren 2008er Fileservern die Besitzrechte über diese übernehmen und die Gruppen raus werfen, sodass nur noch der erstellende User Zugriff hat. 

Alle User sind in zwei Gruppen (eine pro Abteilung) und haben Lese-/Schreibzugriff auf die Shares. Abgesehen von einigen Verzeichnissen auf die nur bestimmte Gruppen Zugriff haben. Die Berechtigung "Besitz übernehmen" ist jedoch keiner Gruppe erlaubt, sodass ich mir das Problem prinzipiell nicht erklären kann. 

Jetzt würde ich "Besitz übernehmen" den Gruppen mit allen Usern aber gern explizit verbieten.

Kann ich per Powershell alle Verzeichnisse eines Servers nach bestimmten Gruppen in den Berechtigungen durchsuchen und, sollten diese vorhanden sein, TakeOwnership auf verweigert setzen? Verzeichnisse auf die diese Gruppen bisher keinen Zugriff haben soll die Gruppe dabei natürlich nicht hinzugefügt werden.

Kann mir da vielleicht jemand einen Denkanstoß geben? 

Danke vorab & viele Grüße
Eike

TXT einlesen und mit Eingabe des Users vergleiche

$
0
0

Hallo,

ich bin neu in Powershell und hätte da eine Frage.

Ich habe eine Textdatei (welche ich beim starten des Skripts erzeuge) mit Shares (kann sich öfters ändern) eines Netapp Filers.

Der User wird gefragt für welchen Share er sich Informationen anzeigen lassen will (z.B. Größe, Anzahl iNodes usw.), jetzt soll die Eingabe mit der Text Datei abgeglichen werden, ob der Share überhaut existiert. Wenn er vorhanden ist, soll er mit den Script weitermachen, wenn nicht den User zur erneuten Eingabe auffordern.

Könnte das ganze ja mit den -match Befehl machen, da müsste ich aber alle Shares ins Skript eintragen, da diese sich aber ändern, ist dies nicht sehr komfortabel.

Wie kann ich das bewerkstelligen?

Gruß

Harald

Powershell Einstellungen

$
0
0

Hallo zusammen,

ich habe eine Frage, was muss man bei der Powershell Einstellungen generell berücksichtigen?

Vielen Dank im Voraus

lg

xGT86


PowerShell: Frage zu Umlauten

$
0
0

Hallo, 

um den Edge Browser neu zu installieren befolge ich eine Anleitung.

In Schritt 5 soll man dort in PowerShell den Pfad zum dem eigenen Benutzerordner leiten. (mit cd Befehl)

Leider ist mein Benutzerordner mein Vor- und Nachname. Dieser ist mit einem ü und ich bekomme immer eine Fehlermeldung (Set-Location : Es wurde kein Positionsparameter gefunden, der das Argument "(mein Nachname)" akzeptiert.).

Wie kann ich den Pfad eingeben?

Danke für Hilfe


Dot Sourcing über Variable

$
0
0

Hallo,

Ich habe mir eine Funktionsbibliothek angelegt und möchte diese über Dot Sourcing in meine laufenden Scripte bei Bedarf einbinden.

Gebe ich den Pfad direkt an, funktioniert es natürlich, wie es soll. Nun möchte ich aber das Verzeichnis relativ zum laufenden Script setzen, weil das Script auf verschiedenen System laufen soll und von Leuten ausgeführt wird, die in den Scripten nicht noch Pfade anpassen müssen.

# Folgendes funktioniert:
. C:\Users\UserName\Documents\Powershell\script.ps1

# Dies funktioniert nicht:
$ScriptRoot = split-path $PSScriptRoot
. $ScriptRoot"library.ps1"

# Was allerdings wieder funktioniert:
$ScriptRoot = split-path $PSScriptRoot"\library.ps1"
. $ScriptRoot"library.ps1"

Mit der unteren Variante ist mir zwar erstmal geholfen, aber so ganz verstehe ich nicht, warum die zweite nicht funktioniert und wie ich das besser lösen könnte?

Für Infos immer dankbar.

Gruß Arne



Ausgabe von Strings aus Array zeigt nicht die kompletten Strings an

$
0
0

Hallo zusammen,

Ich bin neu in der großen Welt von Powershell, also entschuldigt bitte so manchen Anfängerfehler :)

Ich arbeite an einem Script, das alle Hosts aus einer VmWare - Datenbank nimmt und abfragen soll, ob 8 bestimmte Datastores angeschlossen sind. Das Ergebnis wird sowohl in Powershell selbst als auch in einer .txt als Tabelle angezeigt. Das Problem liegt nun darin, dass mir nicht die kompletten Strings (die Namen der fehlenden Datastores) angezeigt werden. Ein Ergebnis sieht z.B. so aus:

 
host                     fehlende_datastores
----                     -------------------
host1                    {datastore1, datastore2, datastore3, datastore4...}



An der Formatierung liegt es nicht, wie man im Quellcode erkennen kann, habe ich für die .txt die Breite auf 4096 gesetzt, dort sieht das Ergebnis jedoch exakt gleich aus. Die Frage, die sich mir nun stellt, ist ob das Script die Datastores nicht korrekt im Array abspeichert, oder ob diese nur nicht richtig ausgegeben werden und natürlich, wie ich das Problem lösen kann :)

Add-PSSnapin VMware.VimAutomation.Core
Connect-VIServer VmWareserver

$datastores = @()
$ergebnisse = @()

$datastores = Get-Datastore
$hosts = Get-VMHost

$suche = @(
"Datastore1","Datastore2","Datastore3","Datastore4","Datastore5","Datastore6","Datastore7","Datastore8"
)

foreach($i in $hosts)
{
    $datastore = Get-Datastore -VMHost $i

    $erg = New-Object System.Object
    $erg | Add-Member -NotePropertyName "host" -NotePropertyValue $i.Name
    $erg | Add-Member -NotePropertyName "fehlende_datastores" -NotePropertyValue @()
    foreach($ds in $datastore)
    {
        foreach($i in $suche)
        {
            if(!($i -like $ds.name))
            {

                $erg.fehlende_datastores += $i


            }
        }
    }

    $ergebnisse += $erg

}

$ergebnisse | Format-Table -wrap -AutoSize

$ergebnisse | Format-Table -Property * -AutoSize `
            | Out-String -Width 4096 `
            | Out-File H:\x.txt







Powershell Scheduler Webaufruf

$
0
0

Hallo zusammen

Ich habe ein Test-Skript welches jede Stunde läuft. Schlägt der Test fehl soll es über HTTP Alarm schlagen. Aktuell zum testen mache ich das so:

Start-Process -filePath "https://wuwu.alertmee.dee/callme.ASP?WCI=Function=SendMessage&Account=xxx&Password=yyy&MobileNumber=+397000111
Meine Frage nun, wenn ich das Script über einen Task Schedule, kann ich es dann auch so machen? Wird der Process danach automatisch beendet oder wie müsste dass ausehen?

Gruss
Florian

Regebnis aus SqlDataAdapter in HashTable bringen

$
0
0

Hallo,

Ich mache eine SQLQuery nach diesem Schema:

    $SQLCommand = New-Object -TypeName System.Data.SqlClient.SqlCommand
    $SQLCommand.Connection = $oConn
    $SQLCommand.CommandText = $sQuery


    $sqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
    $sqlAdapter.SelectCommand = $SQLCommand

Bisher fülle ich das in ein DataSet:

    $sysDataSet = New-Object System.Data.DataSet
    $sqlAdapter.Fill( $sysDataSet )

Ich würde aber eigentlich gerne das Ergebnis der Query in einer HashTable von diesem Aufbau ( schematisch ) haben:

@{<column1_name> = <column1_value>;<column2_name> = <column2_value>;
    ...<columnN_name> = <columnN_value>

}

Ich fange seit zwei Tagen erst mit der Powershell an, daher weiß ich noch nicht so viel, kann mir aber denken, dass es dafür eine relativ simple Umsetzung gibt und hoffe ihr habt einen Tipp für mich.

Danke

Abfrage des Installation-Status einer DSC-Configuration nach reboot

$
0
0

Hallo zusammen,

ich nutze derzeit DSC um auf mehreren Windows Server 2012 R2 zwei Compiler zu installieren. Die Installation muss in einer bestimmten Reihenfolge durchgeführt werden. Das passt auch soweit, jedoch ist nach der Hälfte der kompletten Installationen ein Reboot des Systems erforderlich. Nach dem Reboot wird die Installation der letzen Komponenten ausgeführt.

Wie kann ich hier den Status der Installation abfragen, bzw. herausbekommen, ob die Installation komplett abgeschlossen ist, da im Anschluss noch ein Dienst konfiguriert werden muss?

Vielen Dank vorab für eure Unterstützung

Holger


Powershell auf RDS Sitzungshostserver nicht verfügbar

$
0
0

Hallo,

Ich habe eine RDS Farm mit mehreren Servern. Der Sitzungshostserver und der Verbindungsbroker sind auf unterschiedlichen Servern.

Wenn ich auf dem Sitzungshostserver Powershell als Admin öffne und Import-module RemoteDesktop aktiviere, kann ich danach den Befehl Get-RDServer auswählen. Allerdings erscheint eine Fehlermeldung:

Der Remotedesktop-Verwaltungsdienst wird auf dem Remotedesktop-Verbindungsbrokerserver nicht ausgeführt

Auf dem Verbindungsbrokerserver funktioniert dies.

Kann mir jemand sagen warum ?

Excel-Prozess nach Script beenden

$
0
0

Hallo,

Ich erstelle mir eine Excel-Instanz, über die ich mehrere Arbeitsmappen erstelle und abspeichere.

Am Ende möchte ich, dass die Excel-Instanz beendet wird.

Da auf dem System allerdings auch andere Excel-Prozesse laufen könnten, kann ich das schlecht über die Prozesse direkt machen und versuche mir damit zu helfen:

$oXls.Quit()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject( $oXls )
Remove-Variable oXls

Im Task-Manager wird der von mir gestartete Prozess allerdings nicht beendet.

Wie kann ich das ändern?

Danke!


Mit PowerShell Kontakte in CSV-Datei in eine bestimmte Mailbox importieren (Exchange2010)

$
0
0

Hallo

Ich habe eine CSV-Datei mit Kontaktdaten. Diese wird automatisch aus einer DB generiert (eine PST-Datei zu erstellen ist nicht möglich). Diese muss ich automatisiert mittels Script in die Kontakte einer bestimmten Mailbox importieren. Gibt es eine möglichkeit das CSV-File in eine Mailbox zu importieren?

Versucht habe ich:

  • New-MailboxImportRequest - Funktioniert alles perfekt mit PST, leider aber nicht mit CSV.
    Get-MailboxFolderStatistics zeigt auch aktueller Inhalt des Contacts-Folder richtig an.
  • Get-Contact/New-Contact - Script erstellt Kontakte perfekt in der Organisationseinheit / Gesamtstruktur (Empfängerkonfiguration -> E-Mail-Kontakt, weiss leider nicht genau wie man dem sagt)
  • Import-Mailbox - scheint nicht zu funktionieren mit Exchange2010

Auch versucht habe ich:

  • Get-Contact/New-Contact -Identity <user>
  • Get-Contact/New-Contact -Identity <OU>\<user>

Ich denke bei den letzteren stimmen die Befehle nicht, deshalb auch die Fehlermeldungen dass "<user>" nicht gefunden wurde.

Ich hatte mir noch überlegt, dass wenn ich die Kontaktliste (CSV) in E-Mail-Kontakt (Gesamtstruktur) importieren kann und daraus ein PST exportieren könnte, dann könnte ich mit New-MailboxImportRequest das PST in die gewünschte Mailbox importieren. Ich finde aber dazu leider keine Lösung bzw. wie man alle E-Mail-Kontakte (Gesamstruktur) in ein PST-File exportiert. Wäre dies überhaupt möglich?

Vielen Dank im Voraus für jede Hilfe.


csv datei einlesen und nach inhalten in neue schreiben

$
0
0

Hallo aus Hessen,

ich habe schon ein wenig mit Powershell gearbeitet und stehe vor einem Problem, das ich zwar logisch erklären kann, aber powershell nicht genug kenne um das umzusetzen.

Folgendes: Angenommen ich habe eine Liste in diesem Format:

User;Wert
A1;20
A2;5
A3;4
A4;37
A5;18
A6;40
A7;13
A8;10
A9;8
A10;25

Ziel ist es aus dieser Datei  Einzeldateien zu bilden, in denen jeweils User mit Wert kleiner gleich 40 sind. Im beispiel würde dann A1,A2,A3 und A8 in einer Datei stehen und A4 einzeln in einer Datei stehen. Und A5,A7 in einer Datei.

Hat jemand eine Idee wie man sowas umsetzen kann? 

Viiiiiieeelen Dank

Jens

NTFS Vererbung aktivieren

$
0
0

Hallo,
ich würde gerne auf div. Unterordnern die Vererbung aktivieren.

Ist das über PS möglich? Wie würde das aussehen?
Möchte ungern jeden Ordner durchklicken.

Danke
Dennis

Hilfe mit Powershell Skript (Freien AD User finden)

$
0
0

Hallo zusammen,

ich arbeite derzeit an einem Skript das uns die Benutzererstellung vereinfachen soll. Bei uns werden Benutzer mit Buchstabe+fortlaufender Nummer erstellt z.B X4444. Ich weiß zwar schon wie ich die Ergebnisse ungefähr filtern muss:

$USER=Get-ADUser -Filter "SamAccountName -like 'X****'" |select -ExpandProperty SamAccountName | Where-Object {$_.SamAccountName -notlike "Azubi*" -and $_.SamAccountName -notlike "*_*" -and $_.SamAccountName -notlike "*-*" -and $_.SamAccountName.length -eq 5}

aber ich weiß nicht genau, wie ich jetzt dieses Ergebnis abgleiche und anschließend den freien Platz in eine Variable schreibe. Z.B bei X4555,X4557 wäre die X4556 frei und diese soll dann als Variable verfügbar sein.

Vielen Dank im Voraus für die Hilfe.


Farbe ändern in der Reiter Überschrift sowie Variable übergeben für den zweiten reiter

$
0
0

Hallo und guten Morgen,

 

  1. Ich versuche wenn das alle Felder ausgefühlt sind das die Überschrift in Grün hinterlegt wird, In dem Beispiel ist nur ein Feld vorhanden.
  2. Würde gern, wenn eine Eingabe erfolgt ist und ich dann auf dem zweiten Tab klicke (bzw. Öffne) das dann die Eingabe übernommen wird und im Feld ersichtlich ist, so dass man die Eingabe ggf. Anpassen kann.

 

Ist das beides möglich? Habe schon einiges versucht nur irgendwie bekomm ich das nicht hin :-(.

 

Hier ein Beispiel, vielleicht kann mir ja dabei jemand helfe, lieb Frag :-O.

[reflection.assembly]::loadwithpartialname("System.Windows.Forms") | Out-Null
[reflection.assembly]::loadwithpartialname("System.Drawing") | Out-Null



$form1 = New-Object System.Windows.Forms.Form
$statusBar1 = New-Object System.Windows.Forms.StatusBar
$tabControl1 = New-Object System.Windows.Forms.TabControl
$tabPage1 = New-Object System.Windows.Forms.TabPage
$comboBox1 = New-Object System.Windows.Forms.ComboBox
$tabPage2 = New-Object System.Windows.Forms.TabPage
$button1 = New-Object System.Windows.Forms.Button

$form1.Text = "Test"
$form1.Name = "form1"
$form1.DataBindings.DefaultDataSourceUpdateMode = 0
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 284
$System_Drawing_Size.Height = 262
$form1.ClientSize = $System_Drawing_Size

$tabControl1.TabIndex = 0
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 228
$System_Drawing_Size.Height = 162
$tabControl1.Size = $System_Drawing_Size
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 23
$System_Drawing_Point.Y = 35
$tabControl1.Location = $System_Drawing_Point
$tabControl1.DataBindings.DefaultDataSourceUpdateMode = 0
$tabControl1.Name = "tabControl1"
$tabControl1.SelectedIndex = 0
$form1.Controls.Add($tabControl1)

$tabPage1.TabIndex = 0
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 220
$System_Drawing_Size.Height = 136
$tabPage1.Size = $System_Drawing_Size
$tabPage1.Text = "Test TAB 1"
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 4
$System_Drawing_Point.Y = 22
$tabPage1.Location = $System_Drawing_Point
$System_Windows_Forms_Padding = New-Object System.Windows.Forms.Padding
$System_Windows_Forms_Padding.All = 3
$System_Windows_Forms_Padding.Bottom = 3
$System_Windows_Forms_Padding.Left = 3
$System_Windows_Forms_Padding.Right = 3
$System_Windows_Forms_Padding.Top = 3
$tabPage1.Padding = $System_Windows_Forms_Padding
$tabPage1.Name = "tabPage1"
$tabPage1.DataBindings.DefaultDataSourceUpdateMode = 0
$tabControl1.Controls.Add($tabPage1)


		$Input1Label = New-Object System.Windows.Forms.Label
		$Input1Label.Location = New-Object System.Drawing.Size(10,40)
		$Input1Label.Size = New-Object System.Drawing.Size(80,20)
		$Input1Label.Text = "Eingabe 1"
		$tabPage1.Controls.Add($Input1Label)
		$Input1TextBox = New-Object System.Windows.Forms.TextBox
		$Input1TextBox.Location = New-Object System.Drawing.Size(10,60)
		$Input1TextBox.Size = New-Object System.Drawing.Size(80,20)
		$Input1TextBox.Text = ""
		$tabPage1.Controls.Add($Input1TextBox)

Function Variable {
	$global:Input1=$OdnerAnlegenButton.Text
}

Function Reset {
	$Input1 = ""
	$Input1TextBox.Text = ""
}

	$OKButton = New-Object System.Windows.Forms.Button
	$OKButton.Location = New-Object System.Drawing.Size(10,90)
	$OKButton.Size = New-Object System.Drawing.Size(50,23)
	$OKButton.Text = "OK"
	$tabPage1.Controls.Add($OKButton)
	$OKButton.Add_Click({Variable})

	$ResetButton = New-Object System.Windows.Forms.Button
	$ResetButton.Location = New-Object System.Drawing.Size(65,90)
	$ResetButton.Size = New-Object System.Drawing.Size(50,23)
	$ResetButton.Text = "Reset"
	$tabPage1.Controls.Add($ResetButton)
	$ResetButton.Add_Click({Reset})

	$CloseButton = New-Object System.Windows.Forms.Button
	$CloseButton.Location = New-Object System.Drawing.Size(120,90)
	$CloseButton.Size = New-Object System.Drawing.Size(50,23)
	$CloseButton.Text = "Close"
	$tabPage1.Controls.Add($CloseButton)
	$CloseButton.Add_Click({$Form1.Close();{return}})



$tabPage2.TabIndex = 1
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 220
$System_Drawing_Size.Height = 136
$tabPage2.Size = $System_Drawing_Size
$tabPage2.Text = "Test TAB 2"
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 4
$System_Drawing_Point.Y = 22
$tabPage2.Location = $System_Drawing_Point
$System_Windows_Forms_Padding = New-Object System.Windows.Forms.Padding
$System_Windows_Forms_Padding.All = 3
$System_Windows_Forms_Padding.Bottom = 3
$System_Windows_Forms_Padding.Left = 3
$System_Windows_Forms_Padding.Right = 3
$System_Windows_Forms_Padding.Top = 3
$tabPage2.Padding = $System_Windows_Forms_Padding
$tabPage2.Name = "tabPage2"
$tabPage2.DataBindings.DefaultDataSourceUpdateMode = 0
$tabControl1.Controls.Add($tabPage2)


		$Input2Label = New-Object System.Windows.Forms.Label
		$Input2Label.Location = New-Object System.Drawing.Size(10,40)
		$Input2Label.Size = New-Object System.Drawing.Size(200,20)
		$Input2Label.Text = "Eingabe 2 übernommen aus TAB 1"
		$tabPage2.Controls.Add($Input2Label)
		$Input2TextBox = New-Object System.Windows.Forms.TextBox
		$Input2TextBox.Location = New-Object System.Drawing.Size(10,60)
		$Input2TextBox.Size = New-Object System.Drawing.Size(200,20)
		$Input2TextBox.Text = ""
		$tabPage2.Controls.Add($Input2TextBox)

$form1.ShowDialog()| Out-Null

Gruss

Markus

Viewing all 2314 articles
Browse latest View live
<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>