limit to powershell param cmdlet

Hi all

Below is my param setting, another script creates a string with all the services to start, but

I get this strange errors based

param(
    [string]$status     = "both",
    [string]$set          = "list",
    [string]$server     = "vmdev01t13",
    [string]$remoteuser = "bptest\sa_deploy",
    [string]$remotepw   = "XXXXXXXX",
    [string]$services_start   = "kms-server nps-server ams-server ats2-cms-server ats2-server ats-cms-server ats-server"
    + " bos-cms-server bos-server bpactivate-server bpayadmin-server bpedit-server bpmerchant-server"
    + " bpmobile-server bpmypage-server bporder-server bporgadmin-server bporg-server bpotp-server"
    + " bppartner-server bpreg-server bpseal-server bpwebstore-cms-server cms-client-cms-server cps-cms-server"
    + " crlp-server hds-cms-server hds-server LanmanServer ldap-server lts2-cms-server lts-cms-server"
    + " lts-server mads-cms-server mas2-server mas-server mips-cms-server mps-cms-server mps-server"
    + " msiserver pts-cms-server pts-server role-server sts-cms-server tas-cms-server whois-test-server"
    + " wips-cms-server xmobile-server",
    [string]$services_stop   = "ams-server ats2-cms-server ats2-server ats-cms-server ats-server"
    + " bos-cms-server bos-server bpactivate-server bpayadmin-server bpedit-server bpmerchant-server"
    + " bpmobile-server bpmypage-server bporder-server bporgadmin-server bporg-server bpotp-server"
    + " bppartner-server bpreg-server bpseal-server bpwebstore-cms-server cms-client-cms-server cps-cms-server"
    + " crlp-server hds-cms-server hds-server LanmanServer ldap-server lts2-cms-server lts-cms-server"
    + " lts-server mads-cms-server mas2-server mas-server mips-cms-server mps-cms-server mps-server"
    + " msiserver pts-cms-server pts-server role-server sts-cms-server tas-cms-server whois-test-server"
    + " wips-cms-server xmobile-server nps-server kms-server",
    [switch]$help
);

This error I get:

Fails at the first line, also the last line of $services_start complains.

If I use shorter strings there are no issues all is fine.

PS C:\dist\win7> .\service.ps1
At C:\dist\win7\service.ps1:9 char:121
+ ... ver ats-server"
+                    ~
Missing ')' in function parameter list.
At C:\dist\win7\service.ps1:26 char:1
+ )
+ ~

Thanks

Morten Bjoernsvik, Oslo, Norway

August 24th, 2015 8:06am

Hi Morten,

you shouldn't go multiline in a default value of a parameter. If another function creates the list, either store it in file or in a global variable, then use the variable as input.

Examples:

# With variable
param(
    [string]$status     = "both",
    [string]$set          = "list",
    [string]$server     = "vmdev01t13",
    [string]$remoteuser = "bptest\sa_deploy",
    [string]$remotepw   = "XXXXXXXX",
    [string]$services_start   = $global:ServiceList,
    [switch]$help
);

# With File:
param(
    [string]$status     = "both",
    [string]$set          = "list",
    [string]$server     = "vmdev01t13",
    [string]$remoteuser = "bptest\sa_deploy",
    [string]$remotepw   = "XXXXXXXX",
    [string]$services_start   = (Get-Content "C:\Temp\Services.txt" -ReadCount 0),
    [switch]$help
);

Cheers,
Fred

Free Windows Admin Tool Kit Click here and download it now
August 24th, 2015 8:17am

You cannot concatenate a string across line breaks like that.

Example:

#this fails
[string]$test='hello'

    + 'world'

# this works
[string]$test='hello'+
            'world'

As Fred has noted what you are trying to do does not make much technical sense.

August 24th, 2015 10:11am

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics