标签: powershell

如何在Windows中的Powershell中获取Dropbox文件夹

Python中存在同样的问题:如何在Python中以编程方式获取Dropbox文件夹位置?或者在这里用于OSX:如何获取当前登录的Dropbox文件夹的位置

在Powershell中也是如此.我需要DropBox的路径来复制文件(构建软件然后将其复制到dropbox以与团队共享).

windows powershell dropbox

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

CSV按标题名称删除列

我正在开发一个应该删除命名列的PowerShell脚本.有没有办法不选择标题名为"xyz"的列?

我试图获取标题名称

$hnames = $csv | Get-Member -MemberType NoteProperty | foreach {$_.name}
Run Code Online (Sandbox Code Playgroud)

并将结果连接到逗号分隔的字符串并删除不需要的标头

$new = $hnames -join ","
$new = $new -replace "xyz,", ""
Run Code Online (Sandbox Code Playgroud)

并导入/导出CSV select

Import-CSV $tempfile -Delimiter ";" | Select $new |
    Export-Csv tempynew.csv -Delimiter ";" -Encoding UTF8 -NoTypeInfo   
Run Code Online (Sandbox Code Playgroud)

但它只输出CSV文件中的标题.

csv powershell

2
推荐指数
2
解决办法
6173
查看次数

自动为Web应用程序Azure创建新的连接字符串

我试图在Azure环境中自动化工作流程.

我们有几个Web应用程序,连接到几个数据库.每个新客户都会收到一个新数据库.

我用连接线在脚本中遇到了麻烦.我希望脚本更新所有Web应用程序,并为新创建的客户数据库添加新的连接字符串.

问题是"Set-Azurermwebapp -Name -ResourceGroup -ConnectionStrings"采用哈希表来替换以前配置的任何数据.

我只想附加一个新的连接字符串,或者获取之前的configered cstrings并将它们添加到数组中,然后替换所有数据.

示例代码;

$test= @{"Type"="Custom"; "Value" = "TestValue"} 
$Connectionstring=@{"test"=$test }

Set-AzureRmWebApp 
        -Name "testapp" 
        -ResourceGroupName "testgrp" 
        -ConnectionStrings $Connectionstring"
Run Code Online (Sandbox Code Playgroud)

这里有什么想法?

sql powershell azure

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

PowerShell数组字典?

在VBScript中我可以做这样的事情

Set objDict = CreateObject("Scripting.Dictionary")
objDict.Add "item1", Array("data1", "data2")
objDict.Add "item2", Array("data3", "data4")
Run Code Online (Sandbox Code Playgroud)

然后我可以使用这样的东西进行查找

dataArray = objDict.Item("item2")
elem1 = dataArray(0)
elem2 = dataArray(1)
Run Code Online (Sandbox Code Playgroud)

结果包含"data3" elem1elem2包含"data4"

我不确定如何在PowerShell中复制它.有人帮吗?

arrays powershell dictionary

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

如何从powershell中的扩展类型数组中提取/匹配文件类型扩展

我想使用Powershell从Sharepoint库中仅提取所需的文件类型

我正在使用以下逻辑,但它无法正常工作.它仍然匹配文件名包含扩展类型,这是不好的.

请帮我纠正脚本.

$libfiles = ".pptx",".xlsx",".xls",".docx",".doc",".pdf",".jpeg",".jpg",".ppt",".xlsm",".gif",".png"
$libfilesregex = [string]::Join('|', $libfiles)
$arr = @("xlsfile.avi","asxlsxfile.mdf","navigation.css")
foreach($i in $arr)
{
    if($i -match $libfilesregex)
    {
        Write-Host " $($i) File type exists "
    }
    else
    {
        Write-Host " $($i) File type does not exist "
    }
}
Run Code Online (Sandbox Code Playgroud)

它正在输出:

xlsfile.avi文件类型不存在

asxlsxfile.mdf文件类型存在

navigation.css文件类型不存在

注意如何报告不存在,但asxlsxfile.mdf出乎意料的是.

谢谢Vishwa

arrays powershell

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

生成随机密码

