Quantcast
Channel: Windows PowerShell forum
Viewing all 21975 articles
Browse latest View live

How to call a variable from a Button to another.

$
0
0

Hello Powershleess Guruuuusssss.

I have created the below PWS script  using PS Studio, and I am trying to use the variable "$SvcName" on my second button, but it is always empty. Is there any way to call that variable to a second button'.

$buttonGetServices_Click={
#TODO: Place custom script here
$Services = Invoke-Command -ComputerName $boxComputerName.SelectedItem -Credential $Global:farmCredential_ -Scriptblock {Get-Service |Select-Object -Property Name, Status, DisplayName}
Load-DataGridView -DataGridView $datagridview1 -Item $Services
$SvcName = $datagridview1.SelectedCells[0].Value  --->> this is the variable that I need
}
$BTStartService_Click={
#TODO: Place custom script here
Invoke-Command -ComputerName $boxComputerName.SelectedItem -Credential $Global:farmCredential_ -Scriptblock {
Start-Service $SvcName ------> here the variable is nule.
$StatusSvr = Get-Service -Name $SvcName

}

$richtextbox2.Text = $StatusSvr | Out-String
}


Connect to Office 365 fails

$
0
0

Hello,

I'm trying to automate the connection to office 365 in an automation script.  The below code works fine if imbedded directly in the script but does not work fine if called from a PowerShell module function (Some commands are missing.  i.e. Get-Mailbox).  Am I missing something?  Any help would be appreciated...  thanks.

$O365CredPath = $env:O365CredPath + '\O365Credential.bin'
$MsolAdminUser = 'username@domain.com'

$O365key = (0,0,0)

Import-Module -Name MSOnline

$O365pwd = Get-Content $O365CredPath | ConvertTo-SecureString -Key $O365key
$O365cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $MsolAdminUser, $O365pwd

$O365Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell -Credential $O365cred -Authentication Basic -AllowRedirection -Name 'Office 365 Session'

Import-PSSession -Session $O365Session
Connect-MsolService -Credential $O365cred


Create multiple folders containing URL links from CSV

$
0
0

I'm way out of my depth here and hoping that someone will be kind enough to save me some days of work.

I have a CSV with student name and number.

I want to create a separate folder for each student

Each folder will contain a set of URLs wich incorporate the student number.

For instance: the CSV entry John Doe, 123456

should create a folder titled John Doe

containing the URL links

https://whatever/123456/details

https://whatever/123456/detentions




powershell question to AD

$
0
0

Hi all,

I have some problem to make a sript to find some information from AD.
I have server farm a and I need from all servers find if there is a specific security group (srv_admins)  and if so, then if these group is in local admins group.

I try write script like this, but I dont now the next step
This is what I try

$srvlist = Get-content C:\temp\srvlist.txt

Foreach ($server in $srvlist) {

get-adgroup -Filter 'GroupCategory -eq "Security"

}

Is this good way.

Can you help me

Thanks

Invoke-WebRequest

$
0
0

I am trying to use Invoke-WebRequest as below. First, I try $ie1 and get the right web page I need. Then I try $ie2 but it does not. It gets the home page instead. Where I did wrong? Thanks.

$url = "http://stockcharts.com/search/index.html?q=NYSE&section=symbol" + `
       "&start=320&showtasc=false&showstore=false&showmm=false&showpcl=" + `
       "false&showvideos=false&author=&blog=&startdate=&enddate="
$ie1 = New-Object -COM "InternetExplorer.Application"
$ie1.navigate($url)
$ie1.visible = $true
$ie2 = Invoke-WebRequest $url
$ie2

Unusual If/else behaviour

$
0
0

I've created a very basic powershell script as a POC to get the current machine name. Based on the contents of the machine name either change the 1 to a 2 or vice versa.

If ($env:COMPUTERNAME -Contains "1")
{
$RDSGateway = ($env:COMPUTERNAME).Replace("1","2")
Write-Host $RDSGateway
}
else
{
$RDSGateway = ($env:computername).Replace("2","1")
Write-Host $RDSGateway
}

Only the else statement is entered regardless of the machine name.  Example machine names are

servername1 - I would think the if statement would be run here

