locked
Remove Characters from Variable RRS feed

  • Question

  • Good day, I have a couple of conundrums with the use of variables from third-party cmdlets.

    I"m trying to use Equallogic Powershell addin to build a variable that can be passed to Microsoft iSCSI cmdlet.

    To build the initial variable I use: $iscsitarget = Get-EqlVolume -VolumeName TZ | select iSCSITargetName

    The result is:

    iSCSITargetName
    ---------------
    iqn.2001-05.com.equallogic:0-8a0906-e4819c90c-a5347fe0a2d533b3-tz

    The variable in it's raw form cannot be used by the iSCSI cmdlet, due to unacceptable characters. When I pipe this over to an environment variable, this is the result:

    iSCSITarget                    @{iSCSITargetName=iqn.2001-05.com.equallogic:0-8a0906-e4819c90c-a5347fe0a2d533b3-tz}

    The @, {, } are causing this problem, so I tried exporting the initial variable as a string, as such:

    $iscsitarget2 = $iscsitarget | Out-String

    It seems if I remove 2 characters from the beginning the results are not what I need. Removing more characters and the variable string just becomes "...", rendering the variable useless.

    So my question is can I remove characters from a variable that isn't a string and if so what is the command? Or, should I be doing things a different way? I am not as proficient in powershell, what you see is about the extent of my skills.

    What's funny is when I use this variable with the Equallogic powershell addin it says there are illegal characters as well. It seem this was created more for reporting than scripting.

    I hope to hear back from someone. At this point my option is to throw in the towel or switch over to PERL, which I know nothing about.

    Thank you!!

    Monday, April 7, 2014 11:19 PM

Answers

  • Try this:

    $iscsitarget = Get-EqlVolume -VolumeName TZ | select -ExpandProperty iSCSITargetName

    • Proposed as answer by Mike Laughlin Monday, April 7, 2014 11:59 PM
    • Marked as answer by TBoneJones Tuesday, April 8, 2014 5:08 PM
    Monday, April 7, 2014 11:24 PM

All replies

  • Try this:

    $iscsitarget = Get-EqlVolume -VolumeName TZ | select -ExpandProperty iSCSITargetName

    • Proposed as answer by Mike Laughlin Monday, April 7, 2014 11:59 PM
    • Marked as answer by TBoneJones Tuesday, April 8, 2014 5:08 PM
    Monday, April 7, 2014 11:24 PM
  • Thank you very much, that worked exactly as I required.
    Tuesday, April 8, 2014 5:09 PM
  • I'm very glad to hear that this worked for you!
    Tuesday, April 8, 2014 6:26 PM