以下是我想以某种方式实现的目标.
我有一个定义一些对象的自定义程序集.在我的脚本中,我创建了一个自定义对象,我想将其传递给脚本块,保持该对象的行为.
Add-Type -AssemblyName MyCustomDLL
$global:object = new-object MyCustomDLL.MyCustomObject()
$object | gm
$jobWork = { param ($object) $object | gm } # I'd like to keep my object behavior in that block
$job = Start-Job -ScriptBlock $jobWork -ArgumentList $object
Wait-Job $job
Receive-Job $job
Run Code Online (Sandbox Code Playgroud)
我该怎么做或达到同样的效果?谢谢你的帮助
在上周,我第一次遇到了PowerShell和ActiveDirectory.我希望能够找到不是管理员或域管理员的用户列表.
到目前为止,我知道如何使用以下命令/语句获取所有ActiveDirectory用户的所有属性:
Get-ADUser -Filter * -Properties *
Run Code Online (Sandbox Code Playgroud)
我想要做的是打印出当前ActiveDirectory用户的用户名 - 不是管理员或域管理员.
这是我想要做的一些伪代码/ Powershell代码:
$users = Get-ADUser -Filter * -Properties *
foreach($u in $users){
if ($u isn't an administrator OR $u isn't a domain administrator){
Write-Host "User Name:" $u.Name
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行Get-ADUser -Filter * -Properties *
命令时,我看到MemberOf
每个用户的属性 - 我想这可能是一个线索.我也AdminCount
从谷歌发现的各种来源中听说过(有什么叫做DomainAdminCount
?).
我被特别要求不要为ActiveDirectory使用PowerShell扩展 - 尽管各种消息来源说这个扩展会使它更容易.
我花了大约2个小时来测试各种语句组合,但我的新手PowerShell状态并没有给我太多帮助.我将不胜感激任何反馈,以及任何反馈背后的一些明确解释.
我正在尝试导入存储在位置的 csv 文件。所有文件的大小都不同,其中包含 1 KB 到 15 KB 或更多。因此,当我尝试使用以下脚本导入该文件时,出现内存不足异常。
$DataImport=Import-Csv -Path (Get-ChildItem $CsvFilePath)
$DataTable=Out-DataTable -InputObject $DataImport
Write-DataTable -ServerInstance $server -Database $Database -TableName $Table -Username
$Username -Password $Password -Data $DataTable
Run Code Online (Sandbox Code Playgroud)
为了避免 OOM 异常,csv 文件的最大行数是多少?有没有其他更好的方法来处理这种情况。我看到帖子使用 fgetcsv 命令逐行读取。但时间长了吧??
请给我你的建议。提前致谢