小编Mat*_*sen的帖子

使用PHP中的openssl_pkcs12_export导出链

是否可以使用PHP 将证书和私钥与证书链(根证书和/或中间证)一起导出到.pfx openssl_pkcs12_export()

更新:我已经看了php openssl扩展的源代码,发现它openssl_pkcs12_export()支持2个args而不是文档中的那些,friendly_nameextracerts.这是来自ext/openssl/openssl.c,查看1914-1920行(PHP-5.4.0):

1878 /* {{{ proto bool openssl_pkcs12_export(mixed x509, string &out, mixed priv_key, string pass[, array args])
1879    Creates and exports a PKCS12 to a var */
1880 PHP_FUNCTION(openssl_pkcs12_export)
1881 {
1882         X509 * cert = NULL;                                                                                                                                                
1883         BIO * bio_out;
1884         PKCS12 * p12 = NULL;
1885         zval * zcert = NULL, *zout = NULL, *zpkey, *args = NULL;
1886         EVP_PKEY *priv_key = NULL; …
Run Code Online (Sandbox Code Playgroud)

php c openssl pfx pkcs#12

5
推荐指数
1
解决办法
1657
查看次数

.NET Application Configuration用于存储电子邮件联系信息

我有一个简单的应用程序,可以向我们的一些内部用户发送状态电子邮件.

我使用一个简单的应用程序配置文件(App.config)来存储有关预期用户的电子邮件地址和名称信息.由于appSettings部分似乎只支持简单的键/值对,因此它目前看起来像这样:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="toName" value="Recipient Name" />
    <add key="toAddr" value="some@email.com" />
    <add key="toName2" value="Another Recipient Name" />
    <add key="toAddr2" value="another@email.com" />
    <add key="ccName" value="An Archive"/>
    <add key="ccAddr" value="copies@email.com"/>
    <add key="ccName2" value="Another Archive"/>
    <add key="ccAddr2" value="morecopies@email.com"/>
  </appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)

然后我在代码中单独添加每个收件人.

目前,这意味着每次添加或删除收件人时,我还需要重写代码以处理新收件人并重建和重新部署应用程序

我希望能够存储自定义配置条目,如下所示:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <recipients>
    <recipient recType="to" recAddr="some@email.com" recName="Recipient Name" />
    <recipient recType="to" recAddr="another@email.com" recName="Another Recipient Name" />
    <recipient recType="cc" recAddr="copies@email.com" recName="An Archive"/>
    <recipient recType="cc" recAddr="morecopies@email.com" recName="Another Archive"/>
  </recipients>
</configuration>
Run Code Online (Sandbox Code Playgroud)

所以我可以遍历它们:

MailMessage message …
Run Code Online (Sandbox Code Playgroud)

.net c#

5
推荐指数
1
解决办法
4337
查看次数

enter-pssession invoke-command,何时使用?

我正在编写一个脚本来停止和启动两个远程服务器中的服务.这是我的问题,

在我的脚本中,我做了new-pssession并使用invoke-command来停止和启动服务.

我需要使用enter-pssession吗?

更新: 这是我的脚本需要做的事情.

在server1上,我需要停止并启动两个服务.在server2上,我需要停止并启动一项服务.

# foreach for server 1 since I need to stop and start two services. created a session for server 1
foreach($service in $services){

    $session = New-PSSession -ComputerName $serverName -Credential $cred
    Invoke-Command -Session $session -ScriptBlock {param($service) Stop-Service -Name $service} -ArgumentList $service
    remove-pssession -session $session

}

# created a session for server 2. I need to stop and start just one service in server 2
$session = New-PSSession -ComputerName $serverName -Credential $cred
Invoke-Command -Session $session -ScriptBlock …
Run Code Online (Sandbox Code Playgroud)

powershell invoke-command

5
推荐指数
1
解决办法
2万
查看次数

Powershell 错误添加到数组

嗨,我正在尝试运行一个脚本,将网络中的用户放入一个数组中,以便将它与我将要获取的其他数据(例如通讯组)一起输出到 csv 文件。

我正在运行的代码脚本出现错误:

方法调用失败,因为 [System.Management.Automation.PSObject] 不包含名为“op_Addition”的方法。

该脚本是一个简单的 for 循环:

$ActiveDirectoryList=@() 
$UserDetails = get-aduser -filter {enabled -eq $true} -properties * | Select DisplayName,EmailAddress, SAMAccountName
$counter = 0
foreach($User in $UserDetails){

    $ActiveDirectoryList = New-Object PSObject
    $Users = get-aduser $User.SAMAccountName -properties * 
    if(!$Users.EmailAddress -eq ""){
        $counter++
        $ActiveDirectoryList | Add-Member -MemberType NoteProperty -Name "DisplayName" -Value $Users.DisplayName
        $ActiveDirectoryList | Add-Member -MemberType NoteProperty -Name "Email Address" -Value $Users.EmailAddress 
        write-host $Users.DisplayName
        $ActiveDirectoryList+=$ActiveDirectoryList
    }
}
Run Code Online (Sandbox Code Playgroud)

尝试在互联网上寻找解决方案,但他们似乎没有解决任何问题。

powershell

5
推荐指数
1
解决办法
6万
查看次数

将 ForEach 的输出存储到 powershell 中的数组中

$data = @("server1","server2","server3")

foreach ($server in $data) {
    $results = (Test-Connection $server -count 1 | Measure-Object -Property ResponseTime -Average).Average
}
Run Code Online (Sandbox Code Playgroud)