servername2 - I would think the else statement would run here

Am I missing something really simple?

Checking for the existence of multiple folders simultaneously. Is there a more elegant way?

$
0
0

Hello Gurus,

I am writing a simple script, nothing special, just creating some log files and populating them with data from a custom application. Within my script a do a simple check for the existence of the log folder and if it doesn't exist I create it:

if (Test-Path "$LogFolder" -PathType Container)
            {
                    continue

                }
else
            {
                    New-Item -ItemType Directory -Path "$LogFolder"
                }

simple and works great. Then I have to check for the existence of two more folders, let's call them $Log1Folder, %Log2Folder...

Currently I do the check like in the example, but for all three folder:

if (Test-Path $LogFolder -PathType Container)
            {
                    continue

                }
        else
            {
                    New-Item -ItemType Directory -Path $LogFolder
                }

if (Test-Path $Log1Folder -PathType Container)
            {
                    continue

                }
        else
            {
                    New-Item -ItemType Directory -Path $Log1Folder
                }

if (Test-Path $Log2Folder -PathType Container)
            {
                    continue

                }
        else
            {
                    New-Item -ItemType Directory -Path $Log2Folder
                }

This works great, but I have always wondered if there is a more elegant way to check if multiple folders exists?

Is the following approach also fine:

$array = @($LogFolder, $Log1Folder, $Log2Folder)
foreach ($Path in $array) {
	if (!(Test-Path $Path -PathType Container))
        {
           New-Item -ItemType Directory -Path $Path
           }

}

Any other possibilities here?

Thanks. Tony



Powershell Workflow - Inlinescript and local function

$
0
0

Hi guys,

I would like to know if there is a way to call a function defined into Powershell Workflow from inlinescript. One example:

function func1 {
  Write-Output "Boom!"
}
workflow Hey
{
    sequence{

       InlineScript {
       try{
             func1
        }catch{
            write-output $Error[0].Exception
        }
      }

    }
}

The term 'func1' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the
path is correct and try again.


Writting to the machine.config file in powershell

$
0
0

I have been working on this script for quite some time, but had to put it to rest because I could not spend time on it. I can focus more on it now, and it seems to not work quite right, hopefully I can get some help.

This script is intended to first delete a section in the machine.config, the ,ProcessModel autoConfig="true"/> line

$node = $machineConfig.SelectNodes("/configuration/system.web")
$node.RemoveChild(($node.SelectSingleNode("processModel")))|Out-Null

Then it write back to the processModel the following

<system.web><processModel maxWorkerThreads="370" maxIoThreads="370" minWorkerThreads="50" minIoThreads="50"/><httpRuntime minFreeThreads="90" minLocalRequestFreeThreads="80"/>

Then here it gets a little tricky, I want it to then multiple the 90 and the 80, by the number of CPU Cores on the virtual machine. For example, if the machine had 4 cores it would read

<system.web><processModel maxWorkerThreads="370" maxIoThreads="370" minWorkerThreads="50" minIoThreads="50"/><httpRuntime minFreeThreads="360" minLocalRequestFreeThreads="320"/>

After that, towards the bottom of the file, I want it to add the following line

<system.net><connectionManagement><add address ="*" maxconnection ="200"/></connectionManagement></system.net>

Like on the previous one, I need the 200 to be multiplied by the number of CPU cores of the virtual machine. So for example, if the machine had 4 cores, it would read

<system.net><connectionManagement><add address ="*" maxconnection ="800"/></connectionManagement></system.net>

What the code i have does is that it writes the processModel section out, but it does not multiply for me, seems to also put the lines whereever it wants and it does not seem to add the maxconnection number, just leaves a space. Here is the code i have so far

$numberOfCores =Get-WmiObject-class win32_processor numberOfCores |Select-Object-ExpandProperty numberOfCores

