我想要一个单一的脚本行导出到CSV所有用户在我的广告与他们所有的组成员。 我宁愿它在PowerShell中,但dsquery / dsget是一个很好的select。 编辑:我试图做这样的事情: $ user =“administrator”(GET-ADUSER -Identity $ user -Properties MemberOf | Select-Object MemberOf).MemberOf 但我想有一个循环的$用户variables由参考文本文件中的每一行更改。 这是我不知道如何循环它的观点。
我想镜像一个目录,但是只能删除大于7天的目标目录中的文件。 情况: – Directory A is mirrored to Directory B. – A file from Directory A is deleted 我希望这个文件保留在目录B中7天。 7天之后,如果文件A中仍然不存在,文件将被删除。 当前解决scheme – Use Free File Sync to mirror Directory A to Directory B. Extra files in Directory B are moved (termed versioning within Free File Sync) to a temp directory – Use a powershell script […]
我在这方面做了很多search,但仍然找不到答案。 我已经创build了一个脚本,将批量移动一个OU中的所有用户对象到另一个OU。 这工作正常。 现在我试图批量更改这些用户的主文件夹path(和驱动器号)。 到目前为止,我可以让脚本正确地更改path/驱动器号,但我无法将用户的login名添加到path末尾(\ server \ share \ username)。 用户的主文件夹以其login名命名。 通常情况下,我们可以通过在AD的Home文件夹path中放置\ server \ share \%username%来实现这个function,但是%username%似乎不是Powershell的选项。 如果在path末尾添加“%username%”,ADpath将如下所示 – \ server \ share \%username%(用户名称显示为“%username%”,而不是它们的实际login名)。 我已经尝试了很多方法来获得这个工作(variables,$ _。SamAccountName等),但到目前为止,没有运气。 这是我的脚本,到目前为止… #This script will move objects from one OU to another and set AD Home folder path. Clear-Host write-host "This script will move objects from one OU to another and […]
我需要按照从最早的创builddate到最新的顺序处理文件。 我find了我所需要的sort-object命令,但是我不知道如何将它添加到我的ForEach()语句中。 有人可以告诉我怎么做吗? 谢谢 Get-ChildItem -Path C:\Users\Tom\ -Filter "*.journal" | Sort-Object -Property CreationTime ForEach ($sourcefile In $(Get-ChildItem $source | Where-Object { $_.Name -match "Daily_Reviews\[\d{1,12}-\d{1,12}\].journal" })) { #### Process files in order from oldest to newest $file = $source+$sourcefile }
我正在运行以下脚本,对于不存在的邮箱失败 Set-MailboxDatabase rdb16 -AllowFileRestore:$true Mount-Database rdb16 $stats = Get-MailboxStatistics -Database rdb16 ForEach ($item in $stats) { try { get-mailbox -Identity $item.DisplayName | Set-Mailbox -Database rdb16 -Force } catch{ write-host "Create Mailbox:" } } 这是失败 The operation couldn't be performed because object 'schmoe, joe' couldn't be found on 'NYCEXRESTOREDC0.sss.com'. + CategoryInfo : NotSpecified: (:) [Get-Mailbox], ManagementObjectNotFoundException […]
有没有办法做到以下几点,而不创build对象$ obj? $obj = New-Object System.Security.Principal.NTAccount("Students") ; $obj.Translate([System.Security.Principal.SecurityIdentifier]).Value 我曾经尝试过,像这样: New-Object System.Security.Principal.NTAccount("Students") | $_.Translate([System.Security.Principal.SecurityIdentifier]).Value 但有以下错误: Expressions are only allowed as the first element of a pipeline. At line:1 char:128 + New-Object System.Security.Principal.NTAccount("Students") | $_.Translate([System.Security.Principal.SecurityIdentifi er]).Value <<<< + CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId : ExpressionsMustBeFirstInPipeline 提前致谢!
我正在将我们的电子邮件从一个托pipe交换提供商迁移到另一个。 如何创build简单地转发到另一个(外部)地址但没有自己的邮箱的地址?
我发现了几个关于如何抑制警告的问题: 安全警告仅运行您信任的脚本。 虽然来自Internet的脚本可能有用,但此脚本可能会损害您的计算机。 你想运行。\ myscript.ps1? [D]不运行[R]运行一次[S]挂起[?]帮助(默认为“D”): 但是我有相反的问题。 它神秘地消失了,我想要它回来。 我没有完全控制机器,所以有可能在我不知情的情况下改变一些东西。 我的执行策略目前设置为Restricted ,但运行powershell -ExecutionPolicy Unrestricted -File .\myscript.ps1时看不到任何警告,即使我之前经常看到它。 我为什么要回来? 有问题的机器是由客户提供的testing机器。 在链(在分段和生产环境中),我期待这个警告出现,所以我想我的testing机器被configuration,以便我也可以在那里。 那么,至less通常是这样。 我的工作通常只需要回答是或抑制,但为了testing的目的,我希望testing机器尽可能地像舞台和生产机器一样。 我至less想知道是什么改变了,所以我可以找出是否会影响舞台和制作,所以任何build议可能会有所帮助。
我已经写了这个PS的位,以将用户从文本文件添加到用户input的AD组。 它工作正常,除了if语句。 if语句应该检查组,以查看文本文件中的用户是否已经是组成员。 所以, $itemvariables被初始化为'jdoe', $membervariables被初始化为: $member=Get-ADGroupMember -identity $group | select SamAccountName 问题成员将被初始化为@{SamAccountName=JDoe} , @{SamAccountName=bsmith}等。基本上,所有成员都在一次犯规中并且用附加数据封装,从而模糊了用于比较的数据。 这是我的代码完整。 我将不胜感激任何帮助。 谢谢 #User input group name $group=read-host -prompt "Enter group name:" #Loop through each item in text file foreach ($item in Get-Content C:\addusers.txt) { #If user is already a member of group… $member = Get-ADGroupMember -identity $group | select […]
以下脚本安排成功,但实际上不会重新启动服务器。 schtasks /create /tn "restart test" /ru "domain\admin" /rp supersecret /sc once /st 11:35 /tr "PowerShell -command {Restart-Computer -ComputerName server01 -force -wait Send-MailMessage -From [email protected] -To [email protected] -Subject 'Rebooted' -SmtpServer smtp.domain.com}" 任务计划程序事件日志显示任务成功完成: Task Scheduler successfully completed task "\restart test" , instance "{4a8b0e75-eb2f-4be6-918d-7b66473dd344}" , action "C:\Windows\System32\WindowsPowerShell\v1.0\PowerShell.EXE" with return code 0. 如果我只运行{…}的命令,它将重新启动服务器并发送通知电子邮件。 我错过了什么? 编辑:我正在执行此从Windows 7笔记本电脑与PowerShell 3.0到Windows 2012服务器