我试图弄清楚如何获取 ForEach 的输出并将结果存储到数组中,以便稍后可以比较它们。我还想不出办法来做到这一点。

arrays powershell output

5
推荐指数
1
解决办法
4万
查看次数

将文件夹拆分为具有特定大小的较小文件夹

我正在尝试将一个文件夹划分为最大大小为 8 GB 的文件夹。

起始文件夹:

 Folder 1
  2KB file
  2GB file
  7GB file
 Folder 2
  1GB file
  5.6GB file
 Folder 3
  8GB file
Run Code Online (Sandbox Code Playgroud)

我想把它变成:

  Folder A (~7.6GB)
   Folder 1
     2KB file
     2GB file
   Folder 2
     5.6GB file
 Folder B (8GB)
   Folder 1
     7GB file
   Folder 2
     1GB file
 Folder C (8GB)
   Folder 3
     8GB file
Run Code Online (Sandbox Code Playgroud)

目标是您可以组合文件夹并获取原始文件夹的结构。

使用 powershell 可以实现这样的功能吗?我已经看到了一些使用 bash 和 dirsplit 的解决方案,但我真的很想将其保留在 powershell 中,除非有一些现有软件的简单干净的解决方案。

我忘记补充一点,文件夹可能不仅包含文件,有时还包含文件夹。有没有一种解决方案可以在一定程度上递归地执行此操作?

考虑到我没有经常使用 powershell,感觉好像我错过了一些东西。

windows powershell

5
推荐指数
1
解决办法
2623
查看次数

PowerShell从简单的.ini文件中读取单个值

我发现的一切看起来都很复杂.这几乎就像我只需要阅读一个文本文件.

ADAP.ini包含这个,没有别的:

http://xxx.104.xxx.226
APP=2.3.6
DLL=2.3.6
Run Code Online (Sandbox Code Playgroud)

使用Powershell,我如何阅读APP =值是什么?和/或DLL =值是什么?

我会将值存储在变量中,稍后在Powershell脚本中使用它.

powershell ini

5
推荐指数
5
解决办法
1万
查看次数

在 Powershell 中,在路径中输入空格时调用表达式不起作用

我有一个查询,例如当我尝试执行包含带空格的路径的表达式时,出现如下错误。

代码:

$path="E:\Test\My space\Log"
Invoke-Expression $path 

E:\Test\My: The term 'E:\test\My' 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.
At line:1 char:1
+ E:\Test\My space\Log
+ ~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (E:\Test\My :String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
Run Code Online (Sandbox Code Playgroud)

你能帮我解决这个问题吗?

powershell cmdlet

5
推荐指数
1
解决办法
5668
查看次数

随机窃取对子初始化程序的调用

有一种涉及子分类的情况我无法弄清楚。

我正在进行子分类Random(原因超出了重点)。这是我所拥有的一个基本示例:

import random

class MyRandom(random.Random):
    def __init__(self, x):  # x isn't used here, but it's necessary to show the problem.
        print("Before")
        super().__init__()  # Nothing passed to parent
        print("After")

MyRandom([])
Run Code Online (Sandbox Code Playgroud)

上面的代码在运行时给出以下错误(并且不打印“Before”):

>>> import test
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\_\PycharmProjects\first\test.py", line 11, in <module>
    MyRandom([])
TypeError: unhashable type: 'list'
Run Code Online (Sandbox Code Playgroud)

对我来说,这没有任何意义。不知何故,即使我没有传递它,参数MyRandom显然也被直接传递给Random.__init__,并且该列表被视为种子。"Before"从不打印,所以显然我的初始化器甚至从未被调用。

我认为这可能是由于Random在 C 中实现的父级造成的,这导致了奇怪的情况,但是list子类化的类似情况不会产生错误,指出整数不可迭代:

class MyList(list):
    def __init__(self, y):
        print("Before")
        super().__init__() 
        print("After") …
Run Code Online (Sandbox Code Playgroud)

python subclass

5
推荐指数
1
解决办法
127
查看次数

用于删除XML元素的PowerShell脚本

我有一个XML文档,如下所示:

<Task>
    <Settings>
    </Settings>
    <Sub>foo</Sub>
    <Body>bar</Body>
</Task>
Run Code Online (Sandbox Code Playgroud)

从PowerShell我可以愉快地使用以下内容获取'Sub'和'Body'的内容:

$Body = $XMLFile.Task.Body
Run Code Online (Sandbox Code Playgroud)

但我试图完全删除'Sub'和'Body'标签,因此XML将是:

<Task>
    <Settings>
    </Settings>
</Task>
Run Code Online (Sandbox Code Playgroud)

我已经尝试了很多东西,包括:

  • 使用该.RemoveChild()方法(抛出与Object引用相关的exeption)
  • 使用XPath语句删除并添加管道以在一行中删除
  • 甚至将文件作为文本文件打开并尝试:

    Get-Content $_.FullName -notmatch "<Sub>" | out-file $_.FullName

^^这什么都不做

此外,对于此脚本应用程序,我将无法使用任何第三方模块

xml powershell xpath

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

powershell ×7

.net ×1

arrays ×1

c ×1

c# ×1

cmdlet ×1

ini ×1

invoke-command ×1

openssl ×1

output ×1

pfx ×1

php ×1

pkcs#12 ×1

python ×1

subclass ×1

windows ×1

xml ×1

xpath ×1