$path ="c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config"[xml]$machineConfig =Get-Content $path $node = $machineConfig.SelectNodes("/configuration/system.web") $node.RemoveChild(($node.SelectSingleNode("processModel")))|Out-Null $processModelxml = $machineConfig.CreateElement("processModel") $processModelxml.setAttribute("maxWorkerThreads",370) $processModelxml.setAttribute("maxWorkerThreads",370) $processModelxml.setAttribute("maxIoThreads",370) $processModelxml.setAttribute("minWorkerThreads",50) $processModelxml.setAttribute("minIoThreads",50) $node.AppendChild($processModelxml)|Out-Null $httpRuntimexml = $machineConfig.CreateElement("httpRuntime") $httpRuntimexml.setAttribute("minFreeThreads",90* $numberOfCores) $httpRuntimexml.setAttribute("minLocalRequestFreeThreads",80* $numberOfCores) $node.AppendChild($httpRuntimexml)|Out-Null[xml]$systemnetxml =@"<system.net><connectionManagement><add address = "*" maxconnection = "$(200* $numberOfCores)" /></connectionManagement></system.net>"@ $machineConfig.configuration.AppendChild($machineConfig.ImportNode($systemnetxml."system.net",$true))|Out-Null $machineConfig.Save("c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config")

I have been struggling with this for almost a year, I had to get off of it, and coming back to it I find that it does not work.

It has the following error

enter image description here

Also, it distorts the original format of the machine.config file. Machine.config is in Windows Server 2012 R2 file system, so if you wanted to test the file on your own machine, just make sure you make a backup of that file first. I would hate for you to mess up your own machine trying to help me out.

Please help and Thank you in advance.

PS - see if SCCM is pending a reboot

$
0
0

Does anyone know how to poll a remote system to see if SCCM client is pending a reboot?  I can't seem to figure it out.  I can get the module imported for sccm but that's about as far as I've gotten.

Here is the script I'm working with.

#Get the current module path
$p = [Environment]::GetEnvironmentVariable("PSModulePath")

#Add to the existing path the additional path to our module
$p += ";C:\Program Files\System Center 2012\Operations Manager\Powershell\"

#Set the new path to the PSModulePath variable
[Environment]::SetEnvironmentVariable("PSModulePath", $p)
Import-Module OperationsManager

$computername = "Server";
$Hive = [Microsoft.Win32.RegistryHive]"LocalMachine";
$regKey = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey($Hive, $computername);
$regvalue = "PendingFileRenameOperations";


$trigger = $false
Do
{
	$ref = $regKey.OpenSubKey("SYSTEM\CurrentControlSet\Control\Session Manager");
	$fullreg = $ref.GetValue($regvalue);
	If (!$fullreg)
	{

		$host.ui.RawUI.ForegroundColor = "Green"
		Write-Output "No File Rename Reboot Pending Value on $computername"
		$host.UI.RawUI.ForegroundColor = 'White'
		$trigger = $true
	}


	Else
	{

		$host.ui.RawUI.ForegroundColor = "Red"
		Write-Output "$computername is still pending a reboot! Rebooting..."
		$host.UI.RawUI.ForegroundColor = 'White'
		restart-computer -ComputerName $computername -Force
		Start-Sleep -Seconds 600
	}
}
Until ($trigger)

Thanks

Joe

Creating AD user and enabling mailbox from IIS script

$
0
0

We have a php script running on Linux enabling mid-level admins to create new AD accounts.  This then emails the Exchange admins with the commands required to be run manually to enable the mailbox for the new user, etc.

To avoid this manual step, I thought we should simply move this to Windows and IIS.  I have created a PowerShell script that gets called from a php script to perform all AD operations.  It opens a session to create the AD account, which works. But, I am having trouble enabling the mailbox since the session is denied:

  $AdminName = "admin"

  $AdminPassword = "password"

  $AdminPasswordAsSecureString = ConvertTo-SecureString -Force -AsPlainText -String "$AdminPassword"

  $credential = New-Object System.Management.Automation.PsCredential("DOMAIN\$AdminName",$AdminPasswordAsSecureString)

  $ExchAccSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "https://exchange2013.tld.pri/PowerShell/" -Credential $credential -Authentication Basic -AllowRedirection 

  ...and the error:

  New-PSSession : [exchange2013.tld.pri] Connecting to remote server exchange2013.tld.pri failed with the following error message : Access is denied. For more information, see the about_Remote_Troubleshooting Help topic.

