Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
学习Powershell脚本_Powershell - Fatal编程技术网

学习Powershell脚本

学习Powershell脚本,powershell,Powershell,我是一名年轻的IT学徒,负责(部分)管理Active Directory任务 我希望学习powershell来帮助解决这个问题 无论如何,我希望将从文件中读取数据合并到我的日常任务中以简化流程,我希望为多个广告帐户提取数据并配置更改。我的想法是在一列中列出一个samaccountname文件(无标题)。导入csv文件以获取广告用户名并禁用用户,然后在“帐户说明”字段中放置新说明 现在我有一个列出用户名的csv和一个导入csv的脚本,这就是我被卡住的地方 我可以执行disable-aduser和s

我是一名年轻的IT学徒,负责(部分)管理Active Directory任务

我希望学习powershell来帮助解决这个问题

无论如何,我希望将从文件中读取数据合并到我的日常任务中以简化流程,我希望为多个广告帐户提取数据并配置更改。我的想法是在一列中列出一个samaccountname文件(无标题)。导入csv文件以获取广告用户名并禁用用户,然后在“帐户说明”字段中放置新说明

现在我有一个列出用户名的csv和一个导入csv的脚本,这就是我被卡住的地方

我可以执行disable-aduser和set-aduser-description“sample text”,这是我分别为脚本所需的函数,通过调用get-aduser并将结果传递到每个命令,在一行程序的情况下成功地进行测试,但我希望将其放在脚本中,并从多个帐户的csv中获取广告用户名

我在设置csv中的对象变量时遇到了问题(我希望这是正确的术语),因为没有更好的术语,我无法“获取此”。我希望将其放入for循环中,以包含我所描述的函数

有人能帮助我或描述我如何设置变量来封装我文件中的每个ad用户帐户,以帮助我继续使用脚本并配置上面的更改吗

我知道问IT专业人士这似乎是一个奇怪或过于简单的问题,但我可以向你们保证,我已经做了进一步的阅读,但我还没有找到解决这个具体问题的方法

如果我问题中的术语不恰当,我深表歉意


提前感谢您,Glenn。

这里有一种方法可以循环浏览从CSV文件导入的项目集合

# fake reading in a headerless, one-column text file as a CSV
#    in real life, use Import-CSV
$UserNameList = @'
OneTest
TwoTest
ThreeTest
FourTest
'@ | ConvertFrom-Csv -Header UserName

foreach ($UNL_Item in $UserNameList)
    {
    # do the things you need done to each user id here
    'Acting on user [ {0} ] ...' -f $UNL_Item.UserName
    }
希望有帮助,

lee

以下内容将加载整个CSV,并在
Out GridView
中显示。然后,您可以按住CTRL键单击多个用户并以这种方式处理它们

我喜欢这样做,以防另一个名字偷偷进入我的CSV,而它本不应该这样做

Import-CSV 'C:\Location\of\CSV.csv' | Out-GridView -PassThru | ForEach-Object{Disable-ADAccount $_.SamAccountName; Set-ADUser -Identity $_.SamAccountName -Description "Test Description"}

注意:感谢Robert提出的跳过将
Import csv
放入变量以进行处理并直接转到源代码的建议。

非常确定您正在寻找
Import csv
foreach object
cmdlets展示您的代码将使讨论更加深入。[grin]不过,总体轮廓是查看循环结构,如for、foreach和foreach-object.Watch在YouTube上的“一个月午餐中的powershell”。这会让你马上开始。如果你的公司有cbt nuggets、pluralsight或itpro.tv的账户,你可以在那里学习。如果不是的话,我建议让他们为球队买一个。它不会太贵,而且只会有帮助。谢谢李,对不起,没有这方面的信息。从内存导入csv“c:\path to File.csv”ForEach对象{Disable ADAccount Set ADUser-description“test description”}中我大致记住了这一点,本质上就是这样,但我知道我没有为csv中要处理的每个广告名正确设置变量。我是否也必须让aduser在花括号内,或者使用ForEach对象循环从csv中拾取ad username对象?@GlennR-我展示的示例将使用
$UNL_Item.username
引用循环中的当前项。我没有任何访问广告内容的权限,因此我无法测试用户名随附的参数-很可能是
-Identity$UNL\u Item.username-description$YourInfoHere