我在PowerShell中有这个脚本.我想为每个用户从文件导入设置随机密码,我希望弹出cmd中的所有注释我想保存在其他txt文件中.我该怎么做?

#
# Description: Enable accounts, reset passwords and set change password option at first logon.
#
Import-Module ActiveDirectory
# Set default password "XXX"
$password = ConvertTo-SecureString -AsPlainText “XXX” -Force 
# get account list from UserList.txt
# 1 user per line 
$users = Get-Content -Path 'G:\Shares\XXX\ResetPassword\UserList.txt'
ForEach ($user in $users) 
{
# Set default password for account
Get-ADUser $user | Set-ADAccountPassword -NewPassword $password -Reset
# Set option to change password at first logon
Get-ADUser $user | Set-AdUser -ChangePasswordAtLogon $true
# …
Run Code Online (Sandbox Code Playgroud)

powershell active-directory

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

使用remove-item cmdlet时找不到路径

我写了一个简单的PowerShell脚本来备份目录C:\,然后在其年龄= X天时删除任何备份文件夹.

出于某种原因,当我使用Remove-Itemcmdlet时,我遇到了Remove-Item: Cannot find path 'C:\Windows\system32\ [Sub-Folder name]' because it does not exist错误.

以下是片段:

    $TargetFolder = "C:\Folder\"
    $Folders = get-childitem -path $TargetFolder
    foreach ($Folder in $Folders)
    {
      remove-item $Folder -recurse -force
    }
Run Code Online (Sandbox Code Playgroud)

在其中$TargetFolder = "C:\Folder\",有几个子文件夹.例如:C:\Folder\SubfolderA,C:\Folder\SubfolderB,等.

当我做Write-Host$Folder它列出SubFolderA,SubFolderB等等,正确的,所以我不知道是什么原因,我得到一个Cannot find path错误.

powershell

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

Force -Match运算符失败表达式

我正在使用表达式来验证Active Directory用户名.我这样做是通过创建一个否定的字符类并告诉它寻找任何不是"/\[]:; | =,+*?<>的东西.问题是当我使用-match操作符时它会匹配字符在技​​术上有效,如n或i,但我希望表达式失败,因为它也包含类似的东西!

'!nv,@l|d?' -match  '[^"/\\\[\]:;|=,+\*\?<>!]+'
Run Code Online (Sandbox Code Playgroud)

regex powershell match

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

如何打印功能的返回值

所以我有这个简单的function返回我当前的脚本位置:

function Get-CurrentDir
{
    $MyInvocation.MyCommand.Path
}
Run Code Online (Sandbox Code Playgroud)

我想打印这个,所以我在功能声明后尝试使用PowerShell ISE:

Write-Host $(Get-CurrentDir)
Write-Host (Get-CurrentDir)
Write-Host Get-CurrentDir
Run Code Online (Sandbox Code Playgroud)

这是我的输出:

Write-Host $(Get-CurrentDir) --> Write-Host $(Get-CurrentDir)
Write-Host (Get-CurrentDir) --> Write-Host (Get-CurrentDir)
Write-Host Get-CurrentDir --> Write-Host Get-CurrentDir
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

powershell

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

PowerShell不会终止挂起的进程

我有一个场景,由于Oracle数据库,每个星期一早上都有一个进程被卡住,所以我尝试创建一个PowerShell脚本来运行每个星期一,但无论是否收到错误,该过程仍然存在.

我试图用来"杀死"的那条线是:

Get-Process -Name ez0* -ComputerName $server | Stop-Process -Force
Run Code Online (Sandbox Code Playgroud)

尝试在本地做这个没有-ComputerName.

我没有从这条线上得到任何错误,无论-Force它是否只是执行并继续前进.

只是做Get-Process工作,我可以看到它,但我不能用PowerShell结束它.经过多次尝试,我远程登录到服务器,只需右键单击该过程并选择"结束任务"即可.

这是一个奇怪的过程,因为它是初始8中的一个(基于核心),当您停止服务时,除了一个进程之外的所有进程都将被删除,除了挂起的进程.

powershell process terminate

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