Tag: powershell

在Get-ADUser筛选参数中传递string会导致在pscustomobject中找不到错误属性

我正在尝试创build一个新的Active Directory用户,但首先validation用户不存在与Get-ADUser 。 我从我们的人力资源部门导入用户数据并构build自定义属性: $newUsers = Import-Csv $csvFile | Select-Object -Property @{n='EmpNum';e={$_.'Employee Number'}}, @{n='UPN';e={$_.'Email Address'}}, @{n='Alias';e={$_.'Email Address'.Split("@")[0]}} #### etc 当我从CSV文件中循环访问对象时,我使用UPN属性在Active Directory中search用户: foreach ($newUser in $newUsers) { $exists = Get-ADUser -Filter {UserPrincipalName -eq $newUser.UPN} -Properties * -Server $adServer -Credential $adCred … } 该filter导致错误: Get-ADUser : Property: 'UPN' not found in object of type: 'System.Management.Automation.PSCustomObject'. At C:\Users\bphillips.NEWHOPEOFIN\Dropbox\Powershell\NewHire\AddNewDSP.ps1:50 […]

PowerShell,在另一种文化中格式化值

PowerShell中有一种简单的方法来在另一个语言环境中格式化数字之类的东西吗? 我目前正在编写几个函数来减轻我和SVG使用的SVG生成. 作为小数点分隔符,而PowerShell在将浮点数字转换为string时遵循我的语言环境设置( de-DE )。 有没有一个简单的方法来设置另一个语言环境的function,所以不坚持 .ToString((New-Object Globalization.CultureInfo "")) 每一个doublevariables? 注意:这是关于用于格式化的区域设置 , 而不是格式化string。 (旁边的问题:我应该使用这种情况下的不变文化,还是使用en-US ?) ETA:那么,我在这里尝试的是如下所示: function New-SvgWave([int]$HalfWaves, [double]$Amplitude, [switch]$Upwards) { "<path d='M0,0q0.5,{0} 1,0{1}v1q-0.5,{2} -1,0{3}z'/>" -f ( $(if ($Upwards) {-$Amplitude} else {$Amplitude}), ("t1,0" * ($HalfWaves – 1)), $(if ($Upwards -xor ($HalfWaves % 2 -eq 0)) {-$Amplitude} else {$Amplitude}), ("t-1,0" * ($HalfWaves – 1)) ) } […]

我怎样才能确定一个可执行文件编译的平台?

我需要使用适用于x86,x64和IA64的Windows可执行文件。 我想以编程方式通过检查文件本身来找出平台。 我的目标语言是PowerShell,但是C#示例将会执行。 如果你知道所需要的逻辑将是伟大的,那么这两者中的任何一个都不行。

Powershell v3 Invoke-WebRequest HTTPS错误

使用Powershell v3的Invoke-WebRequest和Invoke-RestMethod我已经成功地使用POST方法将json文件发布到https网站。 我正在使用的命令是 $cert=New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("cert.crt") Invoke-WebRequest -Uri https://IPADDRESS/resource -Credential $cred -certificate $cert -Body $json -ContentType application/json -Method POST 但是,当我尝试使用GET方法,如: Invoke-WebRequest -Uri https://IPADDRESS/resource -Credential $cred -certificate $cert -Method GET 以下错误被返回 Invoke-RestMethod : The underlying connection was closed: An unexpected error occurred on a send. At line:8 char:11 + $output = Invoke-RestMethod -Uri https://IPADDRESS/resource -Credential $cred + […]

如何在不显示窗口的情况下运行PowerShell脚本?

如何运行PowerShell脚本而不显示窗口或任何其他标志给用户? 换句话说,脚本应该在后台安静地运行,而不会对用户造成任何影响。 额外的功劳,不使用第三方组件的答案:)

我如何使用PowerShell卸载应用程序?

有没有简单的方法来钩入标准的“ 添加或删除程序 ”function使用PowerShell 卸载现有的应用程序 ? 或者检查应用程序是否安装?

Windows Powershell中的Unix tail等效命令

我必须看一个大文件的最后几行(典型的大小是500MB-2GB)。 我正在寻找相当于Windows Powershell的Unix命令tail 。 有几个可供select的是, http://tailforwin32.sourceforge.net/ 和 Get-Content [文件名] | select对象 – 最多10 对我来说,不允许使用第一种select,第二种select是慢的。 有谁知道有效的PowerShell尾部实施。

FORFILES date -after-(cmd文件中的date计算)

我想在一个cmd文件中使用FORFILES,在给定的date之后通过“today”来处理所有文件。 我可以使用forfiles /d +07/10/2013 /c "cmd /c echo @fname"东西在7/10/13之后执行,但是我想要的只是从90天开始计算在“今天”之前。 是否有一个date计算的语法,将在一个cmd文件,将让我指定“今天之前x天”饲料到FORFILES? 我更喜欢不使用VBS(并且发现了可以在VBS中工作的代码片段),不过我可以重写Powershell的脚本,但理想情况下我想使用cmd。 为了澄清,“-90”会find所有超过90天的文件; “+90”会发现所有文件比今天晚90天以后(这基本上是无用的,因为文件很less会在未来的date编写),“+7/30/2013”​​将查找所有比7/30更新的文件/ 2013。 我想要最后一段时间,最好能够传递给CMD文件的天数variables,也就是说“在今天之前x天之后”,即“在最近x天”。 所以,而不是如上所示使用硬编码的date,我希望能够在cmd文件中计算该date。

如何在.NET MySqlCommand中使用MySql用户定义的variables?

我只是想执行下面的Mysql语句 SET @a = 1;SELECT @a; 与MySql.Data.MySqlClient [System.Reflection.Assembly]::LoadWithPartialName("MySql.Data") $password = 'mypassword' $sql = "SET @a = 1;SELECT @a;" $server = 'localhost' $port = 3306 $database = 'test' $User = 'root' $conn=new-object MySql.Data.MySqlClient.MySqlConnection $connectionstring = "Server=$Server;Port=$port;Database=$DataBase;Uid=$User;Pwd=$Password;allow zero datetime=yes" $conn.ConnectionString = $connectionstring $conn.Open() $cmd=new-object MySql.Data.MySqlClient.MySqlCommand($sql,$conn) $ds=New-Object system.Data.DataSet $da=New-Object MySql.Data.MySqlClient.MySqlDataAdapter($cmd) $da.fill($ds) $conn.close() $ds.tables[0] 我得到一个致命的错误。 当我replace$ sql $sql = […]

为什么继续像在一个Foreach对象中的行为一样?

如果我在PowerShell脚本中执行以下操作: $range = 1..100 ForEach ($_ in $range){ if ($_ % 7 -ne 0 ) { continue; } Write-Host "$($_) is a multiple of 7" } 我得到了预期的输出: 7 is a multiple of 7 14 is a multiple of 7 21 is a multiple of 7 28 is a multiple of 7 35 is a multiple […]