Basic auth is enabled for this particular Exchange server for Powershell.  I have tried with http and https.  It appears that the commands work when entered into the ISE shell, even running from a Windows 7 desktop as a non-admin user.  After running Import-Session -Session $ExchAccSession, I even get the Enable-Mailbox command, which is only available to the admin account.

I don't understand why creating an AD account is so much easier by comparison.  The account I am using is an Exchange Org Admin and is also in the "Remote Management Users" group.  Again, the AD account creation works.  Of course there are other ways to accomplish all of this...

SSH connections

$
0
0

Wich is the best way in powershell ?

What is the method supported by microsoft?

Powershell - Disk Space

$
0
0

Can anyone help me with   Powershell  Script - Total / Used / Free Disk Space  for multiple machines.

Thanks

Ranjith.

Remove-Item CMDLET

$
0
0

Hello all, this is my first posting in the community. I am having an issue with a simple power shell script I am writing. Below is the script.

get-process | ? { $_.mainwindowtitle -ne "" -and $_.processname -ne "powershell" } | stop-process

$name = $env:UserName

remove-item C:\users\$name\appdata\local\Temp\* -force -recurse

This script does close all open windows which I want, it however doesn't clear the temp directory. However if you run lines 2 and 3 of the code separately in a new powershell window, the code works. So why does it not when put into a script? I'm sure there is something extremely simple that I am missing! Any help or suggestions are appreciated!

 

Powershell - Export permissions for folder and share?

$
0
0

I need to export all the share and folder level permission on one of my windows 2008 file servers. I have tried the command below and it give me all the folder and file level permissions.

Get-ChildItem "X:\Share" -recurse | Get-Acl | export-csv c:\djk\share_folder_permission.csv

I dont want file level permissions, only share and folder level.  Can you help?

 

 


How to detect if a change has been made in a file, to skip to the next section

$
0
0

With some help, I have been able to write the below Powershell script.  It works great, but I need to prepair for the what if's.  What if this script is started again?  Currently, if this script is run again, after it has already been run, it will add another of these lines, redundant and will possibly cause an issue.

How can I make it so that if when this portion of the script is run, it detects a change in the machine.config file then goes to the next instance.  If the next instance has a change, then after detecting all the instances, it has seen they all have changes, it skips them and just runs to the next line, which has nothing to do with updating the machine.config?

I am very new to powershell, so I am not sure what to do here.

Here is my script so far

"Updating Framework64 - v4.0.30319"
$numberOfCores = Get-WmiObject -class win32_processor | Measure-Object numberOfCores -Sum | Select-Object -ExpandProperty sum
$path = "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config"
[xml]$machineConfig = Get-Content $path
$node = $machineConfig.SelectNodes("/configuration/system.web") 
$node.RemoveChild(($node.SelectSingleNode("processModel"))) | Out-Null
$processModelxml = $machineConfig.CreateElement("processModel")
$processModelxml.setAttribute("maxWorkerThreads",370)
$processModelxml.setAttribute("maxWorkerThreads",370)
$processModelxml.setAttribute("maxIoThreads",370)
$processModelxml.setAttribute("minWorkerThreads",50)
$processModelxml.setAttribute("minIoThreads",50)
$node.AppendChild($processModelxml) | Out-Null
$httpRuntimexml = $machineConfig.CreateElement("httpRuntime")
$httpRuntimexml.setAttribute("minFreeThreads",90 * $numberOfCores)
$httpRuntimexml.setAttribute("minLocalRequestFreeThreads",80 * $numberOfCores)
$node.AppendChild($httpRuntimexml) | Out-Null
[xml]$systemnetxml = @"
  <system.net>
    <connectionManagement>
      <add address = "*" maxconnection = "$(200 * $numberOfCores)" />
    </connectionManagement>
  </system.net>
"@
$machineConfig.configuration.AppendChild($machineConfig.ImportNode($systemnetxml."system.net",$true)) | Out-Null
$machineConfig.Save("C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config")

"Updating Framework64 - v2.0.50727"

