RE: [PHP] PHP and Powershell
| From: | Alan Loos | Date: | Fri, 19 Jul 2013 14:57:15 +0000 |
| Subject: | RE: [PHP] PHP and Powershell | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-321651@lists.php.net to get a copy of this message | ||
Thank you for your response Serge!
The computer name is for the invoke-command, ComputerName has to be specified to tell the
computer where the command is to be routed. Since I want this to run locally over PHP I figured that
it would be a good way to avoid running a script as I have read online that when it can be avoided
it's a good practice (I also couldn't get this to work properly... :) But that is a side
note). The piece that outputs the extra RunSpaceID and the PSComputerName is the $_.Status portion
of everything.
If someone knows how to cut it out that would be fine but really I just need to pull the Target Name
and the Value from result. For the attached example it would be $IQNTarget =
iqn.2013-04.com.widget:Target1 and $Value = NotConnected (Which there are two options for this which
is Connected or NotConnected).
To use Select Object here would I do Select-Object $Value?
Alan Loos | Flash Anywhere Project
T 925-640-2977 | alan.loos@genco.com<mailto:alan.loos@genco.com>
CONFIDENTIALITY NOTICE: This e-mail and the attachment(s) hereto (if any) contain confidential
information that is privileged and intended only for the addressee(s) hereof. If you are not an
intended recipient, you are hereby notified that any disclosure, copying, distribution or use of
this e-mail and/or the accompanying attachment(s) is strictly prohibited. If you have received this
e-mail in error, please immediately notify the sender by return e-mail.
From: Serge Fonville [mailto:serge.fonville@gmail.com]
Sent: Friday, July 19, 2013 3:05 AM
To: Alan Loos
Cc: php-general@lists.php.net
Subject: Re: [PHP] PHP and Powershell
Hi,
Although this is more powershell related than PHP...
When Powershell returns an object, you can pipe the output through Select-Object to get only certain
object properties.
To better answer your question:
First, why do you specify ComputerName as 127.0.0.1 if the credential is already specified?
Also, perhaps it is easier to create a .ps1 file that you run, especially for readability.
HTH
Wh
Kind regards/met vriendelijke groet,
Serge Fonville
http://www.sergefonville.nl
Convince Microsoft!
They need to add TRUNCATE PARTITION in SQL Server
https://connect.microsoft.com/SQLServer/feedback/details/417926/truncate-partition-of-partitioned-table
2013/7/18 Alan Loos <Alan.Loos@genco.com<mailto:Alan.Loos@genco.com>>
Good morning everyone,
First time posting in here, although I've been listening in for a few weeks now.
So this one has got me stumped, I am fairly new to PHP but I cannot seem to Google through this one.
I cannot figure out how to 'exclude' PSComputerName and RunspaceId, which is ultimately
what I'm struggling with. Please see below for script snips and explanations.
Also if there are any best practices you would recommend I'm open to it being that I am fairly
new and self-taught to PHP scripting.
I have a bit of code I've put together (as ugly as it is) as follows in line:
<?php
###############
## Variables ##
###############
$TargetName = "Target1";
$login = "\$cred = New-Object System.Management.Automation.PSCredential -ArgumentList
@('administrator@widget.com<mailto:administrator@widget.com>',(ConvertTo-SecureString
-String 'MyPassword' -AsPlainText -Force))";
$command = "Invoke-Command -computername 127.0.0.1 -credential \$cred -scriptblock {&
Get-IscsiServerTarget -TargetName " . $TargetName . " | % { \$_.TargetIqn, \$_.Status}}
-SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck)";
$psCMD = "powershell -ExecutionPolicy Unrestricted -command \"$login; $command\"
<NUL";
########################################
## Variable Checking (For Debug Mode) ##
########################################
#echo "\$psCMD = $psCMD";
################
## Run Script ##
################
exec($psCMD,$out);
############
## Output ##
############
echo ('<pre>');
print_r($out);
echo ('</pre>');
###################
## End Of Script ##
###################
echo "End Of Scene";
?>
The issue I have is that it feeds back:
Array
(
[0] => iqn.2013-04.com.widget:Target1
[1] =>
[2] => PSComputerName RunspaceId Value
[3] => -------------- ---------- -----
[4] => 127.0.0.1 52fb8b1b-8d8b-4eec-9419... NotConnected
[5] =>
[6] =>
)
End Of Scene
What I should see so I can then turn it into variables is what I run when I run the command straight
through the local Powershell command prompt which would return:
PS C:\Users\administrator.WIDGET.000> Get-IscsiServerTarget | % { $_.TargetIqn, $_.Status}
iqn.2013-04.com.widget:Target1
NotConnected
iqn.2013-04.com.widget:Target2
NotConnected
iqn.2013-04.com.widget:Target3
NotConnected
iqn.2013-04.com.widget:Target4
Connected
iqn.2013-04.com.widget:Target5
NotConnected
iqn.2013-04.com.widget:Target6
NotConnected
I cannot figure out how to 'exclude' PSComputerName and RunspaceId
Sorry in advance for the wordy explanation.
Cheers!
Alan
Please make note of my new email address: Alan.Loos@genco.com<mailto:Alan.Loos@genco.com>.
CONFIDENTIALITY NOTICE: This e-mail and the attachment(s) hereto (if any) contain confidential
information that is privileged and intended only for the addressee(s) hereof. If you are not an
intended recipient, you are hereby notified that any disclosure, copying, distribution or use of
this e-mail and/or the accompanying attachment(s) is strictly prohibited. If you have received this
e-mail in error, please immediately notify the sender by return e-mail.