我试图导出所有DL的列表,我需要能够有一个列的pipe理dBy值(第一个条目,如果多个)samaccountname。 Get-DistributionGroup | Select-Object Name, ManagedBy | Export-Csv C:\out.txt 毫不奇怪,这给了我这样的东西: "Name","ManagedBy" "DL-SOMETHING-SOMETHING","Microsoft.Exchange.Data.Directory.ADMultiValuedProperty`1[Microsoft.Exchange.Data.Directory.ADObjectId]" 如果这不是一行代码,我可以通过ManagedBy值循环,使用GET-AdUser并提取我需要的东西。 但是,如果我只关心第一个ManagedBy,我可以做到这一点吗? 就像是… Get-DistributionGroup | Select-Object Name, ManagedBy[0].Samaccountname | Export-Csv C:\out.txt 如果我甚至可以得到相同的string,当我在控制台中运行时,我可以使用它: Get-DistributionGroup | Select-Object Name, ManagedBy 产量 DL-SOMETHING-SOMETHING, {somedomain.com/Accounts/SomeAccount}
我正在写一个powershell脚本,它从AD OU的计算机打印磁盘信息。 我的function如下所示: function Get-DiskInfo { $disk = Get-WMIObject Win32_Logicaldisk -ComputerName $computer | Select DeviceID, @{Name="SizeGB";Expression={$_.Size/1GB -as [int]}}, @{Name="FreeGB";Expression={[math]::Round($_.Freespace/1GB,2)}} Write-Host $Computer "Disks: "$disk 如果我将对一台计算机运行Get-WMIObject,我会得到以下输出: DeviceID SizeGB FreeGB ——– —— —— C: 953 757,08 但是,如果我运行多台计算机的function打印输出如下所示: Disks: @{DeviceID=C:; SizeGB=214; FreeGB=21,83} @{DeviceID=D:; SizeGB=932; FreeGB=740,09} @{DeviceID=E:; SizeGB=0; FreeGB=0} 我刚刚对PowerShell新,所以有什么我应该做的不同,以获得更好的输出 整个脚本: https : //gist.github.com/ErkkaKorpi/f1b10a62ac79763fa38082b6c25e8f1b
我正在写一个大脚本来扫描AD中计算机的WMI信息。 我有diskinfo,raminfo和videocardinfofunction,其中磁盘和video卡具有类似的输出风格。 问题是,根据脚本运行的顺序,要么输出为空。 这是两个function: 函数Get-DiskInfo { $disk = Get-WMIObject Win32_Logicaldisk -ComputerName $computer | Select @{Name="Computer";Expression={$computer}}, DeviceID, @{Name="SizeGB";Expression={$_.Size/1GB -as [int]}}, @{Name="FreeGB";Expression={[math]::Round($_.Freespace/1GB,2)}} Write-Host $Computer $disk } 和: 函数Get-VRamInfo { $vram = Get-WmiObject win32_videocontroller -ComputerName $computer | Select @{Name="Computer";Expression={$computer}}, @{Name="VideoRAM";Expression={$_.adapterram / 1MB}}, Name Write-Host $computer $vram } 一个会得到预期的输出,但稍后在脚本中运行的输出将仅输出计算机名称,但不输出信息 这里是完整的脚本: https : //gist.github.com/ErkkaKorpi/f1b10a62ac79763fa38082b6c25e8f1b 可能是什么问题呢?
我只想按计划运行ResetSearchIndex -force。 “计划任务”属性中该命令的正确用法是什么? 看来我首先需要启动Powershell,然后加载Exchange的控制台文件或pipe理单元,其中最接近的是: C:\ WINDOWS \ system32 \ WINDOW〜2 \ v1.0 \ POWERS〜1.EXE – “D:\ Program Files \ Microsoft \ Exchange Server \ Scripts”ResetSearchIndex.ps1 -force dbname 要么 C:\ WINDOWS \ system32 \ WINDOW〜2 \ v1.0 \ POWERS〜1.EXE -PSConsoleFile“D:\ Program Files \ Microsoft \ Exchange Server \ bin \ exshell.psc1”-noexit -command“。 Program Files \ Microsoft […]
有谁知道我为什么不能访问我的PowerShell脚本在Windows 2008 Ent中的文件夹。 当我尝试创build一个带有文本的脚本时, 当我尝试执行存储在win 2003驱动器上的ac#powershell应用程序时,也会遇到访问exception。 我已经设置了PowerShell的执行策略,使其不受普通用户和pipe理员用户的限制,在PowerShell中以“pipe理员身份运行”,但似乎没有什么区别。 必须有策略设置,不允许脚本访问目录,但是在哪里以及如何设置它。 任何帮助,将不胜感激。 scope_creep
我有一个Hyper-V虚拟机,需要每天恢复到以前的快照。 我想自动化这个过程。 我听说过Codeplex上Hyper-V的Powershellpipe理库 ,但我不确定这是我在找什么。 脚本似乎可以从主机,而不是虚拟机运行。 这是有道理的,但我更喜欢虚拟机本身安排,并恢复快照。 可能吗? 简而言之,我想知道一个虚拟机(不是主机)是否可以恢复快照。 谢谢。
我想将我的生产域中的用户帐户复制到我的testing域。 这是我正在尝试的: $me = Get-QADUser myAccount -IncludeAllProperties -connection $prodDomain $me | New-QADUser -parentcontainer 'domain.local/test' -connection $testDomain 在新帐户上,唯一复制的是CN。 没有其他的属性 – samAccountName,FirstName,交换属性等,都遇到过。 我究竟做错了什么?
我有一个SQL Server 2008数据库,在64位Windows Server 2008上运行 。 我创build了一个非常简单的PowerShell脚本,可以自动执行一些任务。 我希望这个脚本作为维护计划的一部分运行。 我如何安排它运行? 它需要以pipe理员身份运行 – 我知道这不是理想的,但我希望我能以pipe理员身份执行它。 我目前以pipe理员身份打开PowerShell,每天早上手动执行脚本。 如果重要,脚本: 压缩备份文件( 7-Zip )并将其移动到我们的备份位置 玩弄一些文件 – 将最新的备份保存在特定的networking位置,并将最近的备份移到第二个位置 删除.bak文件 我希望脚本运行而不指望我运行它。
尝试将所有已更改的文件从目录(recursion地)复制到新的位置,保持目录结构不变。 我把改变后的文件放到一个数组中:$ datechanged =($ datechanged).addyears(-3)$ changedfiles = ls -recurse | where-object {$ _。lastwritetime -gt $ datechanged} 现在我想将这些文件(和目录?)复制到新的位置,但不知道如何继续。 我一直在尝试foreach的语法,但我没有太多的运气。 我将这个作为一个学习练习,但是考虑到将这些更改后的文件存档的实际目标 – 将文件直接放入一个7-zip文件对于速度来说是非常好的,但是我想更好地理解如何处理这些对象的数组和pipe道他们。 谢谢!
我已经inheritance了Windows Server 2003 r2框。 我有一个Powershell脚本,我需要在机器上运行,但有些系统似乎非常错误。 例如,打开Powershell控制台并inputipconfig会得到以下响应: The term 'ipconfig' is not recognized as a cmdlet, function, operable program, or script file. Verify the term and try again. 我的Powershell脚本正试图调用pscp.exe(来自putty项目),并得到与上面相同的错误。 我的第一个怀疑是这是一个path问题,果然,当我打开环境variables窗口时, PATHvariables甚至不存在。 所以我创build了它,并确保包含pscp的目录在那里列出。 还没有骰子。 在cmd.exe中运行相同的命令(ipconfig或pscp),只要向PATHvariables(%SystemRoot%\ system32;%SystemRoot%;%SystemRoot%\ System32 \ Wbem;)添加了一些基本条目,就可以按预期工作。 Powershell中的$env:path返回PATHvariables的值,但是powershell仍然不会执行那些目录中的程序。 get-host | select version get-host | select version返回1.0.0.0。 任何提示?