所以这就是我为webapp做的方式
Set-AzureRmWebApp -ResourceGroupName $ResourceGroup -Name $WebAppName -HostNames @($Alias, $Url);
Run Code Online (Sandbox Code Playgroud)
不适用于网络应用中的广告位,例如:
Set-AzureRmWebApp -ResourceGroupName $ResourceGroup -Name $SlotName -HostNames @($SlotAlias, $SlotUrl);
Run Code Online (Sandbox Code Playgroud)
并失败:
找不到资源组“ resgrpname”下的资源“ Microsoft.Web / sites / sitename-staging”。
然后有这个,Set-AzureRmWebAppSlot但是它没有-HostNames选择。
任何帮助将不胜感激。
powershell azure-web-sites azure-powershell azure-resource-manager
我尝试过以下方法:
Start-Process powershell -ArgumentList "C:\Program Files\Prometheus.io\prometheus.exe" -WindowStyle hidden
Run Code Online (Sandbox Code Playgroud)
Invoke-Command -ComputerName . -AsJob -ScriptBlock {
'C:\Program Files\Prometheus.io\prometheus.exe'
}
Run Code Online (Sandbox Code Playgroud)
Start-Job -Name "prometheus" -ScriptBlock {Get-Process prometheus.io}
Run Code Online (Sandbox Code Playgroud)
Start-Job {& .\prometheus.exe}
Run Code Online (Sandbox Code Playgroud)
有时它会启动但在启动后立即终止.如果我手动启动它可以正常工作.
如何在后台保持我的进程存活?
编辑:
它没有用,因为我不在我的进程目录中,需要一个没有设置pathfile的文件.
我正在使用自定义函数基本上在8TB驱动器(数千个文件)上执行DIR命令(递归文件列表).
我的第一次迭代是:
$results = $PATHS | % {Get-FolderItem -Path "$($_)" } | Select Name,DirectoryName,Length,LastWriteTime
$results | Export-CVS -Path $csvfile -Force -Encoding UTF8 -NoTypeInformation -Delimiter "|"
Run Code Online (Sandbox Code Playgroud)
这导致了一个巨大的$ results变量,并通过强制PowerShell进程将系统降低到爬行速度,以便在处理过程中使用99%-100%的CPU.
我决定使用管道的功能直接写入CSV文件(可能释放内存),而不是保存到中间变量,并提出了这个:
$PATHS | % {Get-FolderItem -Path "$($_)" } | Select Name,DirectoryName,Length,LastWriteTime | ConvertTo-CSV -NoTypeInformation -Delimiter "|" | Out-File -FilePath $csvfile -Force -Encoding UTF8
Run Code Online (Sandbox Code Playgroud)
这似乎工作正常(CSV文件正在增长......并且CPU似乎稳定)但是当CSV文件大小达到~200MB时突然停止,并且控制台的错误是" 管道已经停止 ".
我不确定CSV文件大小与错误消息有什么关系,但我无法使用任何一种方法处理这个大型目录!有关如何允许此过程成功完成的任何建议?
仅出于学习目的。
假设我有一个变量,在此示例中为文本框,我如何一次又一次设置许多属性而又不必一遍又一遍地输入变量名。
我尝试了一些我自己的事情,其中一些工作出于某些奇怪的原因。
这个例子有效。中断用于缩短循环。
$Textbox | % {
$_.Text = "Hello World"
$_.Background = "Black"
$_.Foreground = "Green"
Break
}
Run Code Online (Sandbox Code Playgroud)
这两个示例不起作用,在这里只是为了查看我的尝试。
有和没有“ $ _。”,而不是“。”。我用过“ =”和“ + =”,但都没有用。
$Textbox.@{
Text = "Hello World"
Background = "Black"
Foreground = "Green"
}
$Textbox.({
$_.Text = "Hello World"
$_.Background = "Black"
$_.Foreground = "Green"
})
Run Code Online (Sandbox Code Playgroud)
可能有一种更简单的方法,我在Google上还没有遇到任何问题。
我使用的是Windows 7机器,安装了windows power shell.如何确保将Windows防火墙配置为允许来自工作站的Windows远程管理连接.例如:netsh advfirewall firewall set rule name ="Windows Remote Management(HTTP-In)"profile = public protocol = tcp localport = 5985 remoteip = localsubnet new remoteip = any
我正在按照上面的命令,但无法配置它.
我有一堆以以下模式命名的jpg图像文件:
0001-rand01_012.jpg
0002-rand03_034.jpg
Run Code Online (Sandbox Code Playgroud)
我想通过删除前5个字符来重命名它们以获得表格:
rand01_012.jpg
Run Code Online (Sandbox Code Playgroud)
等等..
我使用以下命令:
Get-ChildItem | Rename-Item -NewName {$_.name.Substring(5)}
Run Code Online (Sandbox Code Playgroud)
当与-whatif标志一起使用时,我得到预期的消息:
Performing the operation "Rename File" on target "Item: C:\Users\xxxx\Documents\xx xx\temp2\0123-rand16_030.jpg Destination: C:\Users\
xxxx\Documents\xx xx\temp2\rand16_030.jpg".
Run Code Online (Sandbox Code Playgroud)
但是删除whatif给我这种类型的错误:
Rename-Item : The input to the script block for parameter 'NewName' failed. Exception calling "Substring" with "1" argument(s): "startIndex cannot be
larger than length of string.
Run Code Online (Sandbox Code Playgroud)
其次是一堆:
Rename-Item : Cannot create a file when that file already exists.
Run Code Online (Sandbox Code Playgroud)
重命名文件本身时会删除随机数量的字符,而不是按预期的5个字符。所以他们最终像:
01.jpg
01.jpg
.
.
.
d14_001.jpg
Run Code Online (Sandbox Code Playgroud)
等等
过去,我已经使用此命令成功重命名了此类文件。我得到如此随机结果的事实使我拔头发。
我有一个日期字符串,我想解析为datetime对象.我有这个:
$invoice = '9 février 2017'
[datetime]::parseexact($invoice, 'dd MMMM yyyy', $null)
Run Code Online (Sandbox Code Playgroud)
但它不起作用.如何将月份(总是法国BTW)转换为日期时间对象?
它看起来像我期待这种方式工作的方式不是.我想要返回多个对象,但它似乎只返回一个.我不知道如何做到这一点.
一个非常简单的JSON文件:
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageAccountName": {
"value": "sa01"
},
"virtualNetworkName": {
"value": "nvn01"
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想动态地将参数及其值添加到一个漂亮的pscustomobject中(对于上面的数据看起来如下):
ParameterName | Value
===========================
storageAccountName | sa01
virtualNetworkName | nvn01
Run Code Online (Sandbox Code Playgroud)
我不明白为什么以下返回一个对象:
$TemplateParametersFile = "C:\Temp\deploy-Project-Platform.parameters.json"
$content = Get-Content $TemplateParametersFile -Raw
$JsonParameters = ConvertFrom-Json -InputObject $content
$JsonParameters.parameters | Measure-Object
Run Code Online (Sandbox Code Playgroud)
在写这篇文章的同时,我最终找到了一个能够得到我想要的解决方案,我将在答案部分发布.随意上学,改进......
有没有一种简单的方法可以将PowerShell cmdlet的所有参数都作为哈希表?我希望能够通过转储所有参数Write-Verbose(用于调试问题).我想做的事:
Function verb-noun {
Param($p1, $p2, $p2)
$parameters = ... # Get all parameters as hash
$parameters.Keys | % { Write-Verbose "$_=$parameters.Item($_)" }
...
}
Run Code Online (Sandbox Code Playgroud) 我有一个AD的哈希表,包含用户名和服务帐户.我正在尝试查找所有服务帐户.所有用户名都由其首字母(如"r")和带有"s"的服务帐户唯一标识.例如:r398831和s882443.这是我拥有的数组的示例:
$null = $usrArr.Add([pscustomobject] @{
sName = $user.name
sGivenName = $user.GivenName
sSurname = $user.Surname
sEnabled = $user.Enabled
})
$lastSeen = $usrArr | select * | Where {$_.sEnabled -eq $true}
$lastSeen = $lastSeen | Sort-Object -Unique -Property sName
Run Code Online (Sandbox Code Playgroud)
我已经尝试过使用-contains和-match但它似乎没有拉回我追求的东西:
$svcAcc = $lastSeen | where-object {$_.sName -like "s"}
Run Code Online (Sandbox Code Playgroud)
我是否必须为每个执行一个或者我刚搞砸了我的语法?我想也许我需要排序 - 对象,但必须有一个更简单的方法来拉出一些基本的东西.感谢任何有关它的建议.
提前致谢 :)
最好,皮特