$numberOfCores = Get-WmiObject -class win32_processor | Measure-Object numberOfCores -Sum | Select-Object -ExpandProperty sum
$path = "C:\Windows\Microsoft.NET\Framework64\v2.0.50727\Config\machine.config"
[xml]$machineConfig = Get-Content $path
$node = $machineConfig.SelectNodes("/configuration/system.web") 
$node.RemoveChild(($node.SelectSingleNode("processModel"))) | Out-Null
$processModelxml = $machineConfig.CreateElement("processModel")
$processModelxml.setAttribute("maxWorkerThreads",370)
$processModelxml.setAttribute("maxWorkerThreads",370)
$processModelxml.setAttribute("maxIoThreads",370)
$processModelxml.setAttribute("minWorkerThreads",50)
$processModelxml.setAttribute("minIoThreads",50)
$node.AppendChild($processModelxml) | Out-Null
$httpRuntimexml = $machineConfig.CreateElement("httpRuntime")
$httpRuntimexml.setAttribute("minFreeThreads",90 * $numberOfCores)
$httpRuntimexml.setAttribute("minLocalRequestFreeThreads",80 * $numberOfCores)
$node.AppendChild($httpRuntimexml) | Out-Null
[xml]$systemnetxml = @"
  <system.net>
    <connectionManagement>
      <add address = "*" maxconnection = "$(200 * $numberOfCores)" />
    </connectionManagement>
  </system.net>
"@
$machineConfig.configuration.AppendChild($machineConfig.ImportNode($systemnetxml."system.net",$true)) | Out-Null
$machineConfig.Save("C:\Windows\Microsoft.NET\Framework64\v2.0.50727\Config\machine.config")

Format a big log file

$
0
0

i, i have a big problem, my nas Synology write synobackup.log, it is an unformatted file and i want to do a good format in order to read the contents clearly.

Below I tried to manually format it properly, my goal is to do this automatically with powershell and export it to html.
There are 4 main columns Type - Date - User - Event

Powershell
info2016/10/0901:00:03SYSTEM:[Local to share][06-SABATO-HOTPLUG]Backuptaskstarted.err2016/10/0902:23:27SYSTEM:[Local to share][06-SABATO-HOTPLUG]Exceptionoccuredwhilebackingupdata.(Failedtogetstatusofthefile.)[/volume1/06-SABATO]err2016/10/0902:26:23SYSTEM:[Local to share][06-SABATO-HOTPLUG]Exceptionoccuredwhilebackingupdata.(Failedtogetstatusofthefile.)[/volume1/06-SABATO]err2016/10/0902:59:03SYSTEM:[Local to share][06-SABATO-HOTPLUG]Exceptionoccuredwhilebackingupdata.(Failedtogetstatusofthefile.)[/volume1/06-SABATO]info2016/10/0902:59:10SYSTEM:[Local to share][06-SABATO-HOTPLUG]Backuptaskfinishedsuccessfully.info2016/10/0802:35:39SYSTEM:[Local to share][05-VENERDI-RDX]Backuptaskstarted.info2016/10/0808:03:07SYSTEM:[Local to share][05-VENERDI-RDX]Backuptaskfinishedsuccessfully.


Here is the report inside the nas:

Powershell script failed thru Task Scheduler

$
0
0

Hi,

I have created a bat file with below contents.

powershell.exe C:\installs\x.ps1

When I run the bat file manually(right click and Run as administrators), my jobs executes. If i just double click on the bat file, I get Access is Denied error. My user is admin user only.

I scheduled the same batch to run thru Task Scheduler with a user which has admin privileges, but the task failed as soon as it kicked off. Error:

action "C:\Windows\SYSTEM32\cmd.exe" with return code 1.

I have set it to Run with highest privileges.

Is this an issue with 32 bit and 64 bit? Please help me solve this.




Need to transform System.Object[] to sytem.string

$
0
0

Hello,

I have this local account query that creates the right reports and writes the right values.

Unfortunately I am running on a System.object[] to system.string when using the send-mailmessage -body $obj

I been trying different thing, no luck so far. Thanks

Param
(
	[Parameter(Position=0,Mandatory=$false)]
	[ValidateNotNullorEmpty()]
	[Alias('cn')][String[]]$ComputerName=$Env:COMPUTERNAME,
	[Parameter(Position=1,Mandatory=$false)]
	[Alias('un')][String[]]$AccountName,
	[Parameter(Position=2,Mandatory=$false)]
	[Alias('cred')][System.Management.Automation.PsCredential]$Credential
)

$Obj = @()

# Query Active Directory for computers running a Server operating system
$Computername = Get-ADComputer -Filter {name -like "*cog-host*"} | Select -ExpandProperty name


Foreach($Computer in $ComputerName)
{
	If($Credential)
	{
		$AllLocalAccounts = Get-WmiObject -Class Win32_UserAccount -Namespace "root\cimv2" `
		-Filter "LocalAccount='$True'" -ComputerName $Computer -Credential $Credential -ErrorAction Stop
	}
	else
	{
		$AllLocalAccounts = Get-WmiObject -Class Win32_UserAccount -Namespace "root\cimv2" `
		-Filter "LocalAccount='$True'" -ComputerName $Computer -ErrorAction Stop
	}

	Foreach($LocalAccount in $AllLocalAccounts)
	{
		$Object = New-Object -TypeName PSObject



		$Object|Add-Member -MemberType NoteProperty -Name "Name" -Value $LocalAccount.Name

        $Object|Add-Member -MemberType NoteProperty -Name "Full Name" -Value $LocalAccount.FullName

        $Object|Add-Member -MemberType NoteProperty -Name "Caption" -Value $LocalAccount.Caption
      	$Object|Add-Member -MemberType NoteProperty -Name "Disabled" -Value $LocalAccount.Disabled
      	$Object|Add-Member -MemberType NoteProperty -Name "Status" -Value $LocalAccount.Status
      	$Object|Add-Member -MemberType NoteProperty -Name "LockOut" -Value $LocalAccount.LockOut
		$Object|Add-Member -MemberType NoteProperty -Name "Password Changeable" -Value $LocalAccount.PasswordChangeable
		$Object|Add-Member -MemberType NoteProperty -Name "Password Expires" -Value $LocalAccount.PasswordExpires
		$Object|Add-Member -MemberType NoteProperty -Name "Password Required" -Value $LocalAccount.PasswordRequired
		$Object|Add-Member -MemberType NoteProperty -Name "SID" -Value $LocalAccount.SID
		$Object|Add-Member -MemberType NoteProperty -Name "SID Type" -Value $LocalAccount.SIDType
		$Object|Add-Member -MemberType NoteProperty -Name "Account Type" -Value $LocalAccount.AccountType
		$Object|Add-Member -MemberType NoteProperty -Name "Domain" -Value $LocalAccount.Domain
		$Object|Add-Member -MemberType NoteProperty -Name "Description" -Value $LocalAccount.Description


        $Obj+=$Object
	}

	If($AccountName)
	{
		Foreach($Account in $AccountName)
		{
			$Obj|Where-Object{$_.Name -like "$Account"}
		}
	}
	else
	{
		$Obj
	}
}

#region Variables and Arguments
$users = "noc@test.com" # List of users to email your report to (separate by comma)
$fromemail = "noc@test.com"
$server = "mail.test.com" #enter your own SMTP server DNS name / IP address here


# Save the report out to a file in the current path
$LogTime = Get-Date -Format "MM-dd-yyyy_hh-mm-ss"
$obj | Out-File ((Get-Location).Path + "\Local User Accounts COG-DATACENTER " + $LogTime + ".txt") | Out-String



# Email our report out
send-mailmessage -from $fromemail -to $users -subject "Local Accounts COG-DATACENTER" -body $obj -priority Normal -smtpServer $server


#Clean up variable
Remove-Variable * -ErrorAction SilentlyContinue



Syntax Question

$
0
0

I am struggling with syntax.

I need to run all of this on 1 line yet it does not work.  I've looked at Get-Help ..... and some Google searches but I've yet to get this working.

$prefix is a Read-Host that will hold a value like WS* for all machines that begin with a WS.

$computers = Get-ADComputer -Filter {Enabled -eq 'true' -and SamAccountName -like $Prefix}
-SearchBase "ou=All_workstations,dc=OurCompany,dc=org").Name

$computers


mqh7

Viewing all 